Бакалавриат
2020/2021
Алгоритмизация и программирование
Статус:
Курс обязательный (Инфокоммуникационные технологии и системы связи)
Направление:
11.03.02. Инфокоммуникационные технологии и системы связи
Кто читает:
Департамент компьютерной инженерии
Когда читается:
1-й курс, 1-4 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Альбатша Ахмад Мухаммад Хусайн,
Ерохина Елена Альфредовна,
Касаткин Александр Дмитриевич,
Назаров Игорь Васильевич,
Хриткин Сергей Анатольевич
Язык:
русский
Кредиты:
12
Контактные часы:
140
Программа дисциплины
Аннотация
Курс «Алгоритмизация и программирование» предназначен для студентов бакалавриата по направлениям «Информатика и вычислительная техника» и «Инфокоммуникационные технологии и системы связи». Курс направлен на изучение, освоение и умение применять в рамках своей специализации технологии структурного программирования, изучение базовых элементов языков Паскаль и C/C++,а также стандартных алгоритмов обработки различных структур данных. В курсе рассматриваются такие темы как: Основы алгоритмизации. Основные алгоритмические конструкции. Язык Pascal. Циклы и примеры их использования. Алгоритмы обработки одномерных массивов. Алгоритмы обработки матриц. Алгоритмы с досрочным выходом из цикла. Процедуры и функции. Символьный тип данных. Строковый тип данных. Файлы. Тип «множество». Динамические структуры в языке Pascal. Основные сведения о языке C. Конструкции языка C. Использование указателей при обработке массивов и матриц. Функции в языке C. Распределение памяти. Классы памяти. Вторая часть дисциплины (3 и 4 модули, для студентов образовательной программы «Инфокоммуникационные технологии и системы связи») посвящена также основам объектно-ориентированного программирования на примере языка C++ и основам программирования на языке Python.
Цель освоения дисциплины
- Освоение технологии структурного программирования
- Изучение базовых элементов языков Паскаль и C/C++
- Изучение стандартных алгоритмов обработки различных структур данных
- Изучение приёмов разработки алгоритмов для обработки различных структур данных
- Изучение базовых элементов языка Python
Планируемые результаты обучения
- Знает основные способы записи алгоритмов. Умеет записать постановку задачи
- Знает базовые конструкции (структуры) и базовые операции псевдокода.
- Знает типы циклов и умеет правильно записать их на псевдокоде .Может выбрать тип цикла, который подходит для решения данной задачи. Может составить итерационный алгоритм и закодировать его.
- Умеет использовать алгоритмы сортировки, удаления, вставки элементов , поиска минимума или максимума , формирования нового массива для решения задач обработки одномерного массива.
- умеет осуществлять ввод и вывод матриц, а также использовать алгоритмы, изученные в теме 4 для обработки матриц.
- Умеет использовать алгоритмы с досрочным выходом из цикла для обработки массивов и матриц.
- Знает структуру простой программы на языке С. Знает основные типы данных, базовые операции (арифметические, логические и операции присваивания). Умеет кодировать арифметические выражения на языке С.
- Знает кодирование всех алгоритмических конструкций на языке С.
- Умеет использовать стандартные функции ввода и вывода данных
- Знает понятие и назначение типа "указатель". Умеет использовать указатели при решении задач обработки массивов и матриц.
- Знает характеристики классов памяти и основные отличия между ними.
- Знает кодирование всех алгоритмических конструкций на языке С. Знает понятие и назначение типа "указатель". Умеет использовать указатели при решении задач обработки массивов и матриц. Знает понятие функции. Умеет передавать параметры по значению и по адресу. Умеет использовать указатель на указатель.
- Знает основы объектно-ориентированного программирования. Знает кодирование алгоритмических конструкций на языке С++. Знает понятие класса. Умеет использовать классы при разработке программ на языке С++.
- Знает структуру простой программы на языке Python. Знает основные типы данных и базовые операции языка Python. Умеет кодировать алгоритмические конструкции на языке Python.
Содержание учебной дисциплины
- Введение. Основы алгоритмизации.
- Основные алгоритмические конструкции.
- Циклы и примеры их использования
- Алгоритмы обработки одномерных массивов
- Алгоритмы обработки матриц
- Алгоритмы с досрочным выходом из цикла.
- Основные сведения о языке C.
- Конструкции языка C.
- Форматный ввод и вывод данных.
- Использование указателей при обработке массивов и матриц
- Распределение памяти. Классы памяти.
- Язык программирования С++.Язык программирования С++. Основы объектно-ориентированного программирования. Классы и работы с ними на языке С++.
- Конструкции языка С и их использование.Конструкции языка С и их использование. Функции в языке С. Указатели и их использование. Распределение памяти, классы памяти. Динамическое распределение памяти.
- Введение в язык программирования Python.Введение в язык программирования Python.
Элементы контроля
- Лабораторная работа 1Решение задачи на компьютере с последующей защитой отчета. При несвоевременной защите отчета баллы за работу снижаются.
- Контрольная работа 1Письменная работа 80 минут
- Лекции 2
- Семинары 1
- Лекции 1
- Экзамен 1
- Coursera
- Лабораторная работа 2Решение задачи на компьютере с последующей защитой отчета. При несвоевременной защите отчета баллы за работу снижаются.
- Лекции 2
- Семинары 2
- Контрольная работа 3 модульПисьменная работа 80 мин
- Контрольная работа 4 модульПисьменная работа 80 мин
- Лабораторные работы 3 и 4 модулейПрактикум из 10 лабораторных работ
- Экзамен 2Экзамен проводится в устной форме (опрос по материалам курса), на платформе Zoom. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка Zoom. Во время экзамена студентам запрещено: выключать камеру, пользоваться конспектами и подсказками. Кратковременным нарушением связи во время экзамена считается нарушение связи менее минуты. Долговременным нарушением связи во время экзамена считается нарушение минута и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Подробное описание правил проведения экзамена имеется в Google Классе дисциплины.
- Лабораторная работа 3
- Лабораторная работа 4
- Лабораторная работа 5
- Семинары 3 и 4 модулей
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)0.08 * Coursera + 0.12 * Контрольная работа 1 + 0.08 * Контрольная работа 3 модуль + 0.04 * Контрольная работа 4 модуль + 0.06 * Лабораторная работа 1 + 0.04 * Лабораторная работа 2 + 0.2 * Лекции 1 + 0.04 * Лекции 2 + 0.04 * Лекции 2 + 0.02 * Семинары 1 + 0.08 * Семинары 2 + 0.2 * Экзамен 1
- Промежуточная аттестация (4 модуль)0.05 * Контрольная работа 3 модуль + 0.05 * Контрольная работа 4 модуль + 0.15 * Лабораторные работы 3 и 4 модулей + 0.5 * Промежуточная аттестация (2 модуль) + 0.15 * Семинары 3 и 4 модулей + 0.1 * Экзамен 2
Список литературы
Рекомендуемая основная литература
- Ресурсно - эффективные компьютерные алгоритмы. Разработка и анализ : учеб. пособие для вузов, Ульянов, М. В., 2008
Рекомендуемая дополнительная литература
- Искусство программирования. Т.1: Основные алгоритмы, Кнут, Д. Э., 2011
- Искусство программирования. Т.2: Получисленные алгоритмы, Кнут, Д. Э., 2012
- Искусство программирования. Т.3: Сортировка и поиск, Кнут, Д. Э., 2012
- Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. Гуриков. — М. : ФОРУМ : ИНФРА-М, 2019. — 343 с. — (Среднее профессиональное образование). - Режим доступа: http://znanium.com/catalog/product/970143