Бакалавриат
2020/2021
Основы и методология программирования
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Курс обязательный (Прикладная математика и информатика)
Направление:
01.03.02. Прикладная математика и информатика
Когда читается:
1-й курс, 1-4 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Лупанова Елена Александровна
Язык:
русский
Кредиты:
8
Контактные часы:
132
Программа дисциплины
Аннотация
Дисциплина "Основы и методология программирования" знакомит студентов с основами программирования на примере языка Си. Студенты изучают основные понятия: переменная, операторы, функция, структуры и учатся решать простейшие задачи на языке Си. Курс готовит студентов к дальнейшему изучению языков программирования более высокого уровня
Цель освоения дисциплины
- Знакомство с основными парадигмами программирования
- Изучение основных понятий программирования: переменных, массивов, операторов, функций, структур
- Получение навыков разработки простейших задач на языке Си
Планируемые результаты обучения
- Называть основные парадигмы программирования
- Описывать историю развития языка Си
- Определять переменные и инициализировать их
- Создавать выражения на языке Си с использованием переменных и операций
- Использовать наиболее подходящие операции языка для решения поставленной задачи
- Использовать функции ввода/вывода
- Использовать в программе оператор условия
- Описывать оператор множественного выбора
- Решать задачи с использованием циклов
- Разрабатывать программы с использованием основных операторов языка
- Создавать массивы и инициализировать их
- Создавать и использовать многомерные массивы
- Решать задачи с использованием массивов
- Создавать и инициализировать указатели
- Использовать указатели при работе с массивами
- Создавать динамические массивы
- Создавать макросы обычные и макросы с параметрами
- Создавать многофайловые программы
- Разрабатывать структуры, создавать экземпляры структур
- Передавать структуры в функции и возвращать структуры из функции
- Копировать экземпляры структур с полями-указателями
- Создавать объединения, понимать разницу между объединением и структурой
- Разрабатывать структуры с самоадресацией
- Создавать список, очередь, стек, бинарное дерево
Содержание учебной дисциплины
- Введение в программированиеИстория языков программирования, основные парадигмы программирования
- Понятие переменной. ОперацииПонятие переменной, базовые типы, инициализация. Основные операции языка и их особенности
- Операторы языка СиПонятие оператора. Оператор условия. Операторы цикла. Оператор множественного выбора. Другие операторы
- МассивыОпределение массивов. Создание массивов. Работы с массивами
- УказателиПонятие указателя. Основные операции с указателями. Взаимосвязь указателей и массивов. Массивы указателей. Указатели на массивы. Динамические массивы
- ФункцииПонятие функции. Объявление функции. Полное описание функции. Передача параметров в функцию. Формальные и фактические параметры. Возврат значения из функции. Функции и массивы. Рекурсия. Указатели на функцию. Аргументы командной строки. Функции с переменным числом параметров.
- Классы памятиПонятие класса памяти. Время жизни. Типы памяти. Типы связывания. Спецификаторы 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