Курс "Программирование на языках C и C++"

2015/2016 учебный год

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

  • Пышкин Е.В.
  • Сидорина Т.Л.
  • Гагарский К.
  • Петров М.
  • Вылегжанина К.Д.

Объявления

  • ПОСЛЕДНЯЯ ПЕРЕЭКЗАМЕНОВКА состоится в среду 14 сентября, в 14:00, ориентировочно в аудитории 9-309
  • 10 ноября 2014 года: в издательстве СПб.: Профессиональная литература вышла книга Пышкина Е.В. и Глухих М.И. "Модульное тестирование программного обеспечения. Профессиональный базовый курс с практикой на JUnit". Книга в основном посвящена автоматизированному тестированию и проектированию, управляемому тестированием. Более подробная информация приведена на сайте издательства.

Отчетность

  • зачет по итогам упражнений (осень, весна)
  • экзамен (осень, весна)

Ресурсы

Авторы данной версии курса

Содержание курса

Основы программирования на С/С++

# Разделы и темы Дополнительные материалы
1 Введение
Тенденции развития языков программирования
(гостевая лекция М.Мозгового)
Цели и задачи разработки языка C++
(гостевая лекция М.Мозгового)
Введение в специальность (гостевая лекция В.М.Ицыксона)
Основание программирования
2 Понятие типа данных
Предпосылки
Основные типы данных C/C++ и операции над ними Пример
3 Структура программы на C/C++ Примеры к разд. 2-3
Управляющие конструкции и организация кода
Перечислимые типы
Плавающие типы
Компиляция и компоновка
4 Функции, массивы, строки Примеры к разд. 4
Функционально-иерархическая декомпозиция
Связывание аргументов и параметров
Модульность
Массивы Примеры с обработкой массивов
Работа со строками
Области видимости и классы памяти Пример
Структуры Пример
5 Классы: определение, реализация, использование Примеры к разд. 5
Определение класса C++, создание объектов, переменные-члены класса и методы
Классы, резервирующие и освобождающие память (на примере динамического массива)
Определение деструктора
Перегрузка операций для работы с объектами классов
Обработка ошибок с использованием механизма обработки исключений
6 Контейнеры, шаблоны, задачи поиска Примеры к разд. 6
Разработка обобщенных типов: шаблоны С++ на примере списочных структур
Введение в библиотеку контейнеров STL
Контейнеры STL и задачи поиска
7 Наследование. Иерархии типов Примеры к разд. 7
Понятие о статическом и динамическом связывании
Права доступа в связи с наследованием
Виртуальные методы
8 Объектно-ориентированный проект Пример проекта к разд. 8
Понятие о лексическом и синтаксическом анализе
Понятие о формальных грамматиках
Синтаксический анализ арифметических выражений
Метод рекурсивного спуска и особенности его реализации
Обратная польская запись
Вычисление и численное интегрирование функции одной переменной, заданной в символьной форме
Модификация проекта и дискуссия Примеры в ходе обсуждения
Building a Recursive Parser (lecture) Example
Parsing and computing arithmetic parenthesis-free expressions
9 Графы: введение
Понятие графа, способы представления
Задача поиска кратчайших путей и ее рекурсивное решение Пример рекурсивного поиска
10 Введение в модульное тестирование Пример

Материалы по элементам теории алгоритмов и разработке графического интерфейса пользователя на основе платформы Qt см. здесь (лекции весеннего семестра 2014/15 уч. года)

Организация экзамена (зимняя сессия)

Материалы для подготовки к экзамену, примеры экзаменационных задач и требования находятся здесь

Организация экзамена (весенняя сессия)

Материалы для подготовки к экзамену, пример задачи и требования находятся здесь

Архивы за предыдущие годы