Описание курсов
SDP01 Вычисления и разрешение проблем
Данный курс вводит студентов в область разработки вебсайтов, программного обеспечения, разрешения проблем и инструментов разрешения проблем, профессионального общения и профессионального поведения.
Темы: ознакомление с подходами iCarnegie к разработке программного обеспечения; разрешение бизнес проблем через простое моделирование и автоматизацию; использование базовых диаграмм и их структурированное описание для выражения простых вычислительных решений; использование IDE (Эклипса – Затмения) и создание инструментов разработки веб страниц для проверки и устранения ошибок в создании простых интерактивных вебсайтов; базовые html, xhtml, CSS и Javascript; моделирование и разрешение проблем с использованием таблиц и простых табличных макросов; проведение базовых исследований и составление докладов по их результатам; создание и проведение кратких, понятных, хорошо организованных, убедительных, обоснованных презентаций и документов.
Пререквизиты: Не имеются
SDP02 Разработка приложений
Этот курс первого уровня Java знакомит студентов с методикой создания и применения объектно-ориентированного дизайна. Студенты решают простые, четко сформулированные проблемы и проверяют их решения. Делается акцент на анализ проблем, конструирование дизайна, оформление документации и практическое применение.
Темы: базовый UML, ознакомление с понятиями объектно-ориентированного дизайна; типы данных; множества; поиск и систематизация алгоритмов; составление справок по контролю потока; базовые I/O; использование и создание библиотек программного обеспечения; javadoc, Eclipse IDE.
Пререквизиты: SDP01
SDP03 Дизайн приложений: опции
Этот курс второго уровня Java знакомит студентов с набором базовых структур данных, составляющих основу разработки программного обеспечения и компьютерной науки, а также с предоставляемыми такими структурами возможностями и компромиссами. Студенты создают автономные объектно-ориентированные приложения среднего и крупного размера.
Темы: объектно-ориентированное программирование; модулярность и абстракция; инкапсуляция; наследование; полиморфизм; использование и создание библиотек программного обеспечения; подход к исключениям; графические интерфейсы пользователя; введение в структурирование данных; рекурсия; нити.
Пререквизиты: SDP02
SDP04 Структуры и алгоритмы данных о производительности
Этот курс обеспечивает понимание зависимости времени исполнения, ширины полосы и требований к памяти на выбранные структуры данных и их алгоритмы. Студенты учатся неформально обсуждать правильность и сложность алгоритмов и структур данных. Основной упор делается на разумный выбор алгоритмов и репрезентаций. Задания по программированию используют базовый язык C в контексте UNIX и Java.
Темы: типы абстрактных данных; структуры и инварианты данных; анализ простых алгоритмов; сортировка и поиск; коллекции; программирование на базовом языке программирования C; программирование на языке Java; базовые команды UNIX.
Пререквизиты: SDP03
SDP05 Архитектура и дизайн
Этот курс рассматривает принципы разработки систем программного обеспечения. Студенты работают индивидуально или в больших группах над проектами по разработке программного обеспечения, используя рискованную модель построения программного обеспечения.
Темы: оценка и минимизация; основы архитектуры программного обеспечения; абстракция и предварительная оценка; архитектурное моделирование, декомпозиция, инкапсуляция и элементы моделирования; архитектурные стили.
Пререквизиты: SDP04
SDP06 Базы данных и клиентские/серверные приложения
Этот курс вводит основные понятия баз данных, включая дизайн баз данных. Студенты учатся разрабатывать проекты создания баз данных среднего масштаба и управлять ими; овладевают фундаментальными понятиями DBMS и знакомятся с будущими направлениями в развитии баз данных.
Темы: основы систем баз данных; взаимозависимость относительных моделей данных и данных; дизайн баз данных; нормализация; клиенто-серверные приложения; операции; индексы; вопросы обеспечения качества; базы данных Microsoft Office Access; SQL; MySQL; PHP5; DynamoDB NoSQL.
Пререквизиты: SDP03 (могут проходиться одновременно)
SDP07 Взаимодействие и коммуникация между человеком и компьютером
Этот курс рассматривает вопросы взаимодействия между человеком и компьютером, обучает базовым умениям анализа заданий, оценки и дизайна интерфейсов. Студенты учатся разрабатывать дизайны, полезные и удобные для пользователей. Они также учатся эмпирически оценивать и улучшать пользовательские интерфейсы.
Темы: анализ заданий; идиоматика пользовательских интерфейсов; набор инструментов пользовательского интерфейса; быстрое прототипирование и оценка; изучение простых пользователей; автоматизация рабочего процесса; эмпирические методы исследования.
Пререквизиты: SDP01
SDP08 Управление проектами
Этот курс рассматривает вопросы организации и управления проектами разработки программного обеспечения. Студенты изучают технологию планирования проектов, масштабирования, оценки, составления графика работы, итеративные стратегии контролирования. Во время составления полного Плана по управлению проектом (PMP) они также рассматривают и критикуют различные типы планирования и управления.
Темы: приемы управления проектами, составления графиков, оценки, анализа рисков; базовые инструменты управления проектами; принципы лидерства; взаимоотношения с клиентами; вопросы ответственности; вопросы охраны интеллектуальной собственности и сохранения конфиденциальности.
Пререквизиты: SDP01
SDP09 Сетевое общение и безопасность
Этот курс рассматривает принципы и практику сетевого программирования. Он начинается с обзора основ технологии создания и поддержания сетей для поддержки данных и мультимедийного общения. Далее в нем рассматриваются вопросы системного и сетевого аппаратного обеспечения.
Темы: обзор сетевых протоколов и технологий; дизайн клиенто-серверных приложений, толстые и тонкие клиенты; анализ сетей и вторжений; вопросы обеспечения безопасности и конфиденциальности.
Пререквизиты: SDP06 и либо SDP04, либо базовый опыт использования окружения UNIX)
SDP10 Компьютерные системы
Этот курс знакомит студентов с точкой зрения программистов на процессоры, память, и операционные системы. Студенты приобретают четкие знания об организации и иерархии памяти, о переключении контекста и тем, о тех трансформациях, которые высокоуровневые программы претерпевают перед их фактическим использованием на аппаратном обеспечении. Такие знания позволяют студентам устранять невидимые ошибки, измерять и оптимизировать работу программы. Программные задания используют язык программирования С.
Темы: архитектура компьютерных сетей, C, устранение ошибок, управление памятью, иерархия видов памяти, кэшированная память, виртуальная память, измерение качества работы, DLLs, операционные системы, базовое параллельное программирование.
Пре-реквизиты: SDP04
СДП11 Управление техническим персоналом
Данный курс представляет собой общий обзор основных проблем, возникающих в связи с управлением разработчиков программного обеспечения, динамики их изменения на различных этапах жизни сотрудников и осуществления проектов. Студенты изучают, анализируют и предлагают рекомендации по созданию здорового рабочего климата в воображаемой организации разработчиков программного обеспечения. При выполнении заданий курса студенты используют специальные приемы принятия решений, иерархизации своих рекомендаций, устанавливают стоимость и график осуществления рекомендуемых ими решений.
Пре-реквизиты: SDP08
СДП12 Процессы формирования личности и команды
В рамках данного курса студенты знакомятся с реалистичными проектами и их артефактами и осуществляют полный цикл применения программного обеспечения в ходе гибкого и постепенного процесса обучения. Вначале студенты практикуются просто в применении приложений, понимании документации, сборе и распознавании данных. На следующем этапе, на основе накапливающегося объема информации, они учатся предсказывать объем работы и возможные дефекты, анализировать и улучшать программное обеспечение.
Пре-реквизиты: SDP05


