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

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

Вид образования: Неформальное
Уровень формального образования: Подготовка в магистратуру
Рекомендуемый возраст для неформального обучения: 19-25
Язык обучения: Русский
Тип ООК (согласно положению): xMOOC
Промо-видео: https://bit.ly/2oCrEG6
Ключевые слова: Linux, Операционные системы, Программирование, системное проргаммирование
Программа: 1 Введение в разработку для Linux   
1.1 Основной инструментарий разработчика Linux 
1.2 Динамические библиотеки и линковка
1.3 Runtime линковка. Libdl
2 Файлы и файловые системы
2.1 Базовые функции работы с файлами
2.2 Работа с каталогами и путями
2.3 Ссылки
2.4 Файловая система /proc. Построение дерева процессов
2.5 Отладка программ в Linux
3 Процессы и потоки
3.1 Жизненный цикл процесса в Linux
3.2 Создание процессов fork/exec
3.3 Атрибуты создаваемого процесса. Системный вызов clone
3.4 Процессы-демоны
3.5 Задачи на программирование
4 Взаимодействие процессов
4.1 Виды межпроцессного взаимодействия в Linux
4.2 Каналы
4.3 Сигналы
4.4 Разделяемая память
4.5 Мультиплексирование ввода-вывода.
4.6 Задачи на программирование
5 Сетевые возможности
5.1 Введение
5.2 Принципы организации IP сетей
5.3 Понятие сокета
5.4 Разрешение имен
5.5 Сокеты дейтаграм. Протокол UDP
5.6 Сокеты ориентированные на соединения. Протокол TCP
5.7 Задачи на программирование

Авторы курса: Кирилл Кринкин, Марк Заславский
Преподаватели: Кирилл Кринкин, Марк Заславский
Организация: Computer Science Center (CS центр)
Возможность передачи прав на ИС: Нет
Входные требования по уровню знаний: Для комфортного восприятия материала курса, необходимо обладать пониманием того, как работать в Linux на уровне пользователя, а также уверенными навыками программирования на языке С или C++.
Выходные знания, умения, навыки: Навык программирования на языках C или С++, базовые умения работы с Linux
Входной тест: Нет
Ограничения по числу участников: нет
Формирование групп по уровню подготовленности: Нет
Присутствие преподавателей: Да
Присутствие тьюторов: Да
Присутствие фасилитаторов: Да
Форма представления учебных материалов: Видеолекции  /  Онлайн общение с преподавателем  /  Тексты  /  профессиональное программное обеспечение
Наличие обратной связи в материалах: Да
Наличие совместного обучения: Да
Наличие практических занятий: лабораторные  /  тестовые задания  /  интерактивные задания
Наличие форумов, дискуссий: Да
Наличие вебинаров, видеоконференций: Нет
Наличие неформального общения, meetup: Нет
Интеграция с LMS: Нет
Учебная аналитика: Нет
Наличие сертификации: Да
Виды сертификации: Сертификат Stepik
Уровни сертификата: Обычный сертификат и сертификат с отличием
Наличие временных границ: Нет
Начало курса: 16.05.2016
Возможность войти после начала: Нет
Тип занятий (синхронность): асинхронные
Виды оценивания: тест
Количество модулей в курсе: 6
Количество тестов (экзаменов): 0
Возможность формирования собственной траектории, индивидуализации на курсе: Да
Операционные системы: Любые
Поддерживаемые браузеры: Google Chrome, Safari, Opera, Mozilla
Поддержка лиц с ограниченными возможностями: Нет
Обучающие технологии: Web based training
Сайт курса: https://stepik.org/course/548/syllabus
Гостевой логин и пароль для экспертов: Курс открыт для прохождения при условии регистрации на Stepik.org. Тестовый аккаунт: edcrunch_guest_account@gmail.com guest111
Экспертная оценка (только для экспертов): Оценить курс
Посмотреть оценку (только для экспертов):  Результат


Операционная система Linux является одной из наиболее распространенных и популярных. Она работает и в серверах и на настольных компьютерах, в различных устройствах (телевизорах, точках доступа, электронных книгах, системах хранения данных...), а также в мобильных телефонах, планшетах и умных часах, обеспечивая системную основу для Android, Tizen, Sailfish. Кроме того, Linux обладает открытым исходным кодом, что делает ее незаменимой для целей обучения, ведь любой может посмотреть на детали реализации системных механизмов и интерфейсов и повысить свой уровень разбирая конкретные технические решения профессиональных разработчиков. Немаловажной является POSIX-совместимость Linux, что позволяет автоматически распространять умения программировать на другие ОС, например, Mac OS X.

В курсе будут рассмотрены базовые инструменты написания программ для Linux, а также затронуты основные прикладные интерфейсы, касающиеся управления процессами, работы с файловой системой, организации межпроцессного и сетевого взаимодействия. Также будет уделено внимание многим аспектам разработки программ, таким как: использование динамических библиотек, организация многопоточных вычислений и разделяемой памяти, получение расширенной информации о системе. Стоит отметить, что в этом курсе сознательно не затрагиваются вопросы программирования графического интерфейса пользователя, которые являются предметом рассмотрения отдельных курсов.

После окончания курса вы сможете уверенно разрабатывать несложные прикладные и серверные приложения, организовывать обработку данных на компьютерах с ОС Linux.


Назад в раздел