Материалы для студентов
Меня зовут Пелевин Максим Сергеевич, с 2010 года я помогал при проведении занятий по курсу «Языки программирования», а с 2013 работаю на кафедре ИС Санкт-Петербургского государственного электротехнического университета «ЛЭТИ» преподавателем. Материалы для всех курсов можно найти здесь.
— курсы, которые больше не со мной
Курс «Алгоритмы и структуры данных» расчитан на бакалавров и специалистов 2-го курса по направлению компьютерных технологий и информаций.
Материалы для изучения
- Анализ алгоритмов
- Линейные структуры данных
- Алгоритмы сортировки
- Бинарное (двоичное) дерево поиска, обходы и применение
- Сбалансированные деревья: АВЛ и Красно-Чёрные деревья
- B-дерево и его разновидности
- Алгоритмы на графах: Дейкстры, Прима, Краскала
- Поиск подстроки в строке
Практические задачи
Списочные структуры. Реализовать следующие структуры: двусвязный список, динамический массив и стек. Стек можно реализовать как на базе списка, так и отдельно. Использовать стек для реализации алгоритма сортировочной станции. Разрешённые символы в исходном выражении: +, -, *, /, ^, sin, cos, (, ), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Для упрощения разбиения входной строки на токены разрешается отделять каждый символ пробелом. |
Сортировки. Реализовать сортировку Timsort. В реализации должны быть выполнены все основные элементы алгоритма: сортировка вставками, поиск последовательностей run, подсчёт minrun, слияние последовательностей run, режим галопа при слиянии. |
Деревья. Реализовать:
Продемонстрировать:
|
Курсовой проект |
Книги
Курс «Функциональное программирование» для бакалавров состоит из 11 недель, в течение которых предлагается изучить как теоретические основы функционального программирования, так и его практическое применение (на Haskell).
Материалы для изучения
- Особенности функционального программирования
- Основы работы с Haskell: запуск, сборка, зависимости
- Классы типов
- Каррирование, замыкания
- Функторы, аппликативные функторы и монады в картинках
- Сравнение функциональных языков и использование функционального стиля
Сайты и ссылки
Курс «Языки программирования» состоит из 2-х семестров и посвящён изучению следующих тем:
- Процедурное программирование приложений для консольного использования.
- Объектно-ориентированное программирование UI приложения с использованием фреймворка Qt.
Материалы для изучения
- Типы данных
- Выполнение программы
- Указатели, ссылки и массивы в C++
- Функции в C++
- Пользовательские структуры и классы в C++
- Заголовочные файлы и файлы реализации
Практические задачи (Осень)
Практические задачи (Весна)
Текстовый редактор: Реализовать графический текстовый редактор с подсветкой синтаксиса. |
Игра в жизнь: используя результаты 2 задания осеннего семестра перенести отображение процесса игры в графическую форму с поддержкой расстановки изначальной позиции через мышь. |
Чат: реализовать клиентскую и серверную часть для передачи сообщений между несколькими пользователями. |
Книги
- Бьерн Страуструп «Язык программирования C++. Специальное издание», БИНОМ, 2011
- С.А. Орлов «Теория и практика языков программирования», ПИТЕР, 2013
- Э. Таненбаум «Современные операционные системы. 3-е издание», ПИТЕР, 2010
- М. Полубенцева «С/С++. Процедурное программирование», БХВ-Петербург, 2008
Сайты и ссылки
!-- yaprog -->