NSU Programming Программирование на C++ и Python

Программа практических занятий

Практические занятия состоят из двух частей. Первая часть (занятия 1-8) посвящена языку C++, вторая часть (занятия 9-13) — языку python. Оставшиеся три занятия используются для обсуждения заданий, которые студенты выполняют для получения зачета.

  • Настройка рабочей среды
    • Создание GitHub аккаунта
    • Установка VS Code, mingw, git, CMake
  • Компилирование программ с помощью gcc и CMake
  • Освоение процедуры сдачи заданий
    • Выполнение задания "Hello, Classroom!"
  • Работа с потоками ввода-вывода
    • Библиотеки iostream, fstream, sstream
  • Работа со строками в C++
    • Библиотека string

Материалы

  • Контейнеры стандартной библиотеки C++
    • vector, list, array, deque, priority_queue
    • set, map, unordered_set, unordered_map
    • range-based for loop
  • Эффективная передача параметров в функцию
    • Передача параметров в функцию по ссылке
    • Константные параметры
  • Итераторы
    • Типы итераторов
    • Конструирование контейнеров с помощью итераторов

Материалы

  • Алгоритмы стандартной библиотеки C++
    • for_each, sort, stable_sort, lower_bound, upper_bound, binary_search, copy_if, unique, any_of, all_of, none_of, copy_if, erase
    • Компараторы и предикаты
  • Лямбда-функции
  • Библиотека numeric
    • iota, accumulate, inner_product

Материалы

  • Классы
    • Публичные и приватные поля и методы
    • Статические поля и методы
    • Конструктор, деструктор, специальные методы
    • Константные поля и методы
    • Перегрузка операторов
    • Ключевые слова delete и default

Материалы

  • Наследование
    • Абстрактные типы
    • Виртуальные функции
    • Ключевые слова override и final
  • Динамическое выделение памяти
    • Использование new и delete
    • Умные указатели unique_ptr и shared_ptr
    • Идиома RAII

Материалы

  • Обобщенное программирование
    • Шаблонные функции
    • Шаблонные классы

Материалы

  • Основы синтаксиса языка python
  • Базовые типы данных и встроенные контейнеры
    • int, float, list, str, dict, set, tuple
  • Запись/чтение из файла
  • Подробнее о строках
    • f-, r-, и b-строки
    • методы count, capitalize, isdigit, encode и др.
  • Полезные модули стандартной библиотеки
    • Библиотеки os и sys
    • Аргументы командной строки и библиотека argparse
    • Библиотеки datetime и calendar
    • Библиотеки decimal и fraction

Материалы

  • Объектно-ориентированная разработка с python
  • Продолжаем знакомство со стандартной библиотекой python
    • Основы работы с web: библиотеки wget, requests
    • Сериализация с библиотекой json
    • Временные файлы с библиотекой tempfile
  • Итераторы, генераторы. Ключевое слово yield

Материалы

  • Вычисления с библиотекой numpy
    • Создание массивов numpy
    • Способы индексирования
    • Операции с массивами numpy, broadcasting
    • Случайные числа с numpy
    • Линейная алгебра с numpy

Материалы

  • Визуализация данных с библиотекой matplotlib
    • Графики plot, errorbar
    • Гистограммы hist
    • Диаграммы рассеяния scatter
    • Контурные диаграммы contour
    • Настройка отображения графиков

Материалы

  • Графика с библиотекой pygame
    • Структура программы с pygame, главный цикл
    • Отображение геометрических фигур
    • Обработка событий

Материалы

  • Работа над задачами