• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Algorithmization and Programming

2023/2024
Academic Year
RUS
Instruction in Russian
8
ECTS credits
Type:
Compulsory course
When:
1 year, 1-4 module

Instructors

Батонова Оксана Юрьевна

Батонова Оксана Юрьевна

Литвиненко Алексей Михайлович

Литвиненко Алексей Михайлович

Моисеев Михаил Васильевич

Моисеев Михаил Васильевич

Пискунова Анастасия Михайловна

Пискунова Анастасия Михайловна

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

Аннотация

Курс «Алгоритмизация и программирование» предназначен для студентов бакалавриата по направлениям «Информатика и вычислительная техника». Курс направлен на изучение, освоение и умение применять в рамках своей специализации технологии структурного программирования, изучение базовых элементов языков C и C++,а также стандартных алгоритмов обработки различных структур данных. В курсе рассматриваются такие темы как: Введение. Основы алгоритмизации. Основные алгоритмические конструкции. Циклы и примеры их использования Алгоритмы обработки одномерных массивов Алгоритмы обработки матриц Алгоритмы с досрочным выходом из цикла. Основные сведения о языке C. Конструкции языка C. Форматный ввод и вывод данных. Использование указателей при обработке массивов и матриц. Распределение памяти. Классы памяти. Функции в языке C. Символьный и строковый тип данных. Алгоритмы обработки строк. Динамическое распределение памяти. Динамические структуры. Основные сведения о языке C++ Потоковый ввод и вывод данных. Структуры. Файлы. Строковый тип данных. Связанные списки. Бинарные деревья. Алгоритмы обработки связанных списков Предложена тематика лабораторных и контрольных работ, лекций, семинарских занятий. Все материалы доступны студентам в форме презентаций.
Цель освоения дисциплины

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

  • Освоение технологии структурного программирования;
  • Изучение базовых элементов языков C и C++;
  • Изучение стандартных алгоритмов обработки различных структур данных;
  • Изучение приёмов разработки алгоритмов для обработки различных структур данных.
Планируемые результаты обучения

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

  • Знает базовые конструкции (структуры) и базовые операции псевдокода.
  • Знает кодирование всех алгоритмических конструкций на языке С.
  • Знает основные приемы и особенности потокового ввода и вывода данных
  • Знает основные приемы работы со строками в языке С++
  • Знает основные приемы работы со структурами и файлами в языке С++
  • Знает основные сведения о языке С++.
  • Знает основные способы записи алгоритмов. Умеет записать постановку задачи
  • Знает основные типы связанных списков. Умеет формировать и обрабатывать линейные однонаправленные списки - стек и очередь, т.е применяет стандартные алгоритмы для работы с этим типом данных.
  • Знает понятие и назначение типа "указатель". Умеет использовать указатели при решении задач обработки массивов и матриц.
  • Знает понятие функции. Умеет передавать параметры по значению и по адресу. Умеет использовать указатель на указатель.
  • Знает понятия структуры и файлового типа. Умеет применять стандартные алгоритмы для решения задач обработки файлов и структур.
  • Знает структуру простой программы на языке С. Знает основные типы данных, базовые операции (арифметические, логические и операции присваивания). Умеет кодировать арифметические выражения на языке С.
  • Знает типы циклов и умеет правильно записать их на псевдокоде .Может выбрать тип цикла, который подходит для решения данной задачи. Может составить итерационный алгоритм и закодировать его.
  • Знает характеристики классов памяти и основные отличия между ними.
  • Умеет использовать алгоритмы с досрочным выходом из цикла для обработки массивов и матриц.
  • Умеет использовать алгоритмы сортировки, удаления, вставки элементов , поиска минимума или максимума , формирования нового массива для решения задач обработки одномерного массива.
  • Умеет использовать стандартные функции ввода и вывода данных
  • Умеет использовать стандартные функции для обработки символьных строк при решении задач. Умеет использовать алгоритмы обработки символьных сток при решении задач. Умеет использовать указатели для обработки символьных строк.
  • Умеет использовать функции выделения и освобождения памяти. Умеет формировать и обрабатывать связанные списки различных типов - линейные, циклические, одно и двунаправленные.
  • умеет осуществлять ввод и вывод матриц, а также использовать алгоритмы, изученные в теме 4 для обработки матриц.
  • Умеет формировать и обрабатывать бинарные деревья.
