ИВТ. Алгоритмы и структуры данных. Базовый поток 2026: различия между версиями

Материал из Public ATP Wiki
Перейти к навигации Перейти к поиску
 
(не показаны 32 промежуточные версии этого же участника)
Строка 1: Строка 1:
{{Программа курса
== О курсе ==
| название = Структуры данных и алгоритмы
| семестр = 1 (Осенний)
| руководитель_курса = Дединский И.Р.
}}
 
== 1. О курсе ==
Дисциплина включает подробное освещение практики реализации структур данных и программ, решений практических задач, а также предполагает самостоятельное изучение студентами материала предмета через решение домашних практических задач.  
Дисциплина включает подробное освещение практики реализации структур данных и программ, решений практических задач, а также предполагает самостоятельное изучение студентами материала предмета через решение домашних практических задач.  
Большое внимание уделяется базовым принципам построения архитектуры ПО, практикам разработки.
Большое внимание уделяется базовым принципам построения архитектуры ПО, практикам разработки.


'''Пререквизиты:'''
'''Пререквизиты:'''
Для освоения курса необходимы базовые понимания о понятии алгоритма и работе компьютера.
Специальная предварительная подготовка для освоения дисциплины не требуется. Базовые представления об алгоритмах, принципах работы компьютера и организации выполнения программ формируются в течение первых двух недель обучения. В дальнейшем эти знания последовательно расширяются, закрепляются и контролируются в ходе лекционных и семинарских занятий.
 
== Программа курса ==
'''Форма контроля:''' дифференцированный зачёт


== 2. Программа курса ==
{| class="wikitable"
{| class="wikitable"
|-
|-
! Неделя !! Лекция/Семинар !! Д/З !! Контроль / событие !! Дедлайн
! Неделя !! Лекция !! Семинар !! Контроль / событие !! Дедлайн
|-
|1–2
|Интуитивное понятие алгоритма, определение алгоритма.
<br>Свойства алгоритмов. Виды алгоритмов.
<br>Способы задания алгоритмов. Машины Тьюринга и Поста.
<br>Нормальные алгорифмы Маркова.
|Решение задач на Машины Тьюринга и Поста.
<br>Нормальные алгорифмы Маркова.
|тесты
|10.09.2026
|-
|-
|1–3
|3–4
|'''Основные понятия структур данных.'''
|Основные понятия структур данных.
<br>Концепция типа данных. Простейшие типы данных.
|Основные понятия структур данных.
<br>Простейшие стандартные типы данных.  
<br>Ограниченные типы (диапазоны). Массивы.
<br>Записи. Записи с вариантами. Множества.
<br>Представление массивов, записей и множеств.
<br>Последовательности (элементарные операции,
<br>буферизация, стандартные ввод и вывод).
|
|
|
|
|
|-
|-
|4–6
|4–6
|'''Данные с динамической структурой.'''
|Данные с динамической структурой.
<br>Линейные списки: основные операции, упорядоченные списки
|Данные с динамической структурой.
<br>и перестройка списков. Стеки, очереди, деки, нелинейные
|
<br>структуры данных, иерархические списки, мультисписки.  
<br>Реализация перечисленных структур данных. Стандартные
<br>классы в ООП, поддерживающие динамические структуры.
|
|
|-
|7-9
|Алгоритмы поиска.
|Алгоритмы поиска.
|
|
|
|
|-
|-
|7–11
|10–12
|'''Алгоритмы поиска.''' Задачи поиска и кодирования
|Алгоритмы сортировки.  
<br>(сжатия) данных. Кодовые деревья, оптимальные префиксные коды,
|Алгоритмы сортировки.  
<br>исчерпывающий поиск. Линейный поиск. Поиск делением пополам
<br>(двоичный поиск). Поиск в таблице. Прямой поиск строки. Поиск
<br>в строке (алгоритмы Кнута, Мориса и Прата). Алгоритмы Боуэра-Мура.
<br>Алгоритмы Рабина-Карпа.
|
|
|
|
|
|-
|-
|12–16
|13-15
|'''Быстрый доступ к данным.''' Хеширование данных.  
|Быстрый доступ к данным.
<br>Способы вычисления хеш-функций. Разрешение коллизий. Линейное,
|Быстрый доступ к данным.
<br>квадратичное опробование. Метод цепочек, двойное хеширование.
<br>Оценка качества хеш-функций. Инвертированные индексы. Битовые карты.
|
|
|
|
|
|}
|}


