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

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

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

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

Аннотация

Целями освоения дисциплины Алгоритмизация и программирование является ознакомление студентов с методами решения прикладных задач и их реализации на языке программирования Си и С++. В процессе изучения дисциплины студенты приобретают навыки проектирования и разработки программных приложений, которые будут использоваться при выполнении различных заданий и работ по дисциплинам, изучаемым на последующих курсах. В результате освоения дисциплины студент должен знать: 1) Основы информатики. 2) Основные структуры данных и методы их обработки. 3) Различия между языками программирования высокого и низкого уровня. 4) Язык программирования Си и возможности стандартной библиотеки. 5) Язык программирования С++ и возможности стандартной библиотеки. 6) Инструменты разработки: git и cmake. Должен уметь: 1) Формализовать прикладную задачу, выбирать для неё подходящие структуры данных и алгоритмы решения. 2) Программировать алгоритмы, используя средства языка Си и С++. 3) Разрабатывать тестовые случаи и сценарии. Иметь навыки (приобрести опыт): 1) В разработке программ на языке Си и С++. 2) В проведении отладки и тестирования разработанных программ. 3) В проведении анализа получаемых результатов и оформлении сопроводительной документации на программы. 4) Организация проекта с использованием git и cmake. Изучение данной дисциплины базируется на следующих дисциплинах: Линейная алгебра; Математический анализ; Дискретная математика. Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и компетенциями: знать основы информатики и ИКТ; знать основы линейной алгебры; знать элементы математической логики; уметь использовать программные и аппаратные средства информатики.
Цель освоения дисциплины

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

  • Ознакомление студентов с методами решения прикладных задач и их реализации на языке программирования Си.
  • Освоение основ объектно-ориентированного программирования на языке С++
Планируемые результаты обучения

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

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

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

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

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

  • неблокирующий ЛР1
  • неблокирующий ЛР2
  • неблокирующий Экзамен1
  • блокирующий Экзамен2
  • неблокирующий Экзамен3
  • неблокирующий Экзамен4
  • неблокирующий ЛР1 (С++)
  • неблокирующий ЛР2 (С++)
  • неблокирующий ЛР3 (С++)
  • неблокирующий Аудиторная работа 1
  • неблокирующий Аудиторная работа 2
Промежуточная аттестация

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

  • 2023/2024 учебный год 2 модуль
    0.4 * ЛР1 + 0.4 * ЛР1 + 0.6 * Экзамен1 + 0.6 * Экзамен1
  • 2023/2024 учебный год 4 модуль
    0.4 * ЛР2 + 0.4 * ЛР2 + 0.6 * Экзамен2 + 0.6 * Экзамен2
  • 2024/2025 учебный год 1 модуль
    0.2 * Аудиторная работа 1 + 0.2 * Аудиторная работа 1 + 0.4 * ЛР1 (С++) + 0.4 * ЛР1 (С++) + 0.4 * Экзамен3 + 0.4 * Экзамен3
  • 2024/2025 учебный год 3 модуль
    0.2 * Аудиторная работа 2 + 0.2 * Аудиторная работа 2 + 0.2 * ЛР2 (С++) + 0.2 * ЛР2 (С++) + 0.2 * ЛР3 (С++) + 0.2 * ЛР3 (С++) + 0.4 * Экзамен4 + 0.4 * Экзамен4
Список литературы

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

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

  • Белоцерковская, И. Е. Алгоритмизация. Введение в язык программирования С++ : учебное пособие / И. Е. Белоцерковская, Н. В. Галина, Л. Ю. Катаева. — 2-е изд. — Москва : ИНТУИТ, 2016. — 196 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100564 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Конова, Е. А. Алгоритмы и программы. Язык С++ : учебное пособие для вузов / Е. А. Конова, Г. А. Поллак. — 6-е изд., стер. — Санкт-Петербург : Лань, 2021. — 384 с. — ISBN 978-5-8114-8487-4. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/176900 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Курс программирования на языке Си : учебник для вузов, Подбельский, В. В., 2018
  • Практикум по программированию на языке СИ : учебное пособие, Подбельский, В. В., 2004
  • Седжвик, Р. Алгоритмы на С++ : учебное пособие / Р. Седжвик. — 2-е изд. — Москва : ИНТУИТ, 2016. — 1772 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100565 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Язык программирования 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

Авторы

  • Сластников Сергей Александрович
  • Миколаенко Вадим Витальевич
  • Дёмин Дмитрий Олегович