Бакалавриат
2026/2027





Основы и методология программирования
ID 1248686
Статус:
Курс обязательный (Прикладной анализ данных и искусственный интеллект)
Кто читает:
Департамент информатики
Где читается:
Школа информатики, физики и технологий
Когда читается:
1-й курс, 1-4 модуль
Охват аудитории:
для всех кампусов НИУ ВШЭ
Преподаватели:
Иванцов Илья Сергеевич
Язык:
русский
Кредиты:
8
Контактные часы:
114
Программа дисциплины
Аннотация
Дисциплина базовой части профессионального цикла. Дисциплина направлена на формирование у студентов теоретических знаний и практических навыков по основам методологии программирования, включая администрирование Unix-подобных операционных систем, а также приобретение навыков использования методов алгоритмизации и объектно-ориентированного программирования на языке высокого уровня для последующей обработки данных.
Цель освоения дисциплины
- Формирование у студентов теоретических знаний и практических навыков по основам методологии программирования.
- Приобретение навыков использования методов алгоритмизации и объектно-ориентированного программирования на языке высокого уровня.
- Формирование базовых навыков администрирования Unix-подобных операционных систем: управление правами доступа, пакетами и службами.
Планируемые результаты обучения
- Знать принципы, основные конструкции и идиомы языков программирования Python и Bash, необходимые для изучения других дисциплин, предусмотренных базовым и рабочим учебными планами, а также для применения в профессиональной деятельности.
- Знать принципы работы и администрирования ОС Unix, включая управление правами доступа, пакетами и службами (systemd).
- Иметь навыки (приобрести опыт) по работе и администрированию в Unix-подобных операционных системах.
- Иметь навыки (приобрести опыт) применения объектно-ориентированного подхода на Python, включая утиную типизацию и разрешение конфликтов методов при множественном наследовании (MRO).
- Иметь навыки (приобрести опыт) формализации и решения практических задач по программированию, включая обработку данных средствами библиотек NumPy и Pandas.
Содержание учебной дисциплины
- Командный интерпретатор ОС Unix.
- Устройство ОС Unix.
- Введение в Python.
- Объектно-ориентированное программирование на Python.
- Фреймворки Python.
Элементы контроля
- Домашнее задание №1Описание: Домашнее задание №1 выдается студентам в одном варианте и состоит из 5 задач. Каждой задаче присвоен свой балл. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - файл со скриптом.
- Домашнее задание №2Описание: Домашнее задание №2 выдается студентам в одном варианте. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - представленные в письменном виде решения задач.
- Домашнее задание №3:Описание: Домашнее задание №3 выдается студентам в одном варианте. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - представленные в письменном виде решения задач.
- Проверочная работаОписание: письменная проверочная работа — 3 коротких практических задания на Bash и Python (примерно 30 минут), без права пересдачи в рамках модуля; засчитывается в промежуточную аттестацию 2 модуля.
- Домашнее задание №4Домашнее задание №4 выдается студентам в одном варианте. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - представленные в письменном виде решения задач.
- Домашнее задание №5Необходимо реализовать на языке Python (с использованием библиотеки numpy) класс `BlockLinearRegression`, который обучается на данных, поступающих блоками (чанками). Пусть данные разбиты на $k$ блоков: $(X_1, y_1), (X_2, y_2), \dots, (X_k)$, где $X_i$ — матрица размера $(B_i \times D)$, $y_i$ — вектор размера $(B_i)$, $B_i$ — размер $i$-го блока, $D$ — количество признаков. Алгоритм должен последовательно обработать каждый блок, обновляя внутреннее состояние, и после прохождения всех блоков вычислить итоговые веса модели.
- ЭкзаменУстный экзамен проводится в форме ответов на вопросы экзаменационного билета. Экзаменационный билет представляет собой один из алгоритмов, которые надо было реализовать в домашнем задании. На подготовку ответа выделяется 2,5 часа.
Промежуточная аттестация
- 2026/2027 2nd module0.2 * Домашнее задание №3: + 0.4 * Проверочная работа + 0.2 * Домашнее задание №1 + 0.2 * Домашнее задание №2
- 2026/2027 4th module0.5 * Экзамен + 0.25 * Домашнее задание №5 + 0.25 * Домашнее задание №4
Список литературы
Рекомендуемая основная литература
- Федоров, Д. Ю. Программирование на языке высокого уровня Python : учебное пособие для вузов / Д. Ю. Федоров. — 4-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2023. — 214 с. — (Высшее образование). — ISBN 978-5-534-15733-8. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/515076 (дата обращения: 02.07.2026).
Рекомендуемая дополнительная литература
- Партыка Т. Л., Попов И. И. - Операционные системы, среды и оболочки - 978-5-00091-501-1 - Издательство Форум - 2021 - https://znanium.ru/catalog/document?id=364475 - 364475 - ZNANIUM