Практикум (3 курс, осенний семестр 2016 года) — различия между версиями

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск
 
(не показаны 8 промежуточные версии 2 участников)
Строка 1: Строка 1:
 +
[[Категория:Семинары кафедры математической кибернетики (архив)]]
 +
 
== Общая информация ==
 
== Общая информация ==
 
* Занятия проходят по понедельникам с 14:35 до 16:10 в аудитории 609.
 
* Занятия проходят по понедельникам с 14:35 до 16:10 в аудитории 609.
Строка 28: Строка 30:
 
=== Структуры данных и элементы STL ===
 
=== Структуры данных и элементы STL ===
  
''' Семинар 8. Реализация очередей с приоритетами. 24 октября. '''
+
''' Семинар 8. Реализация очередей с приоритетами. 31 октября. '''
 
Бинарное дерево поиска. Поиск по ключу, поиск максимума и минимума, предшествующий и последующий элементы. Вставка и удаление. Пирамида (binary heap). Свойство пирамиды. Поддержка свойства пирамиды. Создание пирамиды. Пирамидальная сортировка. [http://en.wikipedia.org/wiki/Priority_queue| Очередь с приоритетами].
 
Бинарное дерево поиска. Поиск по ключу, поиск максимума и минимума, предшествующий и последующий элементы. Вставка и удаление. Пирамида (binary heap). Свойство пирамиды. Поддержка свойства пирамиды. Создание пирамиды. Пирамидальная сортировка. [http://en.wikipedia.org/wiki/Priority_queue| Очередь с приоритетами].
  
''' Семинар 9. Хэш-таблицы. 31 октября. '''
+
''' Семинар 9. Хэш-таблицы. 7 ноября. '''
 
TBA
 
TBA
  
''' Семинар 10. Системы непересекающихся множеств. 7 ноября. '''
+
''' Семинар 10. Системы непересекающихся множеств. 14 ноября. '''
 
[http://en.wikipedia.org/wiki/Disjoint-set_data_structure| Система непересекающихся множеств]. Представление непересекающихся множеств с помощью списков. Лес непересекающихся множеств. Корневая, весовая и ранговая эвристики. Влияние эвристик на время работы. Анализ объединения по рангу со сжатием пути. [[Media:Prac_318_DSDS.pdf|Презентация]].
 
[http://en.wikipedia.org/wiki/Disjoint-set_data_structure| Система непересекающихся множеств]. Представление непересекающихся множеств с помощью списков. Лес непересекающихся множеств. Корневая, весовая и ранговая эвристики. Влияние эвристик на время работы. Анализ объединения по рангу со сжатием пути. [[Media:Prac_318_DSDS.pdf|Презентация]].
  
''' Семинар 11. Первая контрольная. 14 ноября. '''
+
''' Семинар 11. Первая контрольная. 21 ноября. '''
 
Контрольная по первым двум разделам курса.
 
Контрольная по первым двум разделам курса.
  
 
=== Приемы объектно ориентированного программирования ===
 
=== Приемы объектно ориентированного программирования ===
  
''' Семинар 12. Паттерны проектирования – классификация паттернов. Порождающие паттерны. 21 ноября. '''
+
''' Семинар 12. Паттерны проектирования – классификация паттернов. Порождающие паттерны. 28 ноября. '''
 
TBA
 
TBA
  
''' Семинар 13. Структурные паттерны. 28 ноября. '''
+
''' Семинар 13. Структурные паттерны. 5 декабря. '''
 
TBA
 
TBA
  
''' Семинар 14. Паттерны поведения. 5 декабря. '''
+
''' Семинар 14. Паттерны поведения. 12 декабря. '''
 
TBA
 
TBA
  
''' Семинар 15. Контрольная. 12 декабря. '''
+
''' Семинар 15. Контрольная. 19 декабря. '''
 
Контрольная по третьему разделу курса.
 
Контрольная по третьему разделу курса.
  
Строка 63: Строка 65:
  
 
=== Второе домашнее задание ===
 
=== Второе домашнее задание ===
TBA
+
* [[Media:Prac318_Autumn_2016_HW2_Overview.pdf|Общее описание задания]].
 +
* Срок выполнения первой части: 14 ноября.
 +
* Срок выполнения второй части: 21 ноября.
 +
* Срок выполнения третьей части: 28 ноября.
  
 
=== Третье домашнее задание. ===
 
=== Третье домашнее задание. ===
TBA
+
* [[Media:Prac318_Autumn_2016_HW3_Overview.pdf|Общее описание задания]].
 +
* Срок выполнения задания: 20 декабря.
 +
 
 +
[[Media:Prac318_Autumn_2016_howto_bdd_buddy.zip|C++: пример работы с библиотекой bdd (BuDDy).]]
  
[[Категория:Семинары кафедры математической кибернетики]]
+
[[Media:Prac318_Autumn_2016_howto_regular_expressions_boost_regex.zip|C++: пример работы с регулярными выражениями (Boost.regex).]]

Текущая версия на 18:20, 9 февраля 2019


Общая информация

Программа семинаров

Семинар 1. Вводный семинар. 5 сентября. Объявление общего плана занятий в семестре. Критерии выставления оценки в конце семестра. Анкетирование студентов. Проведение вводной контрольной для оценки знаний студентов.

Инструменты разработки программного обеспечения

Семинар 2. Стандарты оформления кода. 12 сентября. Критерии качества программ. Стандарты оформления кода (Code style guides). Презентация.

Семинар 3. Системы контроля версий. 19 сентября. Централизованные и распределенные системы контроля версий. Разработка с использованием систем контроля версий. Система контроля версий Git. Основные возможности Git. Работа с системой контроля версий Git. Навигация по истории проекта (commit history). Работа с ветвями(branching): создание, управление и слияние. Работа с удаленным сервером. Системы управления проектом. Обзор возможностей системы GitLab. Презентация.

Семинар 4. Автоматическая сборка проекта. 26 сентября. Автоматическая сборка проекта. Утилита GNU Make. Презентация (обновлена 26.09.2016).

Семинар 5. Автоматическая сборка проекта (продолжение). Разбор параметров командной строки. 3 октября. Утилита CMake. Презентация по CMake. getopt, Boost.Program_options. Презентация по разбору командной строки в C/C++.

Семинар 6. Тестирование программ. 10 октября. Введение в тестирование. Распространенные ошибки. Основные принципы и подходы к тестированию программ. Среды тестирования программ на примере CppUnit.

Семинар 7. Автоматическая документация кода. 24 октября. Автоматическая документация кода. Создание автоматической документации при помощи Doxygen. Презентация.

Структуры данных и элементы STL

Семинар 8. Реализация очередей с приоритетами. 31 октября. Бинарное дерево поиска. Поиск по ключу, поиск максимума и минимума, предшествующий и последующий элементы. Вставка и удаление. Пирамида (binary heap). Свойство пирамиды. Поддержка свойства пирамиды. Создание пирамиды. Пирамидальная сортировка. Очередь с приоритетами.

Семинар 9. Хэш-таблицы. 7 ноября. TBA

Семинар 10. Системы непересекающихся множеств. 14 ноября. Система непересекающихся множеств. Представление непересекающихся множеств с помощью списков. Лес непересекающихся множеств. Корневая, весовая и ранговая эвристики. Влияние эвристик на время работы. Анализ объединения по рангу со сжатием пути. Презентация.

Семинар 11. Первая контрольная. 21 ноября. Контрольная по первым двум разделам курса.

Приемы объектно ориентированного программирования

Семинар 12. Паттерны проектирования – классификация паттернов. Порождающие паттерны. 28 ноября. TBA

Семинар 13. Структурные паттерны. 5 декабря. TBA

Семинар 14. Паттерны поведения. 12 декабря. TBA

Семинар 15. Контрольная. 19 декабря. Контрольная по третьему разделу курса.

Домашние задания

Первое домашнее задание. Изоморфизм графов

Второе домашнее задание

  • Общее описание задания.
  • Срок выполнения первой части: 14 ноября.
  • Срок выполнения второй части: 21 ноября.
  • Срок выполнения третьей части: 28 ноября.

Третье домашнее задание.

C++: пример работы с библиотекой bdd (BuDDy).

C++: пример работы с регулярными выражениями (Boost.regex).