Алгоритмы и структуры данных на Python. Базовый курс. Введение в алгоритмизацию и реализация простых алгоритмов

Содержание

Слайд 2

Регламент курса Время урока - 1,5-2 часа Подготовленные листинги с примерами

Регламент курса

Время урока - 1,5-2 часа
Подготовленные листинги с примерами кода
Практические

задания (с разбором и размещением примеров выполнения)
Видеозапись на следующий день после урока
Вопросы – в ходе урока
Большой упор на внеурочную работу (обсуждение материала с преподавателем в чате, в ЛС телеграма) – логин преподавателя @cdi999
Слайд 3

Внимание! Курс примерно на 50% отличается от материалов, которые представлены в

Внимание!

Курс примерно на 50% отличается от материалов, которые представлены в методичках,

кроме того отличается порядок уроков и названия некоторых тем.

Почему?

Преподаватель считает, что материалы нужно постоянно актуализировать, но согласование изменений с поддержкой – долгий процесс, поэтому у вас будут «старые» методичка и презентация, НО ИХ МЫ НЕ БЕРЕМ. В раздел Материалы к уроку будут выкладываться актуальные материалы для курса.

Слайд 4

Внимание! Поэтому со старой версией курса есть расхождения. НО! Ориентируемся мы

Внимание!

Поэтому со старой версией курса есть расхождения.
НО! Ориентируемся мы именно на

новую версию.
По отзывам слушателей, курс от изменений стал лучше:
Слайд 5

Практические задания В начале каждого урока − обсуждаем очередное задание. Выполненные

Практические задания

В начале каждого урока − обсуждаем очередное задание.
Выполненные задания ЖЕЛАТЕЛЬНО!

сдавать к началу очередного урока, а лучше раньше (идеально приступать к выполнению в ближайшее время после урока).
Хотя сейчас дэдлайн существенно увеличен и составляет не 3, а 7 дней, преподаватель настоятельно рекомендует сдавать именно в три дня, а не через неделю, месяц, год. Делать нужно по «свежим следам», оперативно, а не когда курс завершился.
Текст каждого задания и пример его выполнения задания будет размещаться в разделе «Материалы» соответствующего урока.
Слайд 6

Практические задания Сдача задания ТОЛЬКО в виде ссылки на pull-request! Эту

Практические задания

Сдача задания ТОЛЬКО в виде ссылки на pull-request! Эту ссылку

вы прикладываете к форме сдачи ДЗ. Подчеркиваю – ссылка на ПР, а не на ваш репозиторий!
Задания, сданные как-то по другому (в виде архива, файлов, скриншотов, ссылок на репозитории и т.д.) получают оценку не выше Удовлетворительно!!!!! Понимаю недовольство некоторых слушателей курса, но видимо другого пути убедить в необходимости освоения Гита нет!
Слайд 7

Практические задания Почему такая строгость с форматом сдачи ДЗ: Разработчик в

Практические задания

Почему такая строгость с форматом сдачи ДЗ:
Разработчик в современных реалиях

совершенно обязан уметь пользоваться системами контроля версий и сервисами хостинга IT-проектов.
Можно сколько угодно давать себе послабления и не изучать эти инструменты, но рано или поздно они понадобятся. Поэтому лучше их освоить прямо сейчас.
По идее эти инструменты вы должны были освоить на курсе Оcновы Python, а если не освоили, значит где-то поленились. Придется срочно осваивать сейчас.
Слайд 8

Практические задания Почему такая строгость с форматом сдачи ДЗ: Убедительная просьба,

Практические задания

Почему такая строгость с форматом сдачи ДЗ:
Убедительная просьба, не нужно

