courses:programming:lectures_list
Лекция 1: Введение
- Введение
- О курсе
- Структура занятий:
- Вопросы в начале каждой пары (вопросы заранее на pr1@)
- Самостоятельная работа c MOOC
- Об инструментах:
- IDE vs simple tools
- default toolchain
- editor, compiler, linker
- gcc
- git (кратко)
- make
- Модель вычислений в архитектуре Фон-Неймана
- Обзор парадигм/стилей программирования
- Императивный
- Декларативный
- Функциональный
- Исполнение программ. Компиляция и интерпретация.
- О языке C. Процесс компиляции программы.
- Введение в синтаксис. Составные элементы программы. Hello World.
- Справочные материалы:
- KRC Керниган, Ритчи. Язык программирования Си
- KRU Керниган, Пайк. Программное окружение Unix
- GIT С.Чансон. Pro git
- Домашнее задание:
- KRC главы 1-3. Изучить, подготовить вопросы.
- GIT 1.1–1.3, 2.*
Лекция 2
- вопросы и ответы
- getchar/putchar, EOF
- sleeps
- отличия С от С++
- K&R 1-3 Обзор, примеры
- RCS, git
- Типы и их представление в памяти
- Начальные сведения об указателях
- Консольный ввод-вывод
Полезная информация
- Введение в Арх ЭВМ и ОС (Модуль 1.2 Бинарные числа и логические операции) – Для доступа требуется войти под свои аккаунтом Stepik
Лекция 3
Практические задачи ввода вывода
- Указатели. Передача аргументов функции с использованием указателей.
- Ввод форматированных данных через scanf, используя несколько параметров разного типа в сроке. Например «%s %d %x». Обратить внимание на вводы строк: адрес первого элемента массива, адрес строки.
- Пример на обработку возвращаемых значений printf/scanf
- Демонстрация ввода массива (из файла с помощью перенаправления). Вычисление значения по всем элементам, например суммы
- Строки как массивы символов с нулевым символом на конце
- Ввод строк. Использование fgets вместо потенциально опасных для строк gets и scanf
- Построение диалоговой системы (Цикл: приглашение системы и вопрос → ввод пользователем ответов → интерпретация ответа)
- Демонстрация последствий использования gets (модификация других переменных вследствие переполнения буфера)
Примеры на печать и чтение из/в строки (функции sscanf, sprintf)Интерпретация кодов символов. Например программа считывает из стандартного потока бинарный набор байт и печатает его побайтно в виде 16-ричных кодов. Затем в виде целых беззнаковых short. Бинарным потоком может являться сам исподняемый файл, т.е. ./a.out <./a.out Также для справки см. hexdump -C
Тема 4.
- Исполнение программ. Компиляция и интерпретация.
- Обзор парадигм/стилей программирования
- Императивный
- Декларативный
- Функциональный
- Массивы
- Функции и рекурсия
- Снова про указатели
Лекция 5
- Отправка решений на pr1@ ( тема письма «Фамилия Имя, группа, решение 01» )
- Результаты прохождения stepik
- Анонс дополнительных занятий
- Передача параметров/возврат значений более детально
- Сравнение чисел с плавающей точкой с определенной точностью.
Лекция 6
- Стек
- Динамическая память
- Передача указателей в функцию
- Операции со строками
Лекция 7
- опрос
- экзамены
- доп занятия
- контрольная
- объединения
- рекурсия и циклы
Примеры с лекции
Лекция 8
- Объединения и массивы
- Понятие файла