Программирование и создание ИТ-продуктов Писать программный код

Алгоритмы как фундамент программирования

ОАНО ДПО «Выштех»
268,00 часов длительность
Онлайн формат
Базовый уровень
1 поток (закрыт) 21.10.2021-03.03.2022
2 поток (закрыт) 25.11.2021-31.03.2022

Описание

Владение стандартными алгоритмами и структурами данных позволяет быстро создавать прототипы ИТ-продуктов, выпускать на рынок.

Для успешного освоения программы обучающимся необходимо владеть базовыми компетенциями цифровой грамотности, в том числе навыками владения ПК на уровне среднего или продвинутого пользователя, базовыми знаниями в области любого языка программирования.

В процессе обучения по программе обучающимся рекомендуется прослушать и конспектировать все видеолекции, выполнять по каждой теме практические задания с автоматизированной проверкой и проработать самостоятельно дополнительные материалы, выполнить тесты для самоконтроля.

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


Курс рассчитан на 3 месяца и содержит:

  • объяснение простым и доступным языком алгоритмов и структур данных, владение которыми необходимо большинству разработчиков 
  • 100 алгоритмических задач, которые решит каждый из вас, и мы будем поддерживать вас до тех пор, пока вы не решите их все
  • разборы каждой из этих задач (отдельно разбор идеи решения и кода)
Часов в программе
16,00 часов
лекции
183,00 часа
практика
56,00 часов
самостоятельная
7,00 часов
промежуточная аттестация
3 часа
входная диагностика
3 часа
итоговая аттестация
268,00 часов
всего
Цель программы
Программа "Алгоритмы как фундамент программирования" направлена на овладение слушателями навыками работы со стандартными алгоритмами и структурами данных, развитие  и применение навыков  для решения типовых задач разработки ПО, а также навыками применения программных средств системного, прикладного и специального назначения, инструментальных средств, языков и систем программирования для решения профессиональных задач.

После прохождения курса, обучающийся будет уметь писать надёжный программный код, требующий минимального времени на отладку, также будет уметь извлекать новые знания из программного кода, написанного другими людьми, и вносить в него минимальные изменения, достаточные решения прикладных задач разработки ПО.
Актуальность
Информационные технологии занимают все более значимую роль в человеческом обществе. Они проникли во все сферы деятельности. Для обслуживания общественных потребностей в автоматизации труда, хранения данных, связи и др.
- Актуальное количество вакансий - более 20 000 вакансии в сфере программирования доступны сегодня и спрос постоянно растет (по данным портала hh.ru в 2021 году).
- Там, где необходимо оптимизировать рабочий процесс, облегчив работу человека, повысив при этом эффективность бизнеса, - востребованы программисты. Разработка программного обеспечения - одна из немногих действительно глобальных сфер деятельности. Благодаря международным стандартам, легкости и быстроте распространения новых продуктов и технологий (вершиной которых стал Интернет) программирование оставляет далеко позади другие виды производства.
Входная диагностика 3 часа
Тест
Итоговая аттестация 3 часа
Задача на программирование

Компетенции

Профессиональные


Написание программного кода
Знать:

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

Уметь:

Умение писать надёжный программный код, требующий минимального времени на отладку.
Умение находить узкие места в ваших программах и оптимизировать их.

Владеть:

Навыки реализации:
- алгоритма двоичного поиска
- двусвязных списков
- дека
- алгоритма слияния
- алгоритма быстрой сортировки
- алгоритма нахождения К-ой порядковой статистики
- двоичного дерева поиска
- операция с декартовом деревом

Владение стандартными библиотеками языков программирования
Знать:

Знание примитивов стандартной библиотеки своего языка программирования: Java, C++. Python

Уметь:

Умение уместно применять применять примитивы стандартных библиотек для повышения качества и скорости решения прикладных задач разработки ПО

Владеть:

Навык применения стандартных библиотек Java, C++. Python

Владение стандартными алгоритмами и структурами данных
Знать:

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

Уметь:

Умение обоснованно выбирать наиболее подходящие стандартные алгоритмы и структуры данных для решения прикладных задач разработки ПО

Владеть:

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

Чтение чужого программного кода
Знать:

