• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Programming

2019/2020
Academic Year
RUS
Instruction in Russian
8
ECTS credits
Course type:
Compulsory course
When:
1 year, 1-4 module

Instructors


Pankratova, Liliya A.

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

Аннотация

Дисциплина "Основы и методология программирования" знакомит студентов с основами программирования на примере языка Си. Студенты изучают основные понятия: переменная, операторы, функция, структуры и учатся решать простейшие задачи на языке Си. Курс готовит студентов к дальнейшему изучению языков программирования более высокого уровня
Цель освоения дисциплины

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

  • Знакомство с основными парадигмами программирования
  • Изучение основных понятий программирования: переменных, массивов, операторов, функций, структур
  • Получение навыков разработки простейших задач на языке Си
Планируемые результаты обучения

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

  • Использовать функции ввода/вывода
  • Определять переменные и инициализировать их
  • Создавать выражения на языке Си с использованием переменных и операций
  • Использовать наиболее подходящие операции языка для решения поставленной задачи
  • Использовать в программе оператор условия
  • Описывать оператор множественного выбора
  • Решать задачи с использованием циклов
  • Разрабатывать программы с использованием основных операторов языка
  • Создавать массивы и инициализировать их
  • Создавать и использовать многомерные массивы
  • Решать задачи с использованием массивов
  • Создавать и инициализировать указатели
  • Использовать указатели при работе с массивами
  • Создавать динамические массивы
  • Различать объявление и описание функции
  • Разрабатывать и использовать функции в программе
  • Передавать массивы в функции и возвращать массивы из функции
  • Разрабатывать рекурсивные функции
  • Использовать командную строку аргументов для передачи параметров в программу
  • Использовать указатель на функцию для отложенного вызова функции
  • Объявлять и использовать локальные переменные со словом static
  • Использовать слово extern для переменных
  • Создавать строки, получать их от пользователя
  • Пользоваться функциями стандартной библиотеки string.h
  • Читать и записывать файлы, как текстовые, так и бинарные
  • Создавать макросы обычные и макросы с параметрами
  • Создавать многофайловые программы
  • Разрабатывать структуры, создавать экземпляры структур
  • Передавать структуры в функции и возвращать структуры из функции
  • Копировать экземпляры структур с полями-указателями
  • Создавать объединения, понимать разницу между объединением и структурой
  • Разрабатывать структуры с самоадресацией
  • Создавать список, очередь, стек, бинарное дерево
  • Создавать поток с использованием библиотеки threads.h
  • Разрабатывать многопоточные программы
  • Создавать слушающий сокет.
  • Подключаться к слушающему сокету
  • Создавать многопоточный слушающий сокет
  • Называть основные парадигмы программирования
  • Описывать историю развития языка Си
Содержание учебной дисциплины

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

  • Введение в программирование
    История языков программирования, основные парадигмы программирования
  • Понятие переменной. Операции
    Понятие переменной, базовые типы, инициализация. Основные операции языка и их особенности
  • Операторы языка Си
    Понятие оператора. Оператор условия. Операторы цикла. Оператор множественного выбора. Другие операторы
  • Массивы
    Определение массивов. Создание массивов. Работы с массивами
  • Указатели
    Понятие указателя. Основные операции с указателями. Взаимосвязь указателей и массивов. Массивы указателей. Указатели на массивы. Динамические массивы
  • Функции
    Понятие функции. Объявление функции. Полное описание функции. Передача параметров в функцию. Формальные и фактические параметры. Возврат значения из функции. Функции и массивы. Рекурсия. Указатели на функцию. Аргументы командной строки. Функции с переменным числом параметров.
  • Строки и файлы
    Понятие строки в Си. Основные принципы работы со строками. Функции стандартной библиотеки для работы со строками. Понятие файла. Основные принципы работы с файлами. Функции стандартной библиотеки для работы с файлами.
  • Классы памяти
    Понятие класса памяти. Время жизни. Типы памяти. Типы связывания. Спецификаторы static, extern и volatile
  • Препроцессор
    Понятие препроцессора. Директивы препроцессора. Макросы. Макросы с параметрами. Организация многофайловых программ. "Стражи выключения"
  • Пользовательские типы данных
    Перечисления. Псевдонимы типов. Понятие структуры. Объявление структуры. Инициализация экземпляра структуры. Доступ к полям структуры. Структуры и функции. Копирование структур. Объединения. Поля битов.
  • Динамические структуры данных
    Структуры с самоадресацией. Создание списка, стека, очереди, бинарного дерева поиска.
  • Многопоточность
    Понятие потоков в Си. Работа с функциями библиотеки threads.h
  • Работа с сетью
    Работа с сетью с помощью сокетов
Элементы контроля

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

  • неблокирующий Практические работы в 1-2 модуле
  • неблокирующий Практические работы в 3-4 модуле
  • неблокирующий Экзамен 2 модуль
  • неблокирующий Экзамен 4 модуль
    "Экзамен проводится в письменной форме с использованием асинхронного прокторинга. Экзамен проводится на платформе MS Teams (https://teams.microsoft.com), прокторинг на платформе Экзамус (https://hse.student.examus.net). К экзамену необходимо подключиться за 15 минут. На платформе Экзамус доступно тестирование системы. Компьютер студента должен удовлетворять следующим требованиям: https://elearning.hse.ru/data/2020/05/07/1544135594/Технические%20требования%20к%20ПК%20студента.pdf) Для участия в экзамене студент обязан: заранее зайти на платформу прокторинга, провести тест системы, включить камеру и микрофон, подтвердить личность. Во время экзамена студентам запрещено: общаться (в социальных сетях, с людьми в комнате), списывать. Кратковременным нарушением связи во время экзамена считается прерывание связи до 10 минут. Долговременным нарушением связи во время экзамена считается прерывание связи 10 минут и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи."
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
    0.5 * Практические работы в 1-2 модуле + 0.5 * Экзамен 2 модуль
  • Промежуточная аттестация (4 модуль)
    0.5 * Практические работы в 3-4 модуле + 0.5 * Экзамен 4 модуль
Список литературы

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

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

  • Программирование на языке С++: Учебное пособие / Т.И. Немцова, С.Ю. Голова, А.И. Терентьев; Под ред. Л.Г. Гагариной. - М.: ИД ФОРУМ: ИНФРА-М, 2012. - 512 с.: ил.; 60x90 1/16 + CD-ROM. - (Проф. обр.). (п, cd rom) ISBN 978-5-8199-0492-3 - Режим доступа: http://znanium.com/catalog/product/244875
  • Программирование на языке Си/А.В.Кузин, Е.В.Чумакова - М.: Форум, НИЦ ИНФРА-М, 2015. - 144 с.: 70x100 1/16. - (Высшее образование) (Обложка) ISBN 978-5-00091-066-5 - Режим доступа: http://znanium.com/catalog/product/505194

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

  • Кудрина Е. В., Огнева М. В. - ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ C#. Учебное пособие для бакалавриата и специалитета - М.:Издательство Юрайт - 2019 - 322с. - ISBN: 978-5-534-09796-2 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/osnovy-algoritmizacii-i-programmirovaniya-na-yazyke-c-428603
  • Павловская Т.А. - Программирование на языке высокого уровня Паскал - Национальный Открытый Университет "ИНТУИТ" - 2016 - 153с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100415
  • Царев, Р. Ю. Программирование на языке Си [Электронный ресурс] : учеб. пособие / Р. Ю. Царев. – Красноярск : Сиб. федер. ун-т, 2014. – 108 с. - ISBN 978-5-7638-3006-4 - Режим доступа: http://znanium.com/catalog.php?bookinfo=510946
  • Язык Си: кратко и ясно: Учебное пособие / Д.В. Парфенов. - М.: Альфа-М: НИЦ ИНФРА-М, 2014. - 320 с.: 60x90 1/16. (переплет) ISBN 978-5-98281-397-8 - Режим доступа: http://znanium.com/catalog/product/459254