¾ÅɫÍø

АУЦА/ УЧЕБА/ Академические подразделения / школы/ Подразделение прикладных наук/ Департамент программной инженерии/ Направление «Программная инженерия»/ КУРСЫ/ ОБЯЗАТЕЛЬНЫЕ ПРЕДМЕТЫ

ОПИСАНИЕ ОБЯЗАТЕЛЬНЫХ ПРЕДМЕТОВ

Введение в программирование (COM-122)

Этот базовый курс знакомит студентов с основными принципами программирования и вычислительного мышления. Студенты учатся проектировать, писать, тестировать и отлаживать программы на языках программирования высокого уровня, таких как Python, C++ или Java. Основные темы включают типы данных, переменные, управляющие конструкции (условные операторы и циклы), функции и модульное проектирование, массивы и списки, а также базовые алгоритмы решения задач. Особое внимание уделяется алгоритмическому мышлению, декомпозиции задач и логическому рассуждению. В рамках курса студенты выполняют небольшие проекты, демонстрирующие практическое применение программирования для обработки данных, автоматизации процессов и взаимодействия с пользователем. По завершении курса студенты приобретают навыки разработки структурированных программ и необходимую базу для изучения более сложных дисциплин в области вычислительных технологий.

Ìý

Дискретная математика (COM-236)

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

Ìý

Объектно-ориентированное программирование (COM-119)

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

Ìý

Принципы вычислительных систем (COM-123)

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

Ìý

Структуры данных (COM-229)

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

Ìý

Алгоритмы (TBA)

Продвинутый курс посвящен проектированию, анализу и оптимизации алгоритмов. Основные темы включают алгоритмы сортировки и поиска, методы «разделяй и властвуй», динамическое программирование, жадные алгоритмы, алгоритмы на графах, включая алгоритмы Дейкстры и Краскала, а также более сложные темы, такие как NP-полнота и приближенные алгоритмы. Студенты учатся оценивать эффективность алгоритмов с использованием асимптотического анализа и нотации Big O, а также выбирать подходящие алгоритмы для решения задач различных типов. Курс сочетает теоретическую подготовку с практической реализацией алгоритмов и развивает критическое мышление и навыки решения вычислительных задач.

Ìý

Операционные системы (COM-341.1)

Курс посвящен углубленному изучению основных понятий и принципов построения современных операционных систем. Основные темы включают управление процессами, потоки, многозадачность, синхронизацию, планирование использования процессора, управление памятью, виртуальную память, файловые системы, управление устройствами и вопросы безопасности. Студенты рассматривают примеры операционных систем UNIX/Linux и Windows и получают практический опыт в ходе программных заданий, включая моделирование планирования процессов и распределения памяти. Особое внимание уделяется роли операционной системы как средства управления ресурсами и связующего звена между аппаратным обеспечением и прикладными программами.

Ìý

Компьютерные сети (COM-416.1)

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

Ìý

Системы управления базами данных (COM-213)

Курс знакомит студентов с основными принципами и технологиями проектирования и управления базами данных. Рассматриваются модели данных, прежде всего реляционная модель, диаграммы «сущность-связь», нормализация, индексация, транзакции, управление параллельным доступом и обеспечение целостности данных. Студенты изучают язык структурированных запросов SQL для создания, обработки и управления базами данных. Практическая часть курса включает проектирование и реализацию базы данных для реального прикладного решения с использованием реляционной системы управления базами данных, например MySQL или PostgreSQL. Особое внимание уделяется принципам качественного проектирования баз данных, масштабируемости и вопросам безопасности.

Ìý

Выпускная квалификационная работа I (COM-431.1)

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

Ìý

Выпускная квалификационная работа II (COM-433)

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

Ìý

Стажировка: образовательная деятельность

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

Ìý

Стажировка: исследовательский проект (COM-498.1 / COM-499.1)

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