We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

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

Introduction to Programming

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

Instructor

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

Аннотация

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

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

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

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

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

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

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

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

  • неблокирующий Экзамен 2 модуль
  • неблокирующий Накопленная на практических занятиях 1-2 модуль
  • неблокирующий Экзамен 4 модуль
    Экзамен проводится в письменной форме. Экзамен проводится на платформе MS Teams (https://teams.microsoft.com). К экзамену необходимо подключиться за 15 минут до начала экзамена. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка MS Teams Для участия в экзамене студент обязан: поставить на аватар свою фотографию, явиться на экзамен согласно точному расписанию. Во время экзамена студентам запрещено: выключать камеру, пользоваться конспектами и подсказками. Кратковременным нарушением связи во время экзамена считается нарушение связи менее 5 минут. Долговременным нарушением связи во время экзамена считается нарушение 5 минут и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи.
  • неблокирующий Накопленная на практических занятиях 3-4 модуль
Промежуточная аттестация

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

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

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

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

  • Программирование на языке С++: Учебное пособие / Т.И. Немцова, С.Ю. Голова, А.И. Терентьев; Под ред. Л.Г. Гагариной. - М.: ИД ФОРУМ: ИНФРА-М, 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