• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2026/2027

Программирование на C

Когда читается: 1-й курс, 1, 2 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 6
Контактные часы: 56

Программа дисциплины

Аннотация

В рамках курса "Программирование на С" студенты освоят ключевые концепции программирования на языке С, включая работу с синтаксисом, переменными, указателями, функциями и другими базовыми конструкциями. В процессе обучения уделено внимание взаимодействию с операционной системой Linux, организации раздельной компиляции и использованию утилит для управления проектами. Также студенты научатся решать задачи, связанные с динамической и статической памятью, разрабатывать и оптимизировать алгоритмы, включая работу с графами и простейшие методы решения уравнений. Практические занятия направлены на разработку программ, обработку строк и массивов, а также отладку и тестирование кода. Контроль знаний включает домашние задания и итоговый экзамен.
Цель освоения дисциплины

Цель освоения дисциплины

  • Обучение основам программирования на языке C, включая изучение синтаксиса, базовых конструкций языка, работу с памятью, файлами, алгоритмами и другими ключевыми концепциями.
Планируемые результаты обучения

Планируемые результаты обучения

  • Студент изучит основы синтаксиса и типовой системы языка C.
  • Студент освоит навыки программирования в среде Linux, включая работу с файловой системой и командной оболочкой.
  • Студент сформирует умение разрабатывать и отлаживать программы с использованием базовых конструкций языка (условные операторы, циклы, функции, указатели).
  • Студент изучит принципы работы с динамической и статической памятью.
  • Студент освоит методы организации раздельной компиляции и управления сборкой программ.
  • Студент разработает алгоритмы для обработки строк, массивов и графов.
  • Студент изучит основы юнит- и интеграционного тестирования, а также практики автоматического запуска тестов в CI.
  • Студент приобретет навыки оптимизации программ и решения простых математических задач.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Название 1: Операционная система Linux. Устройство файловых систем. Оболочка. Файлы. Исполняемые файлы. ssh, ssh-agent и ssh-ключи
  • Название 2: Первая программа на С. Препроцессор. Компиляция. Запуск. Hello world
  • Название 3: Основные синтаксические конструкции C. Система типов. Переменные. Условные конструкции. Циклы
  • Название 4: Функции. Параметры функций. Указатели (1). Scanf
  • Название 5: Указатели (2). Массивы. Строки. Разбор аргументов командной строки
  • Название 6: Работа с файлами и консольным вводом
  • Название 7. Динамическая и статическая память. Алгоритмы на строках и массивах
  • Название 8: Алгоритмы на строках и массивах (2). Замеры скорости. Отладка
  • Название 9: Структуры. Typedef. Указатели на функции
  • Название 10: Раздельная компиляция. Компоновка. Make
  • Название 11: Алгоритмы на графах
  • Название 12: Алгоритмы оптимизации и решения уравнений (простейшие)
  • Название 13: Юнит- и интеграционное тестирование
  • Название 14: Запуск тестов в CI. Git Lab
Элементы контроля

Элементы контроля

  • неблокирующий Домашние задания 1-10
  • блокирующий Экзамен
Промежуточная аттестация

Промежуточная аттестация

  • 2026/2027 2nd module
    Формула оценивания: Домашнее задание: SUM(Домашние задания 1-10) * 0.300 + Экзамен: Экзамен * 0.700 ГДЕ (SUM_14_ПРАКТИЧЕСКИХ ЗАДАНИЙ НА СЕМИНАРЕ + ЭКЗАМЕН) ≤ 30 БАЛЛОВ
Список литературы

Список литературы

Рекомендуемая основная литература

  • Керниган, Б. В. Язык программирования C : учебник / Б. В. Керниган, Д. М. Ричи. — 2-е изд. — Москва : ИНТУИТ, 2016. — 313 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100543 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Приемы объектно - ориентированного проектирования : паттерны проектирования, Гамма, Э., 2014
  • Чистая архитектура. Искусство разработки программного обеспечения - 978-5-4461-0772-8 - Мартин Р. - 2019 - Санкт-Петербург: Питер - https://ibooks.ru/products/361841 - 361841 - iBOOKS
  • Чистый код: создание, анализ и рефакторинг - 978-5-4461-0960-9 - Мартин Роберт - 2019 - Санкт-Петербург: Питер - https://ibooks.ru/products/361844 - 361844 - iBOOKS

Рекомендуемая дополнительная литература

  • Кетков, Ю. Л. Введение в языки программирования C и C++ : учебное пособие / Ю. Л. Кетков. — 2-е изд. — Москва : ИНТУИТ, 2016. — 291 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100719 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Авторы

  • Нефедов Сергей Игоревич
  • Юнышева Анастасия Владимировна
  • Манохин Александр Иванович