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

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

Статус: Курс обязательный (Прикладная математика)
Направление: 01.03.04. Прикладная математика
Когда читается: 2-й курс, 1, 4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 6
Контактные часы: 28

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

Аннотация

Дисциплина «Алгоритмизация и программирование» призвана обучить студентов принципам функционирования информационных технологий, базовым концепциям технологий программирования и эффективных реализаций алгоритмов. Теоретический материал курса подкрепляется практическими занятиями по программированию (курс «Компьютерный практикум») в целях реализации предлагаемых заданий в рамках изучаемой тематики. Дисциплина относится к профессиональному учебному циклу (Б.3) и блоку дисциплин, обеспечивающих базовую (общепрофессиональную) подготовку. Для освоения учебной дисциплины, студенты должны изучить следующие учебные курсы: Линейная алгебра и аналитическая геометрия (1 курс); Математический анализ (1 курс); Алгоритмизация и программирование (1 курс); Компьютерный практикум (1 курс); Теория вероятностей и математическая статистика (2 курс). Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и компетенциями: Владеть основами программирования на языке С; Знать методы и базовые алгоритмы обработки информационных структур, методы анализа сложности алгоритмов. Основные положения дисциплины и освоенные компетенции должны быть использованы в дальнейшем при изучении дисциплин: Компьютерный практикум (3 курс); Операционные системы (3 курс); Базы данных (3 курс); Численные методы (3-4 курсы); Проект и/или Междисциплинарная курсовая работа (3 курс).
Цель освоения дисциплины

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

  • Знакомство слушателей дисциплины с основными парадигмами и теоретическими основами программирования, терминологией объектно-ориентированного программирования
  • Ознакомление студентов с методами решения прикладных задач и их реализации на языке программирования Си.
  • Формирование представления о возможностях и особенностях объектно-ориентированных языков программирования при проектировании, разработке и отладке компьютерных программ
  • Изучение теоретических основ программирования, методов реализации алгоритмов различного типа, базовых принципов объектно-ориентированного программирования, основных подходов машинного обучения
  • Выработка навыков и умений программирования на языке С++ с применением широко используемых библиотек
  • Получение опыта работы с механизмами статического полиморфизма, такими как шаблоны функций и классов; поиска эффективных реализаций различных алгоритмов, практических навыков разработки прикладных программ, в том числе для методов анализа данных
Планируемые результаты обучения

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

  • Владеет основными шаблонами проектирования, понимает принципы их реализации и использования в разных языках программирования.
  • Владение семейством функций стандартной библиотеки языка Си.
  • Знание основных парадигм программирования и общих принципов разработки ПО.
  • Навыки программного создания, чтения и изменения файлов на языке Си.
  • Навыки работы со статической и динамической памятью на языке Си.
  • Написание простейших программ на языке Си.
  • Определение пользовательских типов данных и операций над ними.
  • Понимание основных методов сортировки данных и критериев их эффективности.
  • Реализация некоторых абстрактных типов данных на языке Си.
  • Реализация пользовательских функций на языке Си.
  • Способен проектировать и реализовывать систему с множеством связанных объектов на основе концепции ООП в С++.
  • Способен реализовать программу на языке С++ по заданному алгоритму.
  • Способен реализовать программу на языке С++ с использованием контейнеров и алгоритмов стандартной библиотеки, шаблонов и обработкой всех видов исключений.
Содержание учебной дисциплины

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

  • Базовые понятия и конструкции языка Си. Препроцессорные директивы.
  • Парадигмы программирования. Общие принципы разработки программного обеспечения.
  • Функции.
  • Введение в программирование на С++.
  • Указатели, массивы, строки. Статическая и динамическая память.
  • Обработка исключений. Знакомство с библиотекой STL.
  • Организация ввода/вывода в языке Си. Файлы.
  • ООП в С++. Наследование, виртуальные функции, полиморфизм. Шаблоны.
  • Стандартная библиотека языка Си.
  • Структурные типы данных языка Си.
  • Паттерны проектирования.
  • Абстрактные типы данных.
  • Алгоритмы сортировки и поиска данных.
Элементы контроля

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

  • неблокирующий Контрольная работа
  • неблокирующий Промежуточный экзамен
  • блокирующий Итоговый письменный экзамен
    Экзамен проводится в письменной форме (эссе) с использованием асинхронного прокторинга. Экзамен проводится на платформе 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 модуль)
  • неблокирующий Экзамен (4 модуль)
Промежуточная аттестация

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

  • 2020/2021 учебный год 2 модуль
    0.04 * Домашнее задание + 0.04 * Контрольная работа + 0.6 * Промежуточный экзамен + 0.04 * Аудиторная работа + 0.28 * Лабораторные работы
  • 2020/2021 учебный год 4 модуль
    0.02 * Контрольная работа + 0.02 * Аудиторная работа + 0.16 * Лабораторные работы + 0.6 * Итоговый письменный экзамен + 0.2 * 2020/2021 учебный год 2 модуль
  • 2021/2022 учебный год 1 модуль
    0.25 * Аудиторная работа + 0.5 * Экзамен (1 модуль) + 0.25 * Лабораторнче работы
  • 2021/2022 учебный год 4 модуль
    0.7 * Экзамен (4 модуль) + 0.3 * 2021/2022 учебный год 1 модуль
Список литературы

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

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

  • Курс программирования на языке Си : учебник для вузов, Подбельский, В. В., 2018
  • Практикум по программированию на языке СИ : учебное пособие, Подбельский, В. В., 2004
  • Язык программирования C++, Страуструп, Б., 2012
  • Язык программирования, Керниган, Б., 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
  • Алгоритмы и структуры данных, Вирт, Н., 2001