Алгоритмы используются практически во всех областях computer science. В ходе обучения слушатели познакомятся:
— С базовыми алгоритмическими методами. Будут рассмотрены не только теоретические основы, но и тонкости реализации на разных языках программирования. Все изученные алгоритмы слушателям предстоит запрограммировать для лучшего понимания деталей.
— С устройством структур данных. Слушатели узнают, как наиболее часто использующиеся на практике структуры данных реализованы на разных языках программирования, а также научатся выбирать подходящую при решении вычислительной задачи.
— С важными понятиями и результатами в теоретической информатике. Этот раздел будет полезен не только для теоретиков, ведь абстрактные конструкции и математические результаты могут натолкнуть на решение вполне практической задачи.
Программа будет полезна всем, кто интересуется computer science и хочет понимать принципы реализации алгоритмов, а не пользоваться готовыми, как черным ящиком. Также программа поможет подготовиться к собеседованию в IT-компанию и поступлению в магистратуру технических специальностей.
Для успешного прохождения программы необходимы знакомство с одним из распространённых языков программирования (C++, Java, Python, Octave, Haskell) и базовые знания математики: доказательство от противного, доказательство по индукции, логарифм, экспонента.
Для поступления на программу необходимо сдать вступительный экзамен, продемонстрировав, что вы имеете базовые навыки программирования и помните математику уровня первого курса технических специальностей.
Перейти к экзаменуКурс просто отличный. Две части, Александра Шеня и Александра Куликова, гармонично дополняют друг друга (и даже один раз пересекаются, когда оба лектора рассказывают в два голоса одну тему). Теоретический курс суперски прокачал мозги, а в практическом смысле — дал знания, как оценить сложность реализации придуманного алгоритма (время, память, количество логических элементов для схем), я начал НА САМОМ ДЕЛЕ понимать, что такое эквивалентность классов NP и P, что означает разрешимость (или нет) задачи, почему (и даже КАК) всегда можно написать квайн (программу, печатающую саму себя) и их "сонеты" для цепочек разных языков программирования. И далеко не только это. Практический курс разложил по полочкам мои прежние обрывочные сведения об алгоритмах. Теперь я могу осознанно подходить к их выбору, исходя из имеющейся задачи, а не вслепую пробовать один за другим. Благодаря тому, что многие из них я реализовал сам с нуля, я имею детальное представление об их внутреннем устройстве, а это сильно помогает правильно использовать готовые библиотечные реализации. Отдельно хочу сказать про Code Review. Советы и рекомендации, которые дают проверяющие, реально на вес золота. Это те знания, получить которые иначе можно только на собственном (зачастую отрицательном) опыте. Здесь же на примере твоего собственного кода проверяющий рассказывает, к каким нежелательным последствиям и почему может привести применённое тобою решение, и как можно исправить код, чтобы последствия были минимальны. А ещё более бесценны советы, как можно сделать код проще, понятнее, или более поддающимся повторному использованию. Спасибо
Андрей Белецкий
Вообще, узнал о программе случайно. Кто-то сбросил ссылку на экзамен в беседе в телеграме. Но до конца курса ни разу не пожалел, что попал сюда. Занятия немного переделаны и дополнены. Код ревью помогает задуматься о качестве кода, который ты пишешь. Преподаватели очень быстро отвечают как в комментариях, так и в созданных каналах в слаке и ютреке. Курсы позволили мне, по сути, освоить то, что мои друзья учили на технических специальностях. Спасибо большое команде курса и организатором за возможность получить эти знания!
Дмитрий Минченко
Теоретическая информатика — большое удовольствие от решения задач. Алгоритмы — четкая и ясная база с практическими задачами для закрепления.
Валерий Байбурин
Два направления программы, теоретическая информатика и алгоритмы, пересекаются, дополняют друг друга и формируют целостную картину. Главные, на мой взгляд, достоинства программы — структура и подача материала по курсу алгоритмов и задачи на код ревью. Есть ощущение, что после этих курсов я «подрос», многое из программы уже пригодилось на работе. Большое спасибо создателям!
Андрей Рыжиков