Бакалавриат
2020/2021
Алгоритмизация и программирование
Статус:
Курс обязательный (Информатика и вычислительная техника)
Направление:
09.03.01. Информатика и вычислительная техника
Кто читает:
Департамент компьютерной инженерии
Когда читается:
1-й курс, 1-4 модуль
Формат изучения:
с онлайн-курсом
Преподаватели:
Альбатша Ахмад Мухаммад Хусайн,
Американов Александр Александрович,
Волкова Лилия Леонидовна,
Ерохина Елена Альфредовна,
Лежнев Евгений Владимирович,
Романова Ирина Ивановна,
Шихов Александр Иванович
Язык:
русский
Кредиты:
12
Контактные часы:
140
Программа дисциплины
Аннотация
Курс «Алгоритмизация и программирование» предназначен для студентов бакалавриата по направлениям «Информатика и вычислительная техника». Курс направлен на изучение, освоение и умение применять в рамках своей специализации технологии структурного программирования, изучение базовых элементов языков Паскаль и C/C++,а также стандартных алгоритмов обработки различных структур данных. В курсе рассматриваются такие темы как: Основы алгоритмизации. Основные алгоритмические конструкции. Язык Pascal. Циклы и примеры их использования. Алгоритмы обработки одномерных массивов. Алгоритмы обработки матриц. Алгоритмы с досрочным выходом из цикла. Процедуры и функции. Символьный тип данных. Строковый тип данных. Файлы. Тип «множество». Динамические структуры в языке Pascal. Основные сведения о языке C. Конструкции языка C. Использование указателей при обработке массивов и матриц. Функции в языке C. Распределение памяти. Классы памяти. Символьный и строковый тип данных. Структуры. Файлы. Динамическое распределение памяти. Списки. Бинарные деревья. Предложена тематика лабораторных и контрольных работ, лекций, семинарских занятий. Все материалы доступны студентам в форме презентаций.
Цель освоения дисциплины
- Освоение технологии структурного программирования;
- Изучение базовых элементов языков Паскаль и C/C++;
- Изучение стандартных алгоритмов обработки различных структур данных;
- Изучение приёмов разработки алгоритмов для обработки различных структур данных.
Планируемые результаты обучения
- Знает основные способы записи алгоритмов. Умеет записать постановку задачи
- Знает базовые конструкции (структуры) и базовые операции псевдокода.
- Знает типы циклов и умеет правильно записать их на псевдокоде .Может выбрать тип цикла, который подходит для решения данной задачи. Может составить итерационный алгоритм и закодировать его.
- Умеет использовать алгоритмы сортировки, удаления, вставки элементов , поиска минимума или максимума , формирования нового массива для решения задач обработки одномерного массива.
- умеет осуществлять ввод и вывод матриц, а также использовать алгоритмы, изученные в теме 4 для обработки матриц.
- Умеет использовать алгоритмы с досрочным выходом из цикла для обработки массивов и матриц.
- Знает структуру простой программы на языке С. Знает основные типы данных, базовые операции (арифметические, логические и операции присваивания). Умеет кодировать арифметические выражения на языке С.
- Знает кодирование всех алгоритмических конструкций на языке С.
- Умеет использовать стандартные функции ввода и вывода данных
- Знает понятие и назначение типа "указатель". Умеет использовать указатели при решении задач обработки массивов и матриц.
- Знает характеристики классов памяти и основные отличия между ними.
- Знает понятие функции. Умеет передавать параметры по значению и по адресу. Умеет использовать указатель на указатель.
- Умеет использовать стандартные функции для обработки символьных строк при решении задач. Умеет использовать алгоритмы обработки символьных сток при решении задач. Умеет использовать указатели для обработки символьных строк.
- Знает понятия структуры и файлового типа. Умеет применять стандартные алгоритмы для решения задач обработки файлов и структур.
- Знает основные типы связанных списков. Умеет формировать и обрабатывать линейные однонаправленные списки - стек и очередь, т.е применяет стандартные алгоритмы для работы с этим типом данных.
- Знает основные сведения о языке С++.
- Знает основные приемы и особенности потокового ввода и вывода данных
- Знает основные приемы работы со структурами и файлами в языке С++
Содержание учебной дисциплины
- Введение. Основы алгоритмизации.
- Основные алгоритмические конструкции.
- Циклы и примеры их использования
- Алгоритмы обработки одномерных массивов
- Алгоритмы обработки матриц
- Алгоритмы с досрочным выходом из цикла.
- Основные сведения о языке C.
- Конструкции языка C.
- Форматный ввод и вывод данных.
- Использование указателей при обработке массивов и матриц
- Функции в языке C.
- Распределение памяти. Классы памяти.
- Символьный и строковый тип данных. Алгоритмы обработки строк
- Структуры. Файлы в языке С.
- Основные сведения о языке C++
- Динамическое распределение памяти. Динамические структуры.
- Потоковый ввод и вывод данных.
- Структуры. Файлы в языке С++.
Элементы контроля
- Лабораторная работа 1Решение задачи на компьютере с последующей защитой отчета. При несвоевременной защите отчета баллы за работу снижаются.
- Контрольная работа 1Письменная работа 80 минут
- Семинар 3
- Семинары 1
- Лекции 1
- Экзамен 1
- Экзамен 2Экзамен проводится в письменной форме (компьютерный тест) с использованием асинхронного прокторинга. Экзамен проводится на платформе https://moodle.org/, прокторинг на платформе Экзамус (https://hse.student.examus.net). К экзамену необходимо подключиться за 15 минут до начала. На платформе Экзамус доступно тестирование системы. Компьютер студента должен удовлетворять требованиям: (https://elearning.hse.ru/data/2020/05/07/1544135594/Технические%20требования%20к%20ПК%20студента.pdf) Для участия в экзамене студент обязан: заранее зайти на платформу прокторинга, провести тест системы, включить камеру и микрофон, подтвердить личность. Во время экзамена студентам запрещено: общаться (в социальных сетях, с людьми в комнате), использовать телефон, списывать. Во время экзамена студентам разрешено: пользоваться чистыми листами бумаги, ручкой. Кратковременным нарушением связи во время экзамена считае тся прерывание связи до 2 минут. Долговременным нарушением связи во время экзамена считается прерывание связи 2 минуты и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи. Преподаватель вправе освободить от сдачи экзамена студентов. Особо отличившихся при изучении Дисциплины и набравших накопленную оценку по Дисциплине выше 7 баллов, с выставлением им оценки «отлично» (8, 9, 10 баллов), преподаватель может выставить автоматы. Преподаватель объявляет список таких студентов не позднее, чем за два дня до экзамена. Для объявления оценок могут быть использованы электронные каналы передачи информации, регулярно используемые в процессе обучения.
- Coursera
- Лабораторная работа 2
- Лекции 2
- Семинары 2
- Лекции 3
- Лабораторная работа 3
- Лабораторная работа 4
- Лабораторная работа 5
- Лабораторная работа 6
- Лабораторная работа 7
- Лабораторная работа 8
- Лабораторная работа 9
- Лабораторная работа 10
- Лабораторная работа 11
- Контрольная работа 2
- Контрольная работа 3
- Лекции 4
- Семинар 4
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)0.04 * Coursera + 0.12 * Контрольная работа 1 + 0.06 * Лабораторная работа 1 + 0.04 * Лабораторная работа 2 + 0.2 * Лекции 1 + 0.08 * Лекции 2 + 0.04 * Лекции 3 + 0.04 * Семинар 3 + 0.02 * Семинары 1 + 0.08 * Семинары 2 + 0.2 * Экзамен 1 + 0.08 * Экзамен 2
- Промежуточная аттестация (4 модуль)0.068 * Coursera + 0.2 * Контрольная работа 1 + 0.04 * Лабораторная работа 1 + 0.04 * Лабораторная работа 2 + 0.04 * Лабораторная работа 3 + 0.06 * Лекции 1 + 0.12 * Лекции 2 + 0.04 * Лекции 3 + 0.04 * Семинар 3 + 0.06 * Семинары 1 + 0.12 * Семинары 2 + 0.08 * Экзамен 1 + 0.092 * Экзамен 2
Список литературы
Рекомендуемая основная литература
- Ресурсно - эффективные компьютерные алгоритмы. Разработка и анализ : учеб. пособие для вузов, Ульянов, М. В., 2008
Рекомендуемая дополнительная литература
- Искусство программирования. Т.1: Основные алгоритмы, Кнут, Д. Э., 2011
- Искусство программирования. Т.2: Получисленные алгоритмы, Кнут, Д. Э., 2012
- Искусство программирования. Т.3: Сортировка и поиск, Кнут, Д. Э., 2012