• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2024/2025

Архитектура ЭВМ и язык ассемблера

Статус: Курс по выбору (Программная инженерия)
Направление: 09.03.04. Программная инженерия
Когда читается: 1-й курс, 4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 3

Программа дисциплины

Аннотация

Дисциплина направлена на изучение студентами базовых принципов устройства современных ЭВМ на примере архитектуры x86, включая анализ характеристик различных компонент ЭВМ и того, как эти характеристики влияют на работу системных и прикладных программ. Закрепление знаний достигается посредством практического освоения языка Си++, языка ассемблера архитектуры x86, типовых механизмов реализации языка Си/Си++ и его системы программирования на платформе Linux x86.
Цель освоения дисциплины

Цель освоения дисциплины

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

Планируемые результаты обучения

  • Знать основные принципы устройства ЭВМ, его основные компоненты, их качественные и количественные характеристики.
  • Знать свойства аппаратуры, влияющие на производительность и безопасность работы программ. Особенности двоичного (бинарного) интерфейса приложений на примере архитектуры IA-32.
  • Знать особенности архитектуры x86, влияние архитектуры набора команд на реализацию языков высокого уровня и систему программирования.
  • Знать язык ассемблера архитектуры x86, особенности реализации различных конструкций языка Си/Си++ на уровне языка ассемблера и причины, влияющие на выбор механизма реализации.
  • Уметь составлять и отлаживать многомодульные программы на языках Си/Си++ и ассемблера; реализовывать интерфейсы между модулями, реализованными на разных языках программирования (Си/Си++и ассемблер).
  • Уметь обосновано выбирать механизмы реализации конструкций языка Си/Си++ и корректно их кодировать на языке ассемблера архитектуры x86.
  • Уметь оценивать производительность программ на языках Си/Си++ и ассемблера, используя знания об особенностях устройства аппаратуры ЭВМ и аппаратные средства профилирования архитектуры x86.
  • Уметь восстанавливать по ассемблерному коду операторы и типы данных языка Си/Си++.
  • Владеть современной технологией разработки и отладки многомодульных программ на языках Си/Си++ и ассемблера.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение в основы Си++. Классы и структуры. Шаблоны. Наследование. Исключения. Управление память. Семантика перемещения. Умные указатели. Контейнеры и итераторы. Вывод типов, лямбда-выражения. Метапрограммирование.
  • Введение в архитектуру ЭВМ на примерах ассемблерных программ. Взаимосвязь языка Си/Си++, языка ассемблера и особенностей архитектуры ЭВМ на примере архитектуры x86.
  • Система программирования языка Си/Си++ и ее связь с архитектурой ЭВМ.
  • Архитектура ЭВМ в разных аспектах: физической организации, поддержки системных и прикладных программ.
Элементы контроля

Элементы контроля

  • блокирующий Экзамен
  • неблокирующий Контрольные работы
    Две контрольные работы в 4-м модуле
  • неблокирующий Домашнее задание
    В течение Модуля 3 студентам предлагается выполнить четыре блока контеста (домашних задания, представляющих собой набор из 3-7 задач каждый). Финальная оценка за элемент контроля выставляется по формуле: round(x / 20), где x – количество заработанных студентом первичных баллов, а round – функция математического округления до ближайшего целого. В случае “половинного балла” оценка округляется вниз: например, 7.5 округлится до 7.
Промежуточная аттестация

Промежуточная аттестация

  • 2024/2025 4th module
    Экзамен является блокирующим. Для получения положительной оценки нужно набрать не менее 40% баллов. Если за экзамен получено менее 40% баллов, то оценка за элемент контроля - процент набранных за экзамен баллов, поделенный на 10 и округленный вниз до ближайшего целого (от 30% баллов -- оценка 3, менее 30% и не менее 20% баллов -- оценка 2 и проч). Если за экзамен получено не менее 40% баллов, то оценка рассчитывается с учетом накопительной части всех элементов контроля как: 0.3 * экзамен + 0.1 * ДЗ№1 + 0.1 * ДЗ№2 + 0.1 * ДЗ№3 + 0.1 * ДЗ№4 + 0.15 * контрольная работа №1 + 0.15 * контрольная работа №2.
Список литературы

Список литературы

Рекомендуемая основная литература

  • Алгоритмы: построение и анализ : пер.с англ., Кормен, Т., 2013
  • Архитектура компьютера, Таненбаум, Э., 2014
  • Язык Ассемблера для процессоров Intel, Ирвин, Кип Р., 2005
  • Язык программирования С++ : специальное издание, Страуструп, Б., 2015
  • Язык программирования С++, Страуструп, Б., 2007

Рекомендуемая дополнительная литература

  • Computer architecture : a quantitative approach, Hennessy, J. L., 2019

Авторы

  • Буцкая Евгения Александровна