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

Альтернативные названия в учебных планах:

  • Программирование
  • Программирование и основы алгоритмизации

2013/2014 учебный год

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

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

Отчетность:

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

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

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

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

Графический интерфейс пользователя средствами Qt

# Разделы и темы Дополнительные материалы
1 Введение в GUI-программирование Примеры
2 Основы библиотеки Qt Примеры
3 Основные компоненты Примеры
Обработка событий мыши
Работа с дизайнером: меню, действия, привязка слотов, контекстное меню
Фильтры событий
4 Компоненты Qt и XML Примеры
Обработка событий клавиатуры
Сохранение в файл, загрузка из файла
Основные сведения о формате XML
DOM и поддержка XML в Qt
5 архитектура "Модель-представление" Пример
Менеджеры компоновки Примеры

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

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

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

На экзамене студентам будет предложено создать Qt-проект, аналогичный фрагментам задач, рассмотренных на лекции, например, создать простой редактор фигур для рисования (удаления, перемещения) треугольников.

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

Содержание курса 2011/2012 учебного года можно посмотреть здесь