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

Материал из Public ATP Wiki
Перейти к навигации Перейти к поиску
 
(не показано 20 промежуточных версий этого же участника)
Строка 4: Строка 4:


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


== Программа курса ==
== Программа курса ==
'''Форма контроля:''' дифференцированный зачёт
{| 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–11
|7-9
|'''Алгоритмы поиска.''' Задачи поиска и кодирования
|Алгоритмы поиска.
<br>(сжатия) данных. Кодовые деревья, оптимальные префиксные коды,
|Алгоритмы поиска.
<br>исчерпывающий поиск. Линейный поиск. Поиск делением пополам
<br>(двоичный поиск). Поиск в таблице. Прямой поиск строки. Поиск
<br>в строке (алгоритмы Кнута, Мориса и Прата). Алгоритмы Боуэра-Мура.
<br>Алгоритмы Рабина-Карпа.
|
|
|
|
|
|-
|-
|nn
|10–12
|'''Алгоритмы сортировки.''' Анализ сложности и эффективности алгоритмов
|Алгоритмы сортировки.  
<br>поиска и сортировки. Оценка временной и пространственной сложности алгоритмов
|Алгоритмы сортировки.  
<br>на основе асимптотических соотношений (О –и Ω нотации). Порядковые статистик.
<br>Сортировка массивов: прямым включением, прямым выбором и прямым обменом.
<br>Улучшенные методы сортировки: включениями с уменьшающимися расстояниями,
<br>с помощью дерева, разделением. Нахождение медианы. Сравнение методов сортировки
<br>массивов. Файлы: организация и обработка. Сортировка файлов: прямое слияние,
<br>естественное слияние, сбалансированное многопутевое слияние, многофазная сортировка,
<br>распределение начальных серий.
|
|
|
|
|
|-
|-
|12–15
|13-15
|'''Быстрый доступ к данным.''' Хеширование данных.  
|Быстрый доступ к данным.
<br>Способы вычисления хеш-функций. Разрешение коллизий. Линейное,
|Быстрый доступ к данным.
<br>квадратичное опробование. Метод цепочек, двойное хеширование.
<br>Оценка качества хеш-функций. Инвертированные индексы. Битовые карты.
|
|
|
|
|
|}
|}
'''Подробное описание тем''' [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 здесь]


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


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


== Прогресс студентов ==
== Прогресс студентов ==
Таблица с оценками, доступная студентам в Yandex таблице.  Ссылка дается студентам на первом семинаре.
== Критерии оценивания и формы контроля успеваемости ==
На каждом семинарском занятии студентам предлагается набор задач по изучаемой теме, которые необходимо решить в течение занятия.
<br>Выполненные задания проверяются и оцениваются преподавателем.
<br>Задачи, которые студент не успел выполнить на семинаре, должны быть решены самостоятельно дома.
<br>Эти решения предназначены для самостоятельной отработки материала и преподавателем не проверяются.
<br>На следующем семинарском занятии проводится мини-контрольная работа продолжительностью 20 минут.
<br>В неё включается одна из задач по материалу предыдущего оцениваемого семинара.
<br>Таким образом, контрольная работа позволяет оценить не только работу студента непосредственно на занятии, но и степень самостоятельного освоения материала.
'''Итоговая оценка за работу''' по соответствующей теме формируется на основании двух составляющих:
<br>1. результатов выполнения задач на семинарских занятиях и
<br>2. результатов мини-контрольных работ.
Если изучение одной темы охватывает несколько семинаров, учитываются результаты работы студента на всех занятиях, относящихся к данной теме.
<br>В случае пропуска семинарского занятия по неуважительной причине возможность последующей отработки заданий и пересдачи оценки за данное занятие не предоставляется.
<br>При наличии уважительной причины порядок отработки пропущенного занятия согласовывается с преподавателем индивидуально.
'''Формирование итоговой оценки'''


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


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


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


= Материалы курса =
= Материалы курса =
Материалы – слайды лекций и задачи семинарских занятий предоставляются студентам перед каждым семинаром и располагаются на платформе 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. Определение временной сложности алгоритма и сравнение с экспериментальными исследованиями.