Верхнеуровневое понимание кода, написанного на Python, C++, Java

Уметь:

Умение извлекать новые знания из программного кода, написанного другими людьми, и вносить в него минимальные изменения, достаточные решения прикладных задач разработки ПО

Владеть:

Навык чтения кода и понимания структуры проекта на Python, C++, Java

Требования

Уметь понимать код на языке С++

Образование
  • Высшее образование
  • Среднее профессиональное образование
Квалификация
Не ниже 3
Предварительное освоение иных дисциплин/курсов /модулей
Для успешного прохождения программы слушатели должны обладать: навыками владения ПК на уровне среднего или продвинутого пользователя; первичными знаниями и умениями в области алгоритмизации и программирования (в рамках школьной программы); первичными знаниями об операционных системах Unix и работе в командной строке; навыками работы с текстами на английском языке (перевод текста со словарем).
Иные требования и рекомендации для обучения по программе

Уметь понимать код на языке С++

Модули

свернуть
161,00ч
Модуль 1 Базовый модуль
Базовый модуль курса прививает навыки, необходимые любому программисту для решения повседневных задач разработки ПО: умение оценивать асимптотику времени работы алгоритмов и качественно реализовывать их в коде. Это достигается за счёт сочетания теории и большого количества практики. Теория преподносится понятным языком так, чтобы студенты в первую очередь поняли суть, а уже впоследствии смогли разобраться в деталях, решая практические задачи. По итогам прохождения базового модуля студенты узнают устройство, самостоятельно реализуют и смогут применять на практике алгоритмы линейного и двоичного поиска, метод двух указателей, связные списки, стек и очередь, двоичные деревья поиска, алгоритмы "быстрой сортировки", сортировки слияниями и производные от них алгоритмы разделения и нахождения порядковой статистики.
101,00ч
Модуль 2 Профильный модуль
Профильный модуль направлен на усиленное развитие практических навыков программирования. В нём рассматриваются такие темы как декартовы деревья (частный случай сбалансированных деревьев поиска) и хеш-таблицы. Так же, как и в базовом модуле, студенты усваивают внутреннее устройство этих структур данных, самостоятельно их реализуют и получают навыки их применения для решения практических задач. В конце профильного модуля идёт набор финальных задач, который позволяет комплексно применить на практике все знания и навыки, полученные на курсе. В каждой задаче этого блока нужно применять знания и навыки из нескольких модулей курса, что способствует закреплению всего пройденного материала.
161,00ч
Модуль 1 Базовый модуль
Базовый модуль курса прививает навыки, необходимые любому программисту для решения повседневных задач разработки ПО: умение оценивать асимптотику времени работы алгоритмов и качественно реализовывать их в коде. Это достигается за счёт сочетания теории и большого количества практики. Теория преподносится понятным языком так, чтобы студенты в первую очередь поняли суть, а уже впоследствии смогли разобраться в деталях, решая практические задачи. По итогам прохождения базового модуля студенты узнают устройство, самостоятельно реализуют и смогут применять на практике алгоритмы линейного и двоичного поиска, метод двух указателей, связные списки, стек и очередь, двоичные деревья поиска, алгоритмы "быстрой сортировки", сортировки слияниями и производные от них алгоритмы разделения и нахождения порядковой статистики.
101,00ч
Модуль 2 Профильный модуль
Профильный модуль направлен на усиленное развитие практических навыков программирования. В нём рассматриваются такие темы как декартовы деревья (частный случай сбалансированных деревьев поиска) и хеш-таблицы. Так же, как и в базовом модуле, студенты усваивают внутреннее устройство этих структур данных, самостоятельно их реализуют и получают навыки их применения для решения практических задач. В конце профильного модуля идёт набор финальных задач, который позволяет комплексно применить на практике все знания и навыки, полученные на курсе. В каждой задаче этого блока нужно применять знания и навыки из нескольких модулей курса, что способствует закреплению всего пройденного материала.

Преподаватели

Шишков

Илья Иванович

ООО “Яндекс.Такси Технологии”

Старший разработчик

к.т.н.

100 000 p
Авторизуйтесь чтобы записаться

Профстандарт

Программист

06.001

Ответственный за программу