• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2021/2022

Алгоритмизация и программирование

Направление: 11.03.02. Инфокоммуникационные технологии и системы связи
Когда читается: 1-й курс, 1-4 модуль
Формат изучения: с онлайн-курсом
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 12
Контактные часы: 140

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

Аннотация

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

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

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

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

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

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

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

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

  • неблокирующий Лабораторная работа 2
  • неблокирующий Семинары 2
  • неблокирующий Лекции 3
  • неблокирующий Лабораторная работа 3
  • неблокирующий Лабораторная работа 4
  • неблокирующий Лабораторная работа 5
  • неблокирующий Лекции 6
  • неблокирующий Семинар 5 2 модуль
  • неблокирующий Семинары 2
  • неблокирующий Лекция 6 2 модуль
  • неблокирующий Семинары 1
  • неблокирующий Лекция 7 2 модуль
  • неблокирующий Семинары 2
  • неблокирующий Семинары 2
  • неблокирующий Семинары 2
  • неблокирующий Лекции 2
  • неблокирующий Семинары 1
  • неблокирующий Лабораторная работа 2
    Решение задачи на компьютере с последующей защитой отчета. При несвоевременной защите отчета баллы за работу снижаются.
  • неблокирующий Лекции 2
  • неблокирующий Семинары 2
  • неблокирующий Лекции 2
  • неблокирующий Семинары 1
  • неблокирующий Лабораторная работа 2
    Решение задачи на компьютере с последующей защитой отчета. При несвоевременной защите отчета баллы за работу снижаются.
  • неблокирующий Лекции 2
  • неблокирующий Семинары 2
  • неблокирующий Контрольная работа 1
    Письменная работа 80 минут
  • неблокирующий Лекции 2
  • неблокирующий Семинары 1
  • неблокирующий Coursera
  • неблокирующий Лабораторная работа 2
    Решение задачи на компьютере с последующей защитой отчета. При несвоевременной защите отчета баллы за работу снижаются.
  • неблокирующий Лекции 2
  • неблокирующий Семинары 2
  • неблокирующий Контрольная работа 3 модуль
    Письменная работа 80 мин
  • неблокирующий Контрольная работа 4 модуль
    Письменная работа 80 мин
  • неблокирующий Лабораторные работы 3 и 4 модулей
    Практикум из 10 лабораторных работ
  • неблокирующий Семинары 3 и 4 модулей
Промежуточная аттестация

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

  • 2021/2022 учебный год 2 модуль
    0.016 * Семинары 2 + 0.04 * Семинар 5 2 модуль + 0.2 * Coursera + 0.02 * Лекции 3 + 0.08 * Лабораторная работа 2 + 0.024 * Семинары 1 + 0.12 * Контрольная работа 1 + 0.04 * Лабораторная работа 5 + 0.02 * Лекция 7 2 модуль + 0.02 * Лекция 6 2 модуль + 0.08 * Лабораторная работа 3 + 0.08 * Лабораторная работа 4
  • 2021/2022 учебный год 4 модуль
    0.06 * Контрольная работа 4 модуль + 0.06 * Контрольная работа 3 модуль + 0.18 * Лабораторные работы 3 и 4 модулей + 0.18 * Семинары 3 и 4 модулей + 0.4 * 2021/2022 учебный год 2 модуль
Список литературы

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

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

  • Искусство программирования. Т. 4, А: Комбинаторные алгоритмы, часть 1, Кнут, Д. Э., 2013
  • Объектно - ориентированное программирование в С++, Лафоре, Р., 2011

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

  • Искусство программирования. Т.1: Основные алгоритмы, Кнут, Д. Э., 2011
  • Искусство программирования. Т.2: Получисленные алгоритмы, Кнут, Д. Э., 2012
  • Искусство программирования. Т.3: Сортировка и поиск, Кнут, Д. Э., 2012
  • Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. Гуриков. — М. : ФОРУМ : ИНФРА-М, 2019. — 343 с. — (Среднее профессиональное образование). - Режим доступа: http://znanium.com/catalog/product/970143