Курс "Программирование на языках 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 уч. года)
Организация экзамена (зимняя сессия)
Материалы для подготовки к экзамену, примеры экзаменационных задач и требования находятся здесь
Организация экзамена (весенняя сессия)
Материалы для подготовки к экзамену, пример задачи и требования находятся здесь