задавать преподавателю вопросы, как создать pull-request, как прикрепить ссылку и т.д. Эти вопросы не имеют отношения к курсу Алгоритмов. Это вспомогательные темы, которыми вы должны уже владеть, хотя бы на базовом уровне. Эти темы в идеале должны быть освоены на курсе Основ Python.
Если же вы не знаете как создавать репозитории, ветки и ПР, вашему вниманию курс: Git. Базовый курс (https://geekbrains.ru/courses/1117)
Слайд 9

Как создать ссылку на ПР Если же вы все-таки испытываете сложности

Как создать ссылку на ПР
Если же вы все-таки испытываете сложности с

созданием ПР, небольшая подсказка:

Сделать форк репозитория преподавателя - https://github.com/DmitryChitalov/python_algos_gb
Создать локальную копию репозитория у себя на машине.
Создавать под каждый урок локальную ветку, например, lesson_1.
Из этой локальной ветки коммитите и пушите изменения в такую же, но удаленную ветку сделанного форка.
Переходим на сайт github
Из каждой удаленной ветки делаете ПР в мой (А НЕ В СВОЙ) репозиторий.
Получаете требуемую ссылку на ПР.

Слайд 10

Возможны ли пересдачи и cдачи позднее регламента? Преподаватель всегда готов идти

Возможны ли пересдачи и cдачи позднее регламента?

Преподаватель всегда готов идти навстречу.

НО! Тема очень болезненная, потому что слушатели упорно не хотят услышать как нужно пересдавать. И шлют сообщения вроде «Я хочу пересдать задание за пятый урок»
Как преподаватель должен узнать за какой курс, от какой даты его старт, за какой урок, от какого слушателя??
ПОЭТОМУ ПРОШУ ОБРАТИТЬ ВНИМАНИЕ НА ИНСТРУКЦИЮ ПО ПЕРЕСДАЧАМ И СДАЧАМ С ОПОЗДАНИЕМ
Слайд 11

Возможны ли пересдачи и cдачи позднее регламента? 1. Сдача позднее установленного

Возможны ли пересдачи и cдачи позднее регламента?

1. Сдача позднее установленного дедлайна!
Ничего

страшного, всякое бывает, заболели (не дай бог), уехали. Пишем сразу в поддержку (А НЕ МНЕ), что вы хотите пересдать с указанием названия курса, даты его старта, номера урока, ваших ФИО. Преподавателю писать не нужно, он не против поздних сдач.
Слайд 12

Возможны ли пересдачи и cдачи позднее регламента? 2. Пересдача для повышения

Возможны ли пересдачи и cдачи позднее регламента?

2. Пересдача для повышения оценки!

Например, вы сдали заглушку и получили Удовл. (кстати, заглушки – формальные сдачи, принимаются и за них ставятся тройки) или вас просто не устраивает оценка. Вы пишете СРАЗУ! Преподавателю в телеграм (@cdi999) и говорите название курса, дату его старта, номер урока, ваши ФИО! Пересдавать конечно требуется после доработок!
Слайд 13

Возможны ли пересдачи и cдачи позднее регламента? Теперь самое главное по

Возможны ли пересдачи и cдачи позднее регламента?

Теперь самое главное по досдачам

и пересдачам! Как они делаются, написано в презентации и рассказано на первом уроке! Если обращение о досдаче/пересдаче подается с нарушением указанных выше требований, ОНО БУДЕТ ОСТАВЛЕНО БЕЗ ОТВЕТА!
Поэтому просьба в этом случае не писать негодования в поддержку и отзывы, потому как пересдачи и досдачи в Гикбреинс не являются обязанностью преподавателя, а делаются исключительно по его желанию. Я не против пересдач, но прошу соблюдать требования по их выполнению.
Слайд 14

Возможны ли пересдачи и cдачи позднее регламента? Почему так строго? Потому

Возможны ли пересдачи и cдачи позднее регламента?

Почему так строго?
Потому что группы

большие и преподавателю приходится тратить рабочее время на выяснения с какого курса слушатель, от какой даты и т.д.
Прошу отнестись с пониманием и экономить время друг друга.
Слайд 15

Возможны ли пересдачи и cдачи позднее регламента? ПОЭТОМУ, УВАЖАЕМЫЕ СЛУШАТЕЛИ КУРСА,

Возможны ли пересдачи и cдачи позднее регламента?

ПОЭТОМУ, УВАЖАЕМЫЕ СЛУШАТЕЛИ КУРСА, ПРОШУ

ВАС ЕЩЕ РАЗ ИЗУЧИТЬ ПРЕЗЕНТАЦИЮ, ЧТО-ТО ЗАПИСАТЬ И НЕ ЗАДАВАТЬ ПРЕПОДАВАТЕЛЮ ВОПРОСЫ, КОТОРЫЕ УЖЕ БЫЛИ РАЗОБРАНЫ.
Пример сообщения: «Я Иван Иванов, с курса Алгоритмов (от 11 января), хочу пересдать задание к уроку 1, прикладываю ссылку на ПР с доработкой»
Пример сообщения, на которое не будет ответа: «Я с курса Алгоритмов, хочу пересдать задание к уроку 1, прикладываю ссылку на ПР с доработкой»
Слайд 16

План обновленного курса: Урок 1. Введение в алгоритмы и структуры данных

План обновленного курса:

Урок 1. Введение в алгоритмы и структуры данных на

Python
Урок 2. Рекурсия
Урок 3. Хеш-функции
Урок 4. Профилирование времени работы алгоритмов
Урок 5. Специализированные коллекции
Урок 6. Профилирование памяти
Урок 7. Алгоритмы сортировки
Урок 8. Бинарные деревья
Слайд 17

Почему нужно проходить этот курс: Правильно составленный алгоритм позволяет ускорить работу

Почему нужно проходить этот курс:

Правильно составленный алгоритм позволяет ускорить работу кода.
Применение

алгоритмов при решении реальных задач повышает статус разработчика.
Алгоритмы – это структурные блоки систем искусственного интеллекта, машинного обучения и data science.
Слайд 18

Цели курса Научиться сравнивать различные варианты решения задач по ключевым критериям

Цели курса

Научиться сравнивать различные варианты решения задач по ключевым критериям и

выбирать наиболее эффективный в текущей ситуации вариант.
Развитие алгоритмического мышления, т.е. научиться представлять весь ход решения задачи от ее постановки до получения итогового результата.
Научиться перекладывать сформулированный алгоритм на язык реализации.
Освоить фундаментальные алгоритмы, не зависящие от языка реализации, например, решето Эратосфена, алгоритмы сортировки и т.д.
Изучить возможностей применения приемов алгоритмизации для реальных задач.
Слайд 19

Напутствие! Уважаемые студенты, просьба с пониманием отнестись к оценкам, мы ведь

Напутствие!

Уважаемые студенты, просьба с пониманием отнестись к оценкам, мы ведь не

в школе, главное – знания.
Этот курс обязательно повысит ваш опыт и принесет новые знания!
Но если вы не согласны с оценкой и комментариями по коду, сразу пишите преподавателю в телеграм, вместе мы все решим. Преподаватель тоже может что-то не заметить или сделать ошибку.
Слайд 20

Алгоритмы и структуры данных на Python Урок 1 Введение в алгоритмы и структуры данных на Python

Алгоритмы и структуры данных на Python

Урок 1

Введение в алгоритмы и структуры

данных на Python
Слайд 21

Рост времени Классические варианты функций

Рост времени

Классические варианты функций

Слайд 22

Графики функций

Графики функций

Слайд 23

Классические примеры

Классические примеры

Слайд 24

Как узнать сложность своего алгоритма через график

Как узнать сложность своего
алгоритма через график

Слайд 25

Сложность базовых операций и функций заранее известна

Сложность базовых операций и функций заранее известна

Слайд 26

Слайд 27

Слайд 28

Немного о фундаментальных структурах Стек

Немного о фундаментальных структурах

Стек

Слайд 29

Слайд 30

Очередь Дек

Очередь

Дек