Бакалавриат
2025/2026





Алгоритмизация и программирование
Статус:
Курс обязательный (Информатика и вычислительная техника)
Кто читает:
Департамент компьютерной инженерии
Когда читается:
1-й курс, 1-4 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Контактные часы:
172
Программа дисциплины
Аннотация
Курс «Алгоритмизация и программирование» предназначен для студентов бакалавриата по направлению «Информатика и ВТ». Курс направлен на изучение, освоение и умение применять в рамках своей специализации технологии структурного программирования, изучение базовых элементов языков C и C++,а также стандартных алгоритмов обработки различных структур данных. В курсе рассматриваются такие темы как: Введение. Основы алгоритмизации. Основные алгоритмические конструкции. Основные структуры данных. Сложность алгоритма. Циклы и примеры их использования Алгоритмы обработки одномерных массивов Алгоритмы обработки матриц Алгоритмы с досрочным выходом из цикла. Основные сведения о языках C\C++. Форматный ввод и вывод данных. Использование указателей при обработке массивов и матриц. Распределение памяти. Классы памяти. Функции в языке C. Символьный и строковый тип данных. Алгоритмы обработки строк. Динамическое распределение памяти. Динамические структуры. Также в курсе изучаются основы отладки алгоритмов в средах программирования и система контроля версий.
Цель освоения дисциплины
- Освоение технологии структурного программирования
- Изучение базовых элементов языков C и C++
- Изучение стандартных алгоритмов обработки различных структур данных
- Изучение приёмов разработки алгоритмов для обработки различных структур данных
Планируемые результаты обучения
- Знает базовые конструкции (структуры) и базовые операции псевдокода.
- Знает кодирование всех алгоритмических конструкций на языке С.
- Знает основные приемы и особенности потокового ввода и вывода данных
- Знает основные приемы работы со строками в языке С++
- Знает основные приемы работы со структурами и файлами в языке С++
- Знает основные сведения о языке С++.
- Знает основные способы записи алгоритмов. Умеет записать постановку задачи
- Знает основные типы связанных списков. Умеет формировать и обрабатывать линейные однонаправленные списки - стек и очередь, т.е применяет стандартные алгоритмы для работы с этим типом данных.
- Знает понятие и назначение типа "указатель". Умеет использовать указатели при решении задач обработки массивов и матриц.
- Знает понятие функции. Умеет передавать параметры по значению и по адресу. Умеет использовать указатель на указатель.
- Знает понятия структуры и файлового типа. Умеет применять стандартные алгоритмы для решения задач обработки файлов и структур.
- Знает структуру простой программы на языке С. Знает основные типы данных, базовые операции (арифметические, логические и операции присваивания). Умеет кодировать арифметические выражения на языке С.
- Знает типы циклов и умеет правильно записать их на псевдокоде .Может выбрать тип цикла, который подходит для решения данной задачи. Может составить итерационный алгоритм и закодировать его.
- Знает характеристики классов памяти и основные отличия между ними.
- Умеет использовать алгоритмы с досрочным выходом из цикла для обработки массивов и матриц.
- Умеет использовать алгоритмы сортировки, удаления, вставки элементов , поиска минимума или максимума , формирования нового массива для решения задач обработки одномерного массива.
- Умеет использовать стандартные функции ввода и вывода данных
- Умеет использовать стандартные функции для обработки символьных строк при решении задач. Умеет использовать алгоритмы обработки символьных сток при решении задач. Умеет использовать указатели для обработки символьных строк.
- Умеет использовать функции выделения и освобождения памяти. Умеет формировать и обрабатывать связанные списки различных типов - линейные, циклические, одно и двунаправленные.
- умеет осуществлять ввод и вывод матриц, а также использовать алгоритмы, изученные в теме 4 для обработки матриц.
- Умеет формировать и обрабатывать бинарные деревья.
- Умеет пользоваться различными средами программирования и отладки
- Уметь вычислять сложность алгоритма
- Умеет пользоваться системой контроля версий (Git)
- Воспроизводить основные типы сортировки данных
- Умеет применять основные типы данных С++
- Умеет применять потоковый ввод и вывод
- Применяет знание алгоритмов для программирования микроконтроллеров
- Применяет изученные структуры данных на практике
- Формулирует принципы ООП
- Умеет применять средства ИИ для генерации кода или алгоритма. Умеет оценивать достоверность предоставляемых ИИ решений.
Содержание учебной дисциплины
- Введение. Основы алгоритмизации.
- Основные алгоритмические конструкции.
- Циклы и примеры их использования.
- Алгоритмы обработки одномерных массивов
- Алгоритмы обработки матриц
- Алгоритмы с досрочным выходом из цикла.
- Основные сведения о языке C.
- Конструкции языка C.
- Форматный ввод и вывод данных.
- Использование указателей при обработке массивов и матриц
- Функции в языке C.
- Распределение памяти. Классы памяти.
- Символьный и строковый тип данных. Алгоритмы обработки строк
- Структуры. Файлы в языке С.
- Динамическое распределение памяти. Динамические структуры.
- Основные сведения о языке C++
- Потоковый ввод и вывод данных.
- Преобразования при вычислении арифметических выражений. Приведение типов.
- Структуры. Файлы в языке С++.
- Строковый тип данных
- Связанные списки. Алгоритмы обработки связанных списков
- Бинарные деревья. Алгоритмы обработки бинарных деревьев
- Инструменты разработки
- Алгоритмы
- Основы C++
- Применение алгоритмов в микроконтроллерах
- Структуры данных
- Введение в ООП
- Применение средств ИИ в алгоритмизации программировании
Элементы контроля
- Экзамен. Модуль 4
- Активность на лекциях. Модуль 3-4
- Практические работы. Модуль 3-4
- Контрольная работа. Модуль 3
- Контрольная работа. Модуль 4
- Экзамен 2 модульТест выполняется в smart lms в течение 60 минут. Оценивание автоматическое
- Практические работы 1-2 модульЛабораторные работы. Дедлайн на каждом втором занятии
- Контрольная работа 2 модульКонтрольная работа на компьютере
- Активность на лекциях и семинарах
Промежуточная аттестация
- 2025/2026 2nd module0.08 * Активность на лекциях и семинарах + 0.12 * Активность на лекциях и семинарах + 0.12 * Контрольная работа 2 модуль + 0.28 * Практические работы 1-2 модуль + 0.2 * Практические работы 1-2 модуль + 0.2 * Экзамен 2 модуль
- 2025/2026 4th module0.15 * Активность на лекциях. Модуль 3-4 + 0.15 * Контрольная работа. Модуль 3 + 0.15 * Контрольная работа. Модуль 4 + 0.35 * Практические работы. Модуль 3-4 + 0.2 * Экзамен. Модуль 4
Список литературы
Рекомендуемая основная литература
- Искусство программирования. Т. 4, А: Комбинаторные алгоритмы, часть 1, Кнут, Д. Э., 2013
Рекомендуемая дополнительная литература
- Искусство программирования. Т.1: Основные алгоритмы, Кнут, Д. Э., 2011
- Искусство программирования. Т.2: Получисленные алгоритмы, Кнут, Д. Э., 2012
- Искусство программирования. Т.3: Сортировка и поиск, Кнут, Д. Э., 2012