View on GitHub

ITMO-PE

My study notes about Program Engineering at University ITMO

MainPage/System Software/Intro

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

Аннотация

Раздел посвящен основам системного программирования на языке Си в операционных системах семейства Linux. Для слушателей, не знакомых с основами языка Си, организуются мастер-классы, а также предлагается онлайн-курс “Программирование на Си и выполнение программ”.
本节专门介绍 Linux 系列操作系统中 C 语言系统编程的基础知识。 对于不熟悉 C 语言基础知识的学生,我们组织了大师班,并提供在线课程“C 语言编程和执行程序”。

Формат

  1. Два занятия в форме мастер-класса.
  2. Онлайн-курс “Основы программирования для Linux” (от 9 до 15 баллов).
  3. Задания для самостоятельного выполнения.
  4. Тестирование (от 3 до 5 баллов).
  5. 大师班形式的两堂课。
  6. 在线课程“Linux 编程基础”(9至15分)。
  7. 独立完成的任务。
  8. 测试(3分至5分)。

План тем мастер-классов

  1. Структура программы на Си. Трансляция программы.
  2. Программа на Си в пределах одной функции: выражения, операторы, базовые типы данных.
  3. Структуры и объединения.
  4. Массивы, указатели и динамическая память.
  5. Подпрограммы в Си.
  6. Функции стандартной библиотеки.
  7. Проблемы безопасности при программировании на Си.

  8. C 程序的结构。 节目的播出。
  9. 一个函数内的C程序:表达式、运算符、基本数据类型。
  10. 结构和协会。
  11. 数组、指针和动态内存。
  12. C 中的子程序。
  13. 标准库函数。
  14. C 语言编程时的安全问题。

Материалы по разделу 1

  1. Пререквизит к дисциплине (если вы не программировали на Си) - онлайн-курс “Программирование на Си и выполнение программ”, ссылка для записи: https://stepik.org/course/73618/ (для освоения этого курса запись в класс не требуется, достаточно записаться на курс самостоятельно).
    学科先决条件(如果您没有使用 C 语言编程) - 在线课程“C 语言编程和执行程序”,注册链接:https://stepik.org/course/73618/(要掌握本课程,请注册课程不是必需的,只需自己报名参加课程即可)。

  2. Онлайн-курс “Основы программирования для Linux”, ссылка для записи
    在线课程《Linux编程基础》,报名链接: Для записи на курс обязательно использовать эту ссылку, иначе контроль его освоения будет невозможен!
    要注册课程,请务必使用此链接,否则将无法监控其发展!

  3. Книга Zhirkov I. Low-Level Programming //C, Assembly, and Program Execution on Intel. – 2017. – Т. 64.
    《Zhirkov I. 低级编程//C、汇编和英特尔程序执行》一书。 – 2017。 – T.64。

  4. Задания для самоподготовки: https://vk.cc/caTRvv
    自备任务:https://vk.cc/caTRvv

Раздел 1*. Системное программирование Linux

Онлайн-курс “Операционные системы”. Успешное освоение курса до конца теоретического обучения даёт дополнительные баллы (от 12 до 20), которые пойдут в счёт экзамена.
在线课程“操作系统”。 在理论培训结束之前成功完成课程可以获得额外的分数(从 12 到 20),这将计入考试。

Ссылка для записи:
注册链接:
https://stepik.org/join-class/fa3703037123ba9161cdbaa43ed7e55b69e2da5a

Для записи на курс обязательно использовать эту ссылку, иначе контроль его освоения будет невозможен!
要注册课程,请务必使用此链接,否则将无法监控其发展!

Раздел 2. Многопоточное программирование

Аннотация

Цель раздела – познакомить слушателей с основами многопоточного программирования, примитивами и методами синхронизации потоков, принципами разработки многопоточных приложений с использованием POSIX-потоков.
本节的目的是向学生介绍多线程编程的基础知识、线程同步的原语和方法,以及使用 POSIX 线程开发多线程应用程序的原理。

Формат

  1. Два занятия в формате лекций с разбором примеров многопоточного кода. Одно занятие для проведения тестирования. Теоретический материал по многопоточному программированию присутствует в онлайн-курсе “Основы программирования для Linux” (раздел 1).
  2. Лабораторная работа (от 9 до 15 баллов).
  3. Тестирование (от 3 до 5 баллов).

  4. 两节讲座形式的课程,包括多线程代码示例的分析。 一节课用于测试。 有关多线程编程的理论材料在在线课程“Linux 编程基础”(第 1 节)中提供。
  5. 实验室工作(9分至15分)。
  6. 测试(3分至5分)。

