• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Контакты

Адрес: 109028, г. Москва, Покровский бульвар, д. 11

Телефон: +7(495) 772-95-90 *28240

Руководство
Научный руководитель направления “Программная инженерия" Аветисян Арутюн Ишханович
Руководитель департамента Лебедев Сергей Аркадьевич
Заместитель руководителя департамента Максименкова Ольга Вениаминовна
Статья
Generating and Debugging Java Code using LLMs based on Associative Recurrent Memory

Василевский В. И., Alexandrov D.

Proceedings of the Institute for System Programming of the RAS. 2025. Vol. 37. No. 5. P. 173-182.

Глава в книге
Задачи, вызовы и эффективность интеллектуальных технологий для цифрового проектирования

Красноженов Г. Г., Лебедев С. А.

В кн.: Московский транспорт. Наука и проектирование.. Вып. 3. М.: 2025. С. 56-74.

Препринт
Approach to Designing CV Systems for Medical Applications: Data, Architecture and AI
В печати

Ryabtsev D., Vasilyev Boris, Shershakov S.

Computer Science ::Computer Vision and Pattern Recognition. 2501.14689. arXiv, 2025

Алгоритмы и алгоритмические языки

2025/2026
Учебный год
RUS
Обучение ведется на русском языке
5
Кредиты
Статус:
Курс обязательный
Когда читается:
1-й курс, 1, 2 модуль

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

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

Аннотация

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

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

  • Знать базовые понятия теории алгоритмов
  • Знать основы языка С, в том числе утилиты сборки – компилятор, компоновщик
  • Знать базовые алгоритмы и структуры данных
  • Научиться писать и отлаживать программы на С, понимать, какие структуры данных использовать, какова сложность работы с ними
Планируемые результаты обучения

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

  • Знания основы языка С
Содержание учебной дисциплины

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

  • Цели и задачи курса. Характеристика разделов курса.
  • Структура программного файла. Системные библиотеки и их использование. Описание Си-машины. Типы данных языка Си.
  • Приведение типов при вычислении выражений (явное и неявное). Операторы: выражение-оператор, составный оператор, условный оператор, оператор выбора, циклы, оператор перехода.
  • Обработка строк. Операция sizeof. Указатели. Адресная арифметика.
  • Возврат из функции. Рекурсия. Хвостовая рекурсия. Встраивание функций. Указатели на функцию.
  • Схема компиляции программ на языке Си. Препроцессор. Директивы препроцессора. Динамическое выделение и освобождение памяти.
  • Инструменты поиска ошибок с динамической памятью. Представление данных с плавающей точкой. Стандарт IEEE 754.
  • Организация типа данных «стек» на динамической памяти. Реализация стека как библиотеки. Использование стека для построения обратной польской записи.
  • Простейшие алгоритмы сортировки (выбором, вставками, обменами). Оценка сложности алгоритмов сортировки.
  • "Прошитое" двоичное дерево и его обход. Двоичные деревья поиска и операции над ними.
  • Красно-черные деревья, их высота и вставка в красно-черное дерево.
  • Хеширование. Хеширование цепочками.
Элементы контроля

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

  • блокирующий Экзамен по 1/2 модулям
    Экзамен состоит из нескольких задач (обычно между 8 и 12). Каждая задача оценивается в некоторое количество баллов. Оценка за экзамен вычисляется как сумма баллов по всем решенным задачам, поделенная на сумму баллов по всем задачам.
  • неблокирующий Домашние задания
    По три домашних задания в 1-м и 2-м модулях.
  • неблокирующий Контрольная работа
    Одна контрольная работа в 1-м модуле. Две контрольные работы во 2-м модуле.
Промежуточная аттестация

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

  • 2025/2026 2nd module
    П = 0.4 х ЭКЗ + 0.3 х КР + 0.3 х ДЗ, если ЭКЗ >= 0.3 Если ЭКЗ < 0.3, то П = ЭКЗ Результат = Округление(П * 10)
Список литературы

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

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

  • Керниган, Б. В. Язык программирования C : учебник / Б. В. Керниган, Д. М. Ричи. — 2-е изд. — Москва : ИНТУИТ, 2016. — 313 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100543 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

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

  • Алгоритмы : построение и анализ, 2-е изд., 1290 с., Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К., 2012

Авторы

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