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

Языки программирования

Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус: Курс обязательный (Компьютерная безопасность)
Когда читается: 1-й курс, 1-4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Специальность: 10.05.01. Компьютерная безопасность
Язык: русский
Кредиты: 13

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

Аннотация

Основной целью освоения дисциплины «Языки программирования» является формирование базовых компетенций, связанных с разработкой программного обеспечения при решении профессиональных задач. В рамках дисциплины вырабатываются навыки программирования и алгоритмизации с применением современных процедурных и объектно-ориентированных языков программирования. Параллельно с рассмотрением данных языков, демонстрируется их связь с языком ассемблера. За счёт рассмотрения основных представителей языков различного уровня и их связей, закладывается понимание иерархии существующего ПО, происходит освоение разнообразного инструментария и подготовка специалиста к проектированию и анализу программных систем.
Цель освоения дисциплины

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

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

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

  • Уметь работать с инструментальными средствами разработки программного обеспечения
  • Знать общие принципы построения и использования современных языков программирования высокого уровня
  • Знать особенности наиболее распространенных объектно-ориентированных языков программирования
  • Уметь формализовать поставленную задачу
  • Уметь применять в профессиональной деятельности современные объектно-ориентированные языки программирования
  • Знать базовые структуры данных
  • Знать парадигмы и методологии программирования
  • Знать современные технологии программирования
Содержание учебной дисциплины

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

  • Основные понятия
    Введение в компилируемые языки. Компилятор и компоновщик. Типы данных и переменные. Арифметические операторы. Заголовочные файлы. Функция main(). Основы ввода и вывода. Системы сборки.
  • Основы языка Си++. Операторы. Функции. Массивы. Указатели. Строки в стиле Си. Хранение данных в памяти.
    Условные операторы. Проверка ввода. Основы форматированного вывода, манипуляторы. Функции и их перегрузка. Массивы. Указатели. Строки. Основы препроцессора. Оператор switch. Глобальные переменные. const. Статические переменные. Оператор sizeof. Побитовые операции.
  • Язык Си++. Функция main(). Динамическая память. Пользовательские типы. Работа с файлами.
    Указатели на функции. Аргументы main(). Рекурсия. Препроцессор. Динамическая память. Структуры, перечисления, объединения и typedef. Основы неформатированного ввода-вывода. Основы работы с файлами.
  • Язык Си++. Основы ООП и его реализация в языке Си++.
    Проинципы ООП к программированию. Язык Си++, локальные переменные, пространства имен. Знакомство с классами. Ключевые слова. Классы и структуры. Конструкторы и деструкторы. inline-функции. Вложенные классы. Передача и возврат классов в/из функции. Присваивание классов. Конструкторы. Перегрузка функций. Оператор присваивания. Функция приведения типа. Массивы, указатели, this. Ссылки. Подробнее о динамической памяти. Подробнее о пространствах имен. const-корректность. Исключения. Статические компоненты класса. Наследование. Виртуальные функции.
  • Язык Си++. Система ввода/вывода
    Подробнее о системе ввода-вывода. Дружественные функции и классы. Перегрузка операторов. Подробнее о файловом вводе-выводе.
  • Язык Си++. Обобщенное программирование и STL
    Обобщенное программирование. Механизм шаблонов в языке Си++. Обобщенные функции. Обобщенные классы. Ключевое слово typename. Мощь шаблонов. Введение в STL. Основные концепции. Контейнеры. Алгоритмы. Итераторы. Функторы. Прочие элементы STL Стандартные контейнерные классы. Итераторы Стандартные алгоритмы. Класс std::string. Динамическая идентификация типов. Операторы приведения типов.
  • Язык Си++. Современные возможности.
    Новые возможности стандартов языка Си++11/14/17/20
Элементы контроля

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

  • неблокирующий Аудиторная работа 1-2 модуль
  • неблокирующий Контрольная работа 1-2 модуль
  • неблокирующий Лабораторная работа 1-2 модуль
  • неблокирующий Экзамен 2 модуль
  • неблокирующий Аудиторная работа 3-4 модуль
  • неблокирующий Контрольная работа 3-4 модуль
  • неблокирующий Лабораторная работа 3-4 модуль
  • неблокирующий Экзамен 4 модуль
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
  • Промежуточная аттестация (4 модуль)
    0.125 * Аудиторная работа 3-4 модуль + 0.125 * Контрольная работа 3-4 модуль + 0.25 * Лабораторная работа 3-4 модуль + 0.4 * Экзамен 4 модуль
Список литературы

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

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

  • С++: базовый курс, Шилдт, Г., 2011
  • Стандартная библиотека С++ : справочное руководство, Джосаттис, Н. М., 2014
  • Шаблоны C++. Справочник разработчика, Вандевурд, Д., 2020
  • Эффективный и современный С++ : 42 рекомендации по использованию С++11 и С++14: пер. с англ., Мейерс, С., 2019

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

  • C++17 STL. Стандартная библиотека шаблонов, Галовиц, Я., 2019
  • С++ : полное руководство: классическое издание, Шилдт, Г., 2018