Содержание учебной дисциплины

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

  • Введение. Основы алгоритмизации.
  • Основные алгоритмические конструкции.
  • Циклы и примеры их использования.
  • Алгоритмы обработки одномерных массивов
  • Алгоритмы обработки матриц
  • Алгоритмы с досрочным выходом из цикла.
  • Основные сведения о языке C.
  • Конструкции языка C.
  • Форматный ввод и вывод данных.
  • Использование указателей при обработке массивов и матриц
  • Функции в языке C.
  • Распределение памяти. Классы памяти.
  • Символьный и строковый тип данных. Алгоритмы обработки строк
  • Структуры. Файлы в языке С.
  • Основные сведения о языке C++
  • Динамическое распределение памяти. Динамические структуры.
  • Потоковый ввод и вывод данных.
  • Преобразования при вычислении арифметических выражений. Приведение типов.
  • Структуры. Файлы в языке С++.
  • Строковый тип данных
  • Связанные списки. Алгоритмы обработки связанных списков
  • Бинарные деревья. Алгоритмы обработки бинарных деревьев
Элементы контроля

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

  • неблокирующий Лабораторный практикум 1 модуль
  • неблокирующий Лабораторный практикум 2 модуль
  • неблокирующий Экамен 2 модуль
  • неблокирующий Семинар 1 модуль
  • неблокирующий Семинар 2 модуль
  • неблокирующий Лекции 1 модуль
  • неблокирующий Лекции 2 модуль
  • неблокирующий Контрольная работа 1
  • неблокирующий Лабораторный практикум 3 модуль
  • неблокирующий Лабораторный практикум 4 модуль
  • неблокирующий Семинар 4 модуль
  • неблокирующий Семинар 3 модуль
  • неблокирующий Лекции 3 модуль
  • неблокирующий Лекции 4 модуль
  • неблокирующий Контрольная работа 3
  • неблокирующий Контрольная работа 2
  • неблокирующий Экзамен 4 модуль
Промежуточная аттестация

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

  • 2023/2024 2nd module
    0.12 * Контрольная работа 1 + 0.28 * Лабораторный практикум 1 модуль + 0.2 * Лабораторный практикум 2 модуль + 0.04 * Лекции 1 модуль + 0.04 * Лекции 2 модуль + 0.08 * Семинар 1 модуль + 0.04 * Семинар 2 модуль + 0.2 * Экамен 2 модуль
  • 2023/2024 4th module
    0.12 * Контрольная работа 2 + 0.12 * Контрольная работа 3 + 0.2 * Лабораторный практикум 3 модуль + 0.2 * Лабораторный практикум 4 модуль + 0.04 * Лекции 3 модуль + 0.04 * Лекции 4 модуль + 0.04 * Семинар 3 модуль + 0.04 * Семинар 4 модуль + 0.2 * Экзамен 4 модуль
Список литературы

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

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

  • Ресурсно - эффективные компьютерные алгоритмы. Разработка и анализ : учеб. пособие для вузов, Ульянов, М. В., 2008

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

  • Искусство программирования. Т. 4, А: Комбинаторные алгоритмы, часть 1, Кнут, Д. Э., 2013
  • Искусство программирования. Т.1: Основные алгоритмы, Кнут, Д. Э., 2011
  • Искусство программирования. Т.2: Получисленные алгоритмы, Кнут, Д. Э., 2012
  • Искусство программирования. Т.3: Сортировка и поиск, Кнут, Д. Э., 2012