== 3. Коммуникация ==
'''Подробное описание тем''' [https://docs.google.com/document/d/1UE-SXdCSe5NicJ2vd7YAKn4kIw424T1M/edit?usp=drive_link&ouid=111154455295475417649&rtpof=true&sd=true здесь]
 
В процессе обучения студенты выполняют 7 лабораторных работ в составе группы.
<br>Совместная работа над заданиями способствует формированию навыков командного взаимодействия, распределения задач и ответственности, согласования отдельных этапов работы и совместной реализации программных проектов.
Лабораторные работы [https://drive.google.com/file/d/1-F1v0cuM90VCnPZcPgdZuw5NyAU_29Ct/edit здесь]
 
== Коммуникация ==
 
Чат курса (МАКС или другой мессенджер).
 
== Прогресс студентов ==
Таблица с оценками, доступная студентам в Yandex таблице.  Ссылка дается студентам на первом семинаре.
 
== Критерии оценивания и формы контроля успеваемости ==
 
На каждом семинарском занятии студентам предлагается набор задач по изучаемой теме, которые необходимо решить в течение занятия.
<br>Выполненные задания проверяются и оцениваются преподавателем.
<br>Задачи, которые студент не успел выполнить на семинаре, должны быть решены самостоятельно дома.
<br>Эти решения предназначены для самостоятельной отработки материала и преподавателем не проверяются.
<br>На следующем семинарском занятии проводится мини-контрольная работа продолжительностью 20 минут.
<br>В неё включается одна из задач по материалу предыдущего оцениваемого семинара.
<br>Таким образом, контрольная работа позволяет оценить не только работу студента непосредственно на занятии, но и степень самостоятельного освоения материала.
 
'''Итоговая оценка за работу''' по соответствующей теме формируется на основании двух составляющих:
<br>1. результатов выполнения задач на семинарских занятиях и
<br>2. результатов мини-контрольных работ.


Чат курса (Telegram или другой мессенджер).
Если изучение одной темы охватывает несколько семинаров, учитываются результаты работы студента на всех занятиях, относящихся к данной теме.
<br>В случае пропуска семинарского занятия по неуважительной причине возможность последующей отработки заданий и пересдачи оценки за данное занятие не предоставляется.
<br>При наличии уважительной причины порядок отработки пропущенного занятия согласовывается с преподавателем индивидуально.


== 4. Прогресс студентов ==
'''Формирование итоговой оценки'''


Таблица с оценками, доступная студентам.
Итоговая оценка по дисциплине формируется на основании результатов работы студента в течение семестра и включает следующие составляющие:
*СЗ — семинарские занятия — средняя оценка за работу на семинарах с учётом результатов мини-контрольных работ. Вес в итоговой оценке — 30 % (коэффициент 0,3).
*КР — контрольные работы — средняя оценка за две контрольные работы, проводимые в течение семестра. Вес в итоговой оценке — 40 % (коэффициент 0,4).
*Т — тестирование — средняя оценка за тесты, проводимые на отдельных семинарских занятиях. Вес в итоговой оценке — 10 % (коэффициент 0,1).
*ЛР — лабораторные работы — средняя оценка за выполнение лабораторных работ в течение семестра. Вес в итоговой оценке — 20 % (коэффициент 0,2).


== 5. Критерии оценивания и формы контроля успеваемости ==
'''Итоговая оценка рассчитывается по формуле:'''
Итоговая оценка = 0,3 × СЗ + 0,4 × КР + 0,1 × Т + 0,2 × ЛР
<br>Таким образом, при формировании итоговой оценки учитываются как результаты текущей работы студента на семинарских занятиях, так и результаты контрольных работ, тестирования и выполнения лабораторных работ.


С целью контроля освоения обучающимися учебного материала проводится устный опрос в начале занятия по теме прошлой лекции или в конце занятия по пройденной теме.
С целью контроля освоения обучающимися учебного материала проводится устный опрос в начале занятия по теме прошлой лекции или в конце занятия по пройденной теме.
Дифференцированный зачет проводятся в устной форме. Во время проведения обучающиеся могут пользоваться программой дисциплины.
Дифференцированный зачет проводятся в устной форме. Во время проведения обучающиеся могут пользоваться программой дисциплины.


== 6. Команда курса ==
== Команда курса ==
 
'''Руководитель и лектор курса:''' Дивари Ирина Николаевна


Руководитель и лектор курса: Дивари Ирина Николаевна
'''Ассистент:''' Карецкий Владислав Олегович
Ассистент: Карецкий Владислав Олегович


= . Материалы курса =
= Материалы курса =
Материалы – слайды лекций и задачи семинарских занятий предоставляются студентам перед каждым семинаром и располагаются на платформе LMS.


'''Перечень типовых вопросов для промежуточной аттестации:'''
'''Перечень типовых вопросов для промежуточной аттестации:'''
#Моделирование абстрактных типов данных (АТД) для различных реализаций (табличное, списковое, комбинированное и т.д.).
#Моделирование абстрактных типов данных (АТД) для различных реализаций (табличное, списковое, комбинированное и т.д.).
#Поиск информации в различных структурах данных с использованием классических алгоритмов поиска в текстовой информации.
#Поиск информации в различных структурах данных с использованием классических алгоритмов поиска в текстовой информации.
Исследование эффективности алгоритмов сортировок для различных структур и размерностей данных.
#Исследование эффективности алгоритмов сортировок для различных структур и размерностей данных.
Реализация структур данных типа дерево и типовые алгоритмы их обработки.
#Реализация структур данных типа дерево и типовые алгоритмы их обработки.
Реализация функций расстановки (хеширование) и различных методов разрешения коллизий.
#Реализация функций расстановки (хеширование) и различных методов разрешения коллизий.
Реализовать алгоритмы поиска: КМП – алгоритм.
#Реализовать алгоритмы поиска: КМП – алгоритм.
Реализация алгоритма Боуэра-Мура.
#Реализация алгоритма Боуэра-Мура.
Алгоритм Рабина-Карпа.
#Алгоритм Рабина-Карпа.
Построение графика зависимости количества операций сравнения от количества символов в массиве.
#Построение графика зависимости количества операций сравнения от количества символов в массиве.
Определение временной сложности алгоритма и сравнение с экспериментальными исследованиями.
#Определение временной сложности алгоритма и сравнение с экспериментальными исследованиями.

Текущая версия от 09:08, 21 августа 2026

О курсе

Дисциплина включает подробное освещение практики реализации структур данных и программ, решений практических задач, а также предполагает самостоятельное изучение студентами материала предмета через решение домашних практических задач. Большое внимание уделяется базовым принципам построения архитектуры ПО, практикам разработки.

Пререквизиты: Специальная предварительная подготовка для освоения дисциплины не требуется. Базовые представления об алгоритмах, принципах работы компьютера и организации выполнения программ формируются в течение первых двух недель обучения. В дальнейшем эти знания последовательно расширяются, закрепляются и контролируются в ходе лекционных и семинарских занятий.

Программа курса

Форма контроля: дифференцированный зачёт

Неделя Лекция Семинар Контроль / событие Дедлайн
1–2 Интуитивное понятие алгоритма, определение алгоритма.


Свойства алгоритмов. Виды алгоритмов.
Способы задания алгоритмов. Машины Тьюринга и Поста.
Нормальные алгорифмы Маркова.

Решение задач на Машины Тьюринга и Поста.


Нормальные алгорифмы Маркова.

тесты 10.09.2026
3–4 Основные понятия структур данных. Основные понятия структур данных.
4–6 Данные с динамической структурой. Данные с динамической структурой.
7-9 Алгоритмы поиска. Алгоритмы поиска.
10–12 Алгоритмы сортировки. Алгоритмы сортировки.
13-15 Быстрый доступ к данным. Быстрый доступ к данным.

Подробное описание тем здесь

В процессе обучения студенты выполняют 7 лабораторных работ в составе группы.
Совместная работа над заданиями способствует формированию навыков командного взаимодействия, распределения задач и ответственности, согласования отдельных этапов работы и совместной реализации программных проектов. Лабораторные работы здесь

Коммуникация

Чат курса (МАКС или другой мессенджер).

Прогресс студентов

Таблица с оценками, доступная студентам в Yandex таблице. Ссылка дается студентам на первом семинаре.

Критерии оценивания и формы контроля успеваемости

На каждом семинарском занятии студентам предлагается набор задач по изучаемой теме, которые необходимо решить в течение занятия.
Выполненные задания проверяются и оцениваются преподавателем.
Задачи, которые студент не успел выполнить на семинаре, должны быть решены самостоятельно дома.
Эти решения предназначены для самостоятельной отработки материала и преподавателем не проверяются.
На следующем семинарском занятии проводится мини-контрольная работа продолжительностью 20 минут.
В неё включается одна из задач по материалу предыдущего оцениваемого семинара.
Таким образом, контрольная работа позволяет оценить не только работу студента непосредственно на занятии, но и степень самостоятельного освоения материала.

Итоговая оценка за работу по соответствующей теме формируется на основании двух составляющих:
1. результатов выполнения задач на семинарских занятиях и
2. результатов мини-контрольных работ.

Если изучение одной темы охватывает несколько семинаров, учитываются результаты работы студента на всех занятиях, относящихся к данной теме.
В случае пропуска семинарского занятия по неуважительной причине возможность последующей отработки заданий и пересдачи оценки за данное занятие не предоставляется.
При наличии уважительной причины порядок отработки пропущенного занятия согласовывается с преподавателем индивидуально.

Формирование итоговой оценки

Итоговая оценка по дисциплине формируется на основании результатов работы студента в течение семестра и включает следующие составляющие:

  • СЗ — семинарские занятия — средняя оценка за работу на семинарах с учётом результатов мини-контрольных работ. Вес в итоговой оценке — 30 % (коэффициент 0,3).
  • КР — контрольные работы — средняя оценка за две контрольные работы, проводимые в течение семестра. Вес в итоговой оценке — 40 % (коэффициент 0,4).
  • Т — тестирование — средняя оценка за тесты, проводимые на отдельных семинарских занятиях. Вес в итоговой оценке — 10 % (коэффициент 0,1).
  • ЛР — лабораторные работы — средняя оценка за выполнение лабораторных работ в течение семестра. Вес в итоговой оценке — 20 % (коэффициент 0,2).

Итоговая оценка рассчитывается по формуле: Итоговая оценка = 0,3 × СЗ + 0,4 × КР + 0,1 × Т + 0,2 × ЛР
Таким образом, при формировании итоговой оценки учитываются как результаты текущей работы студента на семинарских занятиях, так и результаты контрольных работ, тестирования и выполнения лабораторных работ.

С целью контроля освоения обучающимися учебного материала проводится устный опрос в начале занятия по теме прошлой лекции или в конце занятия по пройденной теме. Дифференцированный зачет проводятся в устной форме. Во время проведения обучающиеся могут пользоваться программой дисциплины.

Команда курса

Руководитель и лектор курса: Дивари Ирина Николаевна

Ассистент: Карецкий Владислав Олегович

Материалы курса

Материалы – слайды лекций и задачи семинарских занятий предоставляются студентам перед каждым семинаром и располагаются на платформе LMS.

Перечень типовых вопросов для промежуточной аттестации:

  1. Моделирование абстрактных типов данных (АТД) для различных реализаций (табличное, списковое, комбинированное и т.д.).
  2. Поиск информации в различных структурах данных с использованием классических алгоритмов поиска в текстовой информации.
  3. Исследование эффективности алгоритмов сортировок для различных структур и размерностей данных.
  4. Реализация структур данных типа дерево и типовые алгоритмы их обработки.
  5. Реализация функций расстановки (хеширование) и различных методов разрешения коллизий.
  6. Реализовать алгоритмы поиска: КМП – алгоритм.
  7. Реализация алгоритма Боуэра-Мура.
  8. Алгоритм Рабина-Карпа.
  9. Построение графика зависимости количества операций сравнения от количества символов в массиве.
  10. Определение временной сложности алгоритма и сравнение с экспериментальными исследованиями.