[geekbrains]Алгоритмы и структуры данных на Python. Базовый курс [Алексей Петренко,Ирина Гречихина]

195

Эффективные решения вычислительных задач
Студенты углубят базу программирования на языке Python и «прокачают» алгоритмическое мышление. Курс учит понимать фундаментальные алгоритмы и использовать их для решения практических задач. Знакомит с методами анализа данных на Python и всеми необходимыми библиотеками.
Чему Вы научитесь

  • Излагать идеи в виде блок-схем, читать готовые схемы и реализовывать программы на их основе;
  • Закрепить навыки реализации простейших алгоритмов с ветвлениями, циклами, а также рекурсивных алгоритмов;
  • Познакомиться с классическими структурами данных, которые применяются в программировании, и уметь использовать их реализации на языке Python;
  • Освоить модуль Collections и научиться работать с популярными структурами данных модуля;
  • Освоить классические алгоритмы, которые лежат в основе современных проектов любой степени сложности;
  • Узнать об алгоритмической сложности алгоритмов и научиться оценивать сложность вашего алгоритма при помощи встроенных в Python инструментов;
  • Познакомиться с внутренним устройством интерпретатора Python и понять структуру объектов внутри языка;
  • Научиться работать с деревьями и хеш-таблицами. Писать алгоритмы для работы с ними.

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

  • Урок 1. Введение в алгоритмизацию и реализация простых алгоритмов на Python
    Введение в алгоритмизацию. Решение практических задач.
  • Урок 2. Циклы. Рекурсия. Функции.
    Циклы – многократное повторение однотипных действий. Рекурсивный перебор. Алгоритм Евклида. Решето Эратосфена – алгоритм определения простых чисел. Использование функций.
  • Урок 3. Массивы. Кортежи. Множества. Списки.
    Понятие массива, кортежа, множества и списков. Обработка последовательностей, одномерных и двумерных массивов. Работа с ассоциативными массивами (таблицами данных). Двоичный (бинарный) поиск элемента в массиве.
  • Урок 4. Эмпирическая оценка алгоритмов на Python
    Измерения времени работы с использованием timeit. Профайлер.
  • Урок 5. Коллекции. Список. Очередь. Словарь.
    Понятие коллекции. Основные типы коллекции. Стандартные методы работы с коллекциями. Примеры применения коллекций для решения практических задач.
  • Урок 6. Работа с динамической памятью
    Представление в памяти коллекций. Управление памятью.
  • Урок 7. Алгоритмы сортировки
    Сортировка пузырьком. Быстрая сортировка (Quick sort). Сортировка Шелла. Сортировка сложных структур с использованием ключа. Обратная сортировка. Сортировка с использованием функции attrgetter.
  • Урок 8. Деревья. Хэш-функция
    Двоичные деревья поиска. Проход по дереву. Хэш-функция.