• 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). — Режим доступа: для авториз. пользователей.