Эффективные решения вычислительных задач Студенты углубят базу программирования на языке Python и «прокачают» алгоритмическое мышление. Курс учит понимать фундаментальные алгоритмы и использовать их для решения практических задач. Знакомит с методами анализа данных на Python и всеми необходимыми библиотеками. Чему Вы научитесь
Излагать идеи в виде блок-схем, читать готовые схемы и реализовывать программы на их основе;
Закрепить навыки реализации простейших алгоритмов с ветвлениями, циклами, а также рекурсивных алгоритмов;
Познакомиться с классическими структурами данных, которые применяются в программировании, и уметь использовать их реализации на языке Python;
Освоить модуль Collections и научиться работать с популярными структурами данных модуля;
Освоить классические алгоритмы, которые лежат в основе современных проектов любой степени сложности;
Узнать об алгоритмической сложности алгоритмов и научиться оценивать сложность вашего алгоритма при помощи встроенных в Python инструментов;
Познакомиться с внутренним устройством интерпретатора Python и понять структуру объектов внутри языка;
Научиться работать с деревьями и хеш-таблицами. Писать алгоритмы для работы с ними.
Программа курса:
Урок 1. Введение в алгоритмизацию и реализация простых алгоритмов на Python Введение в алгоритмизацию. Решение практических задач.
Урок 3. Массивы. Кортежи. Множества. Списки. Понятие массива, кортежа, множества и списков. Обработка последовательностей, одномерных и двумерных массивов. Работа с ассоциативными массивами (таблицами данных). Двоичный (бинарный) поиск элемента в массиве.
Урок 4. Эмпирическая оценка алгоритмов на Python Измерения времени работы с использованием timeit. Профайлер.
Урок 5. Коллекции. Список. Очередь. Словарь. Понятие коллекции. Основные типы коллекции. Стандартные методы работы с коллекциями. Примеры применения коллекций для решения практических задач.
Урок 6. Работа с динамической памятью Представление в памяти коллекций. Управление памятью.
Урок 7. Алгоритмы сортировки Сортировка пузырьком. Быстрая сортировка (Quick sort). Сортировка Шелла. Сортировка сложных структур с использованием ключа. Обратная сортировка. Сортировка с использованием функции attrgetter.
Отзывы
(Читать все отзывы ->)