• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Компьютерный практикум

2019/2020
Учебный год
RUS
Обучение ведется на русском языке
4
Кредиты
Статус:
Курс обязательный
Когда читается:
2-й курс, 2-4 модуль

Преподаватели

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

Аннотация

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

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

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

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

  • Студент должен знать парадигмы и методологии программирования, особенности наиболее распространенных объектно-ориентированных языков программирования, основные принципы автоматизированных систем сбора, анализа, обработки, передачи и хранения информации;
  • Студент должен уметь применять в профессиональной деятельности современные объектно-ориентированные языки программирования; профессионально решать задачи производственной и технологической деятельности с учетом современных достижений науки и техники, включая: разработку алгоритмических и программных решений в области системного и прикладного программирования, разработку математических, информационных и имитационных моделей по тематике выполняемых исследований;
  • Студент должен владеть базовыми математическими знаниями и информационными технологиями, эффективно применять их для решения научно-технических и прикладных задач, связанных с развитием и использованием информационных технологий, математическими алгоритмами и методами автоматизации сбора и анализа данных при построении систем машинного обучения;
  • Студент должен иметь навыки (приобрести опыт) постановки математических и информационных задач, разработки технического задания по проектированию программного обеспечения, описания алгоритмов решения поставленной задачи и разработки программного кода на языке C++ тестирования программного обеспечения, использования методов машинного обучения.
Содержание учебной дисциплины

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

  • Введение в программирование на С++.
    Пространства имен. Ввод/вывод в С++. Операции инкремента и декремента. Особенности операторов инкремента и декремента при работе с указателями. Ссылки. Выделение/освобождение памяти в С++. Константы и макроопределения.
  • Знакомство с библиотекой STL.
    Понятие объекта и класса. Классы стандартной библиотеки для работы со строками. Классы стандартной библиотеки для работы с контейнерами. Операции с объектами стандартной библиотеки. Преобразование типов.
  • Построение пользовательских типов данных.
    Создание пользовательских классов. Принцип композиции при конструировании новых классов. Инициализация данных объекта класса (Конструктор по умолчанию, конструктор с параметрами). Назначение деструктора. Способы передачи объекта в функцию, конструктор копирования. Перегрузка операторов. Статические переменные и методы класса. Константные методы. Перегруженные методы.
  • Наследование, виртуальные функции, полиморфизм.
    Спецификаторы доступа public, protected, private. Понятие и механизм наследования классов. Преимущества и недостатки наследования по сравнению с композицией. Виртуальные функции, понятие полиморфизма. Чистые виртуальные функции и абстрактные классы. Доступ к объекту через указатель, преобразование типов. Непрямые базовые классы. Виртуальный деструктор. Множественное наследование.
  • Шаблоны С++.
    Понятие обобщенного программирования. Определение шаблона класса. Создание объектов шаблона класса. Наследование шаблонных классов. Шаблоны функций.
  • Создание и работа с элементами пользовательского интерфейса. Знакомство с Qt.
    Проектирование пользовательского интерфейса в Qt.
  • Алгоритмы на графах.
    Построение пользовательских классов и использование популярных библиотек для работы с графами.
  • Основы машинного обучения на С++.
    Задачи обучения с учителем: задачи классификации, регрессии. Задачи обучения без учителя, кластеризации.
  • Многопоточное программирование.
    Создание потоков. Рабочие и интерфейсные потоки. Синхронизация потоков.
Элементы контроля

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

  • неблокирующий Аудиторная
  • неблокирующий Самостоятельная
  • неблокирующий контрольно-измерительные материалы
    контрольно-измерительные материалы
  • неблокирующий Проставление накопленных оценок
    Выставляется оценка по накопленной по формуле 0.5 * Аудиторная + 0.5 * Самостоятельная
Промежуточная аттестация

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

  • Промежуточная аттестация (4 модуль)
    0.5 * Аудиторная + 0.5 * Самостоятельная
Список литературы

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

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

  • Как программировать на С++, Дейтел, Х. М., Дейтел, П. Д., 2008

Рекомендуемая дополнительная литература

  • Кетков Ю.Л. - Введение в языки программирования C и C++ - Национальный Открытый Университет "ИНТУИТ" - 2016 - 291с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100719