Бакалавриат
2020/2021
Алгоритмизация и программирование
Статус:
Курс обязательный (Прикладная математика)
Направление:
01.03.04. Прикладная математика
Кто читает:
Департамент прикладной математики
Когда читается:
2-й курс, 1, 4 модуль
Формат изучения:
с онлайн-курсом
Язык:
русский
Кредиты:
6
Контактные часы:
28
Программа дисциплины
Аннотация
Дисциплина «Алгоритмизация и программирование» призвана обучить студентов принципам функционирования информационных технологий, базовым концепциям технологий программирования и эффективных реализаций алгоритмов. Теоретический материал курса подкрепляется практическими занятиями по программированию (курс «Компьютерный практикум») в целях реализации предлагаемых заданий в рамках изучаемой тематики. Дисциплина относится к профессиональному учебному циклу (Б.3) и блоку дисциплин, обеспечивающих базовую (общепрофессиональную) подготовку. Для освоения учебной дисциплины, студенты должны изучить следующие учебные курсы: • Линейная алгебра и аналитическая геометрия (1 курс); • Математический анализ (1 курс); • Алгоритмизация и программирование (1 курс); • Компьютерный практикум (1 курс); • Теория вероятностей и математическая статистика (2 курс) Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и компетенциями: • Владеть основами программирования на языке С. • Знать методы и базовые алгоритмы обработки информационных структур, методы анализа сложности алгоритмов. Основные положения дисциплины и освоенные компетенции должны быть использованы в дальнейшем при изучении дисциплин: • Компьютерный практикум (3 курс) • Операционные системы (3 курс) • Базы данных (3 курс) • Численные методы (3-4 курсы) • Междисциплинарная курсовая работа (3 курс)
Цель освоения дисциплины
- 1. Знакомство слушателей дисциплины с основными парадигмами и теоретическими основами программирования, терминологией объектно-ориентированного программирования 2. Формирование представления о возможностях и особенностях объектно-ориентированных языков программирования при проектировании, разработке и отладке компьютерных программ 3. Изучение теоретических основ программирования, методов реализации алгоритмов различного типа, базовых принципов объектно-ориентированного программирования, основных подходов машинного обучения 4. Выработка навыков и умений программирования на языке С++ с использованием широко используемых библиотек 5. Получение опыта работы с механизмами статического полиморфизма, такими как шаблоны функций и классов; поиска эффективных реализаций различных алгоритмов, практических навыков разработки прикладных программ, в том числе для методов анализа данных
Планируемые результаты обучения
- Знание основных парадигм программирования и общих принципов разработки ПО.
Содержание учебной дисциплины
- Введение в программирование на С++.Пространства имен. Ввод/вывод в С++. Ссылки. Выделение/освобождение памяти в С++.
- Парадигмы программирования. Общие принципы разработки программного обеспечения.
- ООП в С++. Наследование, виртуальные функции, полиморфизм. Шаблоны.Создание пользовательских классов. Принцип композиции при конструировании новых классов. Инициализация данных объекта класса (Конструктор по умолчанию, конструктор с параметрами). Назначение деструктора. Способы передачи объекта в функцию, конструктор копирования. Перегрузка операторов. Статические переменные и методы класса. Константные методы. Перегруженные методы. Спецификаторы доступа public, protected, private. Понятие и механизм наследования классов. Преимущества и недостатки наследования по сравнению с композицией. Виртуальные функции, понятие полиморфизма. Чистые виртуальные функции и абстрактные классы. Доступ к объекту через указатель, преобразование типов. Непрямые базовые классы. Виртуальный деструктор. Множественное наследование.Понятие обобщенного программирования. Определение шаблона класса. Создание объектов шаблона класса. Шаблоны функций.
- Обработка исключений. Знакомство с библиотекой STL.Понятие исключения. Механизм генерации и обработки исключений. Понятие объекта и класса. Классы стандартной библиотеки для работы со строками. Классы стандартной библиотеки для работы с контейнерами. Операции с объектами стандартной библиотеки. Преобразование типов.
- Паттерны проектирования.Понятие паттерна проектирования. Порождающие, cтруктурные, поведенческие паттерны.
Элементы контроля
- Контрольная работа
- Промежуточный экзамен
- Итоговый письменный экзаменЭкзамен проводится в письменной форме (эссе) с использованием асинхронного прокторинга. Экзамен проводится на платформе Moodle (https://et.hse.ru/login/index.php), прокторинг на платформе Экзамус (https://hse.student.examus.net). К экзамену необходимо подключиться за 15 минут. На платформе Экзамус доступно тестирование системы. Компьютер студента должен удовлетворять следующим требованиям: https://elearning.hse.ru/data/2020/05/07/1544135594/Технические%20требования%20к%20ПК%20студента.pdf) Для участия в экзамене студент обязан: заранее зайти на платформу прокторинга, провести тест системы, включить камеру и микрофон, подтвердить личность. Во время экзамена студентам запрещено: общаться (в социальных сетях, с людьми в комнате), списывать, искать информацию в сети. Во время экзамена студентам разрешено: пользоваться собственными письменными конспектами (в тетради или на распечатанных листах), выйти по необходимости не более, чем на 5 минут. Кратковременным нарушением связи во время экзамена считается прерывание связи до 5 минут. Долговременным нарушением связи во время экзамена считается прерывание связи 5 минут и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи.
- Аудиторная работа
- Домашнее задание
- Лабораторные работыСреднее арифметическое оценок за все выполненные лабораторные работы.
- КИМКИМ
- Контрольная работа
- Промежуточный экзаменЭкзамен проводится в устной форме по вопроснику и\или примерному перечню задач, которые публикуются не позднее, чем за неделю до конца модуля. Экзамен может проводиться в одном из двух форматов: 1. Очно в аудитории. 2. В онлайн формате в видеочате.
- Итоговый письменный экзаменЭкзамен проводится в письменной форме (эссе) с использованием асинхронного прокторинга. Экзамен проводится на платформе Moodle (https://et.hse.ru/login/index.php), прокторинг на платформе Экзамус (https://hse.student.examus.net). К экзамену необходимо подключиться за 15 минут. На платформе Экзамус доступно тестирование системы. Компьютер студента должен удовлетворять следующим требованиям: https://elearning.hse.ru/data/2020/05/07/1544135594/Технические%20требования%20к%20ПК%20студента.pdf) Для участия в экзамене студент обязан: заранее зайти на платформу прокторинга, провести тест системы, включить камеру и микрофон, подтвердить личность. Во время экзамена студентам запрещено: общаться (в социальных сетях, с людьми в комнате), списывать, искать информацию в сети. Во время экзамена студентам разрешено: пользоваться собственными письменными конспектами (в тетради или на распечатанных листах), выйти по необходимости не более, чем на 5 минут. Кратковременным нарушением связи во время экзамена считается прерывание связи до 5 минут. Долговременным нарушением связи во время экзамена считается прерывание связи 5 минут и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи.
- Аудиторная работа
- Домашнее задание
- Лабораторные работыСреднее арифметическое оценок за все выполненные лабораторные работы.
- КИМКИМ
Промежуточная аттестация
- Промежуточная аттестация (1 модуль)0.25 * Аудиторная работа + 0.25 * Лабораторные работы + 0.5 * Промежуточный экзамен
- Промежуточная аттестация (4 модуль)0.6 * Итоговый письменный экзамен + 0.4 * Промежуточная аттестация (1 модуль)
Список литературы
Рекомендуемая основная литература
- Искусство программирования. Т.1: Основные алгоритмы, Кнут, Д. Э., 2011
- Язык программирования C++, Страуструп, Б., 2012
Рекомендуемая дополнительная литература
- Freeman, E., Freeman, E., Sierra, K., & Bates, B. (2004). Head First Design Patterns : A Brain-Friendly Guide. Sebastopol, CA: Reilly - O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=415229