Управление разработкой ПО

Открыта регистрация на участие в грантовом конкурсе 2018/2019 — подать заявку.

Описание

Программа создана на основе оригинальной программы Университета Карнеги-Меллон (США), входящего в ТОП-5 университетов мира в категории Компьютерные науки и Информационные системы. Обучение проходит очно в Университете Иннополис, проводит его команда преподавателей, сертифицированных Университетом Карнеги-Меллон и имеющих опыт работы в в ИТ-сфере, и приглашенные эксперты в узких областях, соотносящихся с курсами данной программы.

Предназначена программа для специалистов с опытом работы от 1-2 лет в сфере разработки ПО, которые нацелены на карьерный рост и хотят стать техническим лидером, программным архитектором или менеджером ИТ-проектов.

Как поступить

Для того чтобы стать студентом Университета Иннополис, вам нужно:

  1. Подать заявку на отбор
    Зарегистрируйтесь на нашем сайте, заполните полностью анкету и отправьте её на рассмотрение отборочной комиссии в личном кабинете абитуриента.
  2. Пройти очный отбор в Иннополисе
    При положительном результате рассмотрения заявки мы пригласим вас на очный отбор. В программе: оценка ИТ-навыков и знания английского языка, собеседование с профессорами на английском языке, выявление личностных качеств.
  3. Получить грант на обучение
    Отборочная комиссия сообщит о результате отбора по электронной почте. При успешном прохождении отбора вы получите грант на обучение и в августе станете студентом Университета.

Критерии отбора

  • Высшее образование (бакалавриат/специалитет);
  • Опыт командной работы в сфере разработки ПО от 1 года;
  • Английский язык — Intermediate и выше;
  • Знание языков программирования (Java, C++, С, C# и др.);
  • Знание базовых предметов Computer Science;
  • Углубленное знание минимум 2-х дисциплин: операционные системы, разработка баз данных, сети связи, многозадачное и параллельное программирование, алгоритмы, структура данных.
Материалы для подготовки:
Stanat and McAllister, Discrete Mathematics in Computer Science , Prentice-Hall, 1977

Logic: Chapters 0, 1.0-1.3

Proofs: Chapters 1.4-1.5

Set theory: Chapter 2

Relations & functions: Chapter 3.4

Discrete Mathematics for Computer Science, Saunders College, Toronto, CA ISBN 003-096-5373

Set theory: Chapters 2.1-2.3

Logic & proofs: Chapters 3.1-3.3 3.6-3.8

Relations & functions: Chapters 4.1-4.6,5.1-5.3

Aho, Hopcroft & Ullman, Data Structures and Algorithms , Addison-Wesley, 1983

Read all of the book except chapters 6 and 7.

In Chapter 9 read only as deep as needed to understand O-notation; work problems of your choosing.

David A. Watt, Programming Language Concepts and Paradigms , Prentice Hall International (UK) Ltd, 1990

A good and reasonably terse coverage of the required topics may be found in the first eight chapters of this text.

Modern Operating Systems by Andrew S. Tanenbaum, Herbert Bos
Database Systems

Database Systems: Introduction to Databases and Data Warehouses by Nenad Jukic, Susan Vrbsky, Svetlozar Nestorov

Структура обучения

Академическая программа длится 12 месяцев и поделена на 3 семестра, в течение которых студенты изучают 7 основных курсов и 4 курса по выбору. В качестве итоговой работы студенты реализуют реальный проект с компаниями-партнерами Университета. Это предоставляет студентам возможность продемонстрировать навыки, которые они получили, при решении практических задач. Проектные группы работают под наблюдением менторов. Наличие менторов позволяет студентам самостоятельно принимать решения и вести проект, в то же время получать помощь от практикующих специалистов индустрии.

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

Длительность: 1 год академического очного обучения + 1 год стажировки в ИТ-индустрии. По итогам обучения студенты защищают индустриальный проект: видео

Основные (core) курсы:
Введение в индивидуальный процесс разработки ПО

Курс для опытных разработчиков ПО и их руководителей. Знания, полученные за время курса — база для улучшения как процесса разработки внутри организации, так и для развития индивидуальных навыков разработчика. Индивидуальный процесс разработки — начальный набор необходимых инструментов для практикующего специалиста. Курс описывает основные метрики, необходимые для достижения наилучших результатов при разработке ПО. В первую очередь курс затрагивает вопросы оценки времени и снижения числа дефектов. Предметом курса является не конечный продукт, а именно процесс разработки. Студентам предстоит прослушать 14 лекций, решить 10 задач по программированию, написать 4 отчета, прочитать некоторые главы из книг Уотта Хэмфри. Занятия на курсе позволят студенту сразу применить принципы индивидуального процесса разработки в своей ежедневной работе. По завершению курса сертификат SEI не предоставляется.

Модели программных систем

Научные основы, применяемые при разработке программного обеспечения, зависят от использования как точных, так и абстрактных моделей для описания и обоснования свойств создаваемой системы. В рамках курса рассматриваются стандартные модели для представления последовательных и параллельных систем, таких как конечные автоматы, алгебры и протоколы. Курс показывает, как применять различные принципы логики для уточнения свойств конструируемой системы, таких как функциональная правильность, отсутствие взаимной блокировки и внутреннее единство.Основные понятия курса — механизмы композиции, функции абстракции, инварианты, недетерминизм, индуктивные определения.

Методы проектирования

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

Управление разработкой ПО

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

Архитектура программных систем

Основная цель курса — дать студентам ясное понимание того, насколько важную роль играет архитектура в разработке сложных систем. Проектирование архитектуры подобных систем — трудная задача. Требования, которые обуславливают архитектуру системы, часто отличаются от требований, определяющих её функционал. Они более продолжительно воздействуют на систему в отличие от большинства функциональных требований, некоторые являются высоко субъективными или недостаточно четкими. Архитектурные требования имеют неявную связь между собой, и многие заказчики не понимают архитектурные особенности разрабатываемых продуктов. Следовательно, заказчики могут недооценить требования, важные с точки зрения архитектуры. Архитектура предусматривает возможные изменения функциональных требований, условий ведения бизнеса, существующих технологий, развития организации и так далее. Архитектура должна быть стабильной, в то время как многие функциональные и бизнес-требования могут оставаться непостоянными. Архитектурно значимые требования порой трудно протестировать до момента запуска системы. Зачастую они имеют прямое воздействие, что делает сложным исправление недочетов, возникших на поздних стадиях разработки продукта. Вследствие чего увеличивается степень риска. Таким образом, еще одной целью курса является знакомство студентов с основными концепциями, техниками и методами, применяемыми для создания и управления архитектуры системы ресурсоемкого ПО.

Анализ компонентов ПО

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

Коммуникации для разработчиков ПО

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

Курсы по выбору:
Разработка мобильных приложений
Динамическое тестирование ПО
Java: продвинутый уровень
Образно-ориентированная разработка
С++: продвинутый уровень
Простая разработка ПО
Оценка проектов по разработке ПО
Введение в веб-разработку
Полная виртуализация
Распределенные системы
Отдельные аспекты разработки ПО: продвинутый уровень
Облачные вычисления
Реновация неразработанных зон
Практически ориентированный подход к данным
Независимое исследование

Карьерные перспективы

Выпускники программы получают ключевые компетенции в области разработки ПО, аналитики и предпринимательства, могут успешно работать и занимать такие должности:

  • Архитектор ПО;
  • Технический лидер;
  • Менеджер проекта;
  • ИТ-специалист, разработчик ПО с перспективой стать техническим лидером проекта в краткие сроки.
Студенты приобретают знания и умения:
Планирование и контроль проекта
Управление временем
Умение распределять ресурсы и задачи
Коммуникация с участниками проекта
Управление требованиями
Навыки выявления требований
Решения по моделированию ПО
Анализ и контроль качества продуктов ПО
Документация результатов работы ПО
Разработка ультрасовременных архитектурных систем и дизайнов
Принятие ответственных технических решений с четким документированным обоснованием
Планирование контроля качества, мониторинг и отчетность
Разрешение личных и рабочих вопросов в команде
Понимание профессионализма в сфере разработки ПО
ПОДАТЬ ЗАЯВКУ НА ОТБОР