We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

  • A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Algorithms and Data Structures

2022/2023
Academic Year
RUS
Instruction in Russian
3
ECTS credits
Course type:
Compulsory course
When:
1 year, 4 module

Instructor


Данилин Александр Николаевич

Программа дисциплины

Аннотация

Курс ориентирован на ознакомление слушателей с алгоритмами и структрурами данных на основе языка программирования Python. В курсе объясняются основные понятия, такие как анализ сложности алгоритмов, время выполнения и память, а также приводятся примеры реализации различных алгоритмов с использованием языка программирования Python. Курс включает в себя изучение теории и реализацию алгоритмов и структур данных на языке Python, а также выполнение практических заданий для закрепления теоретического материала.
Цель освоения дисциплины

Цель освоения дисциплины

  • 1. Познакомиться с основными алгоритмами и структурами данных, используемыми в программировании. 2. Освоить принципы работы с языком SQL и научиться построению базовых запросов. 3. Получить навыки работы с реальными задачами, используя изученные алгоритмы и структуры данных. 4. Повысить эффективность работы программ через оптимизацию алгоритмов и выбор наиболее подходящих структур данных. 5. Понимать, как работает код других программистов, улучшать их алгоритмы и структуры данных. 6. Повышать свою квалификацию для успешного трудоустройства в качестве программиста.
Планируемые результаты обучения

Планируемые результаты обучения

  • Понимание основных алгоритмических структур данных: массивы, списки, очереди, стеки, хэши, деревья, графы;
  • Умение работать с различными файлами средствами Python: открывать, создавать, читать, записывать
  • Уметь использовать циклы для решения различных задач обработки данных
  • Уметь оценивать временную и пространственную сложность, выбирать подходящий алгоритм для решения конкретной задачи, оптимизировать код
  • Уметь писать алгоритмы сортировок, использовать встроенные алгоритмы языка программирования Python
  • Уметь применять алгоритмы на графах на практике, решать задачи, оперировать основными терминами
  • Уметь использовать жадный алгоритм и динамическое программирование на практике
  • Определять что такое регрессия, классификация, кластеризация, нейронные сети. Уметь работать с данными. Использовать библиотеки для машинного обучения.
  • Уметь писать SQL запросы для баз данных,
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Базовые структуры данных в Python: списки, словари, множества, кортежи, строки.
  • Работа с файлами и стандартными потоками ввода/вывода в Python
  • Циклы, условия, функции и рекурсия.
  • Алгоритмическая сложность и анализ алгоритмов
  • Сортировка и поиск элементов в списке
  • Деревья, кучи, графы и алгоритмы на графах
  • Жадные алгоритмы и динамическое программирование
  • Алгоритмы машинного обучения и обработки данных
  • Работа с базами данных. Основы SQL запросов.
Элементы контроля

Элементы контроля

  • неблокирующий Работа на семинаре
    На семинарских занятиях будут формироваться задачи для решения обучающимися с объяснением хода решения.
  • неблокирующий Расчетное задание по темам 1 -3
    Будет дано ряд задач для практического усвоения материала
  • неблокирующий Расчетные задания по темам 4 -7
  • неблокирующий Расчетное задание по теме 8
  • неблокирующий Расчетное задание по теме 9
Промежуточная аттестация

Промежуточная аттестация

  • 2022/2023 учебный год 4 модуль
    0.1 * Работа на семинаре + 0.3 * Расчетное задание по темам 1 -3 + 0.1 * Расчетное задание по теме 9 + 0.2 * Расчетное задание по теме 8 + 0.3 * Расчетные задания по темам 4 -7
Список литературы

Список литературы

Рекомендуемая основная литература

  • Алгоритмы : вводный курс, Кормен, Т. Х., 2016
  • Алгоритмы и структуры данных, Вирт, Н., 2001
  • БАЗАРОВ В.В., & АБРАМОВ Е.Г. (2008). Динамическое программирование. Креативная Экономика, (2). Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsclk&AN=edsclk.16636769
  • Бейдер Д. - Чистый Python. Тонкости программирования для профи - 978-5-4461-0803-9 - Санкт-Петербург: Питер - 2021 - 358161 - https://ibooks.ru/bookshelf/358161/reading - iBOOKS
  • Голубенко, Д. Алгоритмы и модели вычисления : руководство / Д. Голубенко, А. Крошин, Э. Горбунов. — Москва : ДМК Пресс, 2019. — 240 с. — ISBN 978-5-97060-844-9. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/140582 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Дунаев В. - Базы данных. Язык SQL - 978-5-94157-823-8 - Санкт-Петербург: БХВ-Петербург - 2006 - 333675 - https://ibooks.ru/bookshelf/333675/reading - iBOOKS
  • Дунаев В. - Базы данных. Язык SQL для студента, 2 изд. - 978-5-9775-0113-2 - Санкт-Петербург: БХВ-Петербург - 2007 - 18460 - https://ibooks.ru/bookshelf/18460/reading - iBOOKS
  • Изучаем Python, Лутц, М., 2011
  • Ляшева, С. А. Алгоритмы и анализ сложности : учебное пособие / С. А. Ляшева, М. П. Шлеймович. — Казань : КНИТУ-КАИ, 2020. — 116 с. — ISBN 978-5-7579-2491-5. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/264884 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Протодьяконов А.В., Пылов П.А., Садовников В.Е. - Алгоритмы Data Science и их практическая реализация на Python - Инфра-Инженерия - 2022 - ISBN: 978-5-9729-1006-9 - Текст электронный // ЭБС ZNANIUM - URL: https://znanium.com/catalog/document?id=417222
  • Прохоренок Н.А., Дронов В.А. - Python 3. Самое необходимое - 978-5-9775-3631-8 - Санкт-Петербург: БХВ-Петербург - 2016 - 351436 - https://ibooks.ru/bookshelf/351436/reading - iBOOKS

Рекомендуемая дополнительная литература

  • Lutz, M. (2006). Programming Python (Vol. 3rd ed). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=415084
  • Lutz, M. (2011). Programming Python : Powerful Object-Oriented Programming (Vol. 4th ed). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=415412
  • Severance, C. (2016). Python for Everybody : Exploring Data Using Python 3. Place of publication not identified: Severance, Charles. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsotl&AN=edsotl.OTLid0000336
  • Severina, N. S. Numerical methods and algoritms. Algebra and approximation = Численные методы и алгоритмы. Алгебра и аппроксимация : учебное пособие / N. S. Severina, Y. V. Slastushenskiy. — Москва : МАИ, 2022. — 150 с. — ISBN 978-5-4316-0876-6. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/256229 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Адаптивный выбор вариантов : рекуррентные алгоритмы, Назин, А. В., 1986
  • Алгоритмы дискретной математики : учебное пособие, Захарова, Л. Е., 2002
  • Драгилева, И. П. Автоматы и алгоритмы : методические рекомендации / И. П. Драгилева, А. С. Митин. — Москва : РТУ МИРЭА, 2022. — 21 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/265646 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Легкий способ выучить Python 3 еще глубже, Шоу, З. А., 2020
  • Легкий способ выучить Python 3, Шоу, З. А., 2019
  • Мартишин С.А., Симонов В.Л., Храпченко М.В. - Базы данных. Практическое применение СУБД SQL- и NoSOL-типа для применения проектирования информационных систем - Издательский Дом ФОРУМ - 2023 - ISBN: 978-5-8199-0785-6 - Текст электронный // ЭБС ZNANIUM - URL: https://znanium.com/catalog/document?id=419783
  • Наместников, А. М. Базы данных. Практический курс : учебное пособие : в 2 частях / А. М. Наместников. — Ульяновск : УлГТУ, 2017 — Часть 1 : Объектно-реляционные базы данных на примере PostgreSQL 9.5 — 2017. — 113 с. — ISBN 978-5-9795-1743-8. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/165100 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Пантелеев, Е. Р. Алгоритмы и структуры данных : учебное пособие / Е. Р. Пантелеев, А. Л. Алыкова. — Иваново : ИГЭУ, 2018. — 142 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/154576 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Трофимов, В. В.  Алгоритмизация и программирование : учебник для вузов / В. В. Трофимов, Т. А. Павловская ; под редакцией В. В. Трофимова. — Москва : Издательство Юрайт, 2023. — 137 с. — (Высшее образование). — ISBN 978-5-534-07834-3. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/513269 (дата обращения: 28.08.2023).
  • Чертов, О. Г. Динамическое моделирование в лесном хозяйстве : монография / О. Г. Чертов. — Санкт-Петербург : СПбГЛТУ, 2011. — 64 с. — ISBN 978-5-9239-0380-5. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/46054 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Авторы

  • Будько Виктория Александровна
  • Нефедов Константин Сергеевич
  • Рымашевская Татьяна Александровна
  • Данилин Александр Николаевич