План тем лекций

Лекция 1. Создание и завершение потоков

讲座 1. 创建和终止线程

Лекция 2. Примитивы синхронизации

讲座 1. 创建和终止线程

Лабораторная работа

Реализовать полноценный паттерн “producer-consumer” с использованием POSIXпотоков. Регламент использования gitlab (workflow), информация о настройке окружения можно найти здесь: https://disk.yandex.ru/d/b0wjBNYNFK8kbQ. Текст задания опубликован в репозитории, см. README.ru.md.
使用 POSIX 流实现成熟的“生产者-消费者”模式。 使用gitlab的规定(工作流程),有关设置环境的信息可以在这里找到:https://disk.yandex.ru/d/b0wjBNYNFK8kbQ。 作业文本已发布在存储库中,请参阅 README.ru.md。

Для получения варианта задания перейдите по ссылке: http://anuda.ru/r/6dd21bd02139441cb4bcd7be4628b66d
要获取该任务的版本,请点击链接:http://anuda.ru/r/6dd21bd02139441cb4bcd7be4628b66d

Для получения максимальных баллов за лабораторную работу необходимо сдать её до 30.04.24. После данного дедлайна баллы будут снижен.
要获得实验室工作的最高分,您必须在 2024 年 4 月 30 日之前提交。 在此期限之后,积分将被减少。

Раздел 3. Программирование в Shell

Аннотация

Раздел посвящен программированию в командной оболочке Shell, интерфейсу командной строки (CLI), использованию утилит семейства операционных систем Linux.
本节专门介绍 Shell 命令 shell、命令行界面 (CLI) 中的编程以及 Linux 操作系统系列实用程序的使用。

Формат

Материалы

  1. В качестве материала для теоретической подготовки предлагается онлайн курс “Основы Linux” (от 9 до 15 баллов). Для записи на курс обязательно использовать предложенную ниже ссылку, иначе контроль прогресса будет невозможен! Ссылка для записи: https://stepik.org/join-class/74ab8eeb6c556658ff35e73dfa4fe7b0a7f490a9 Для записи на курс обязательно использовать эту ссылку, иначе контроль его освоения будет невозможен!
  2. Собель М. Linux. Администрирование и системное программирование //Москва: Питер. – 2016. – Т. 820.
  3. Роббинс А. Unix. Справочник //КУДИЦ-Пресс - 2007 - Т.864
  4. Керниган Б., Пайк Р. UNIX. Программное окружение. – 2003.

  5. 提供在线课程“Linux基础知识”(9至15分)作为理论培训材料。 要注册课程,请务必使用下面的链接,否则将无法监控您的进度! 注册链接: https://stepik.org/join-class/74ab8eeb6c556658ff35e73dfa4fe7b0a7f490a9 要注册课程,请务必使用此链接,否则将无法监控其发展!
  6. 索贝尔·M.Linux。 管理和系统编程 //莫斯科:圣彼得堡。 – 2016。 – T.820。
  7. 罗宾斯A.Unix。 目录 //KUDITS-Press - 2007 - T.864
  8. Kernighan B.,Pike R.UNIX。 软件环境。 – 2003 年。

Раздел 4. Регулярные выражения

Аннотация

Раздел курса посвящен вопросам написания регулярных выражений. Рассматриваются теоретические основы регулярных выражений, синтаксис языка описания регулярных выражений.
本课程的一部分专门讨论编写正则表达式。 考虑正则表达式的理论基础和描述正则表达式的语言语法。

Формат

  1. Онлайн-тренажёр (ссылка будет опубликована позже)
  2. Тестирование (от 3 до 5 баллов).

  3. 在线培训师(链接稍后发布)
  4. 测试(3分至5分)。

Материалы

  1. Фридл Д. Регулярные выражения.
  2. Практические задания (будут опубликованы).

  3. Friedl D.正则表达式。
  4. 实践任务(待发表)。

Экзамен

Курс оканчивается экзаменом, либо, если был освоен раздел 1, то результаты его освоения могут быть засчитаны в качестве баллов за экзамен (от 12 до 20 баллов).
课程以考试结束,或者,如果已掌握第 1
部分,则其掌握结果可计为考试分数(从 12 到 20 分)。

Журнал

Промежуточный журнал:
https://docs.google.com/spreadsheets/d/1SjW-qbwmqpJZyLmrW-xcKKq_0CqBWpXaVa71osuAYrM/edit#gid=0