• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

НИУ ВШЭ в Санкт-ПетербургеПрограммы бакалавриатаШкола информатики, физики и технологий

РУС
Версия для слабовидящихВерсия для слабовидящихЛичный кабинет сотрудника ВШЭПоиск

01.03.02 Прикладная математика и информатика

Бакалаврская программа

Прикладной анализ данных и искусственный интеллект

Основы и методология программирования

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

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

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

Аннотация

Дисциплина базовой части профессионального цикла. Дисциплина направлена на формирование у студентов теоретических знаний и практических навыков по основам методологии программирования, включая администрирование 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 module
    0.2 * Домашнее задание №3: + 0.4 * Проверочная работа + 0.2 * Домашнее задание №1 + 0.2 * Домашнее задание №2
  • 2026/2027 4th module
    0.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

Авторы

  • Зубаков Алексей Васильевич
  • Юнышева Анастасия Владимировна
  • Кузнецов Антон Михайлович