Список целей курса
Лекции
Упражнения
1. неделя: First Steps with Shell
- Ознакомиться с критериями оценки на предмете.
- Подготовить все нужное для работы на предмете.
- Попрактиковаться в создании исполнительного файла из исходного кода, написанного на языке C в среде редактора ViM.
- Изучить основы работы в командной строке.
2. неделя: First Steps with Karel the Robot
- Освоить возможность управления роботом Карлом с помощью базовых команд и сенсоров.
- Научиться создавать собственные функции (свои команды).
- Освоить возможности ветвлений (условие
if
,if-else
). - Научиться создавать простые логические циклы (
while
,do-while
). - Продолжать практиковаться в редакторе ViM в написании кода.
3. неделя: Super Karel
- Освоить возможность управления роботом с помощью всех доступных команд и сенсоров.
- Как можно больше использовать собственные функции, if else ветвления и логические циклы.
- Познакомиться с работой бесконечных циклов
- Продолжать работать в редакторе Vim
4. неделя: Super Karel rocks on
- Управлять роботом с помощью всех доступных сенсоров и команд.
- Использовать собственные функции, логические ветвления и циклы.
- Освоить работу с алгоритмическими задачами по сложности уровнем выше.
5. неделя: Guess the Number
- Научиться работать с компилятором gcc и понимать некоторые из его параметров.
- Научиться работать с утилитой make и настраивать её с помощью переменных среды.
- Ознакомиться с базовыми типами данных языка C.
- Научиться работать с переменными.
- Создавать простые арифметические выражения.
- Освоить функции для работы со стандартным вводом/выводом.
- Освоить работу с собственными функциями и функциями, которые возвращают значения.
7. неделя: Strings
- Понять, как работают массивы и строки в языке C.
- Изучить функции библиотек
string
иctype
. - Научиться работать со строками и реализовывать свои функции.
- Познакомиться с оператором
sizeof()
.
8. неделя: Tic Tac Toe
- Работа с массивами.
- Работать с ветвлением и циклами в программе.
- Освоить работу с параметрами функций.
- Ознакомиться с двурозмерным полем (массивом).
10. неделя: IQ Марафон, Part I.
- Научиться работать с файлами.
- Работать с параметрами функций.
- Работать со строками.
- Работать с многомерными полями (массивами)
- Научиться работать с тернарными оператором.
11. неделя: IQ Marathon, Part II.
- Научиться работать с файлами.
- Работать с параметрами функций.
- Работать со строками.
- Работать с многомерными полями (массивами)
- Научиться работать с тернарными оператором.
Задания
1. неделя: Problem Set 0: The Environment
- Pripraviť si prostredie potrebné pre predmet.
- Osvojiť si prácu v OS Linux.
3. неделя: Problem Set 1: Карл
- Показать, насколько хорошо вы освоили алгоритмическое мышление и работу c роботом Карлом.
- Научиться систематически составлять каркас и логику программы, саму программу и добавлять комментарии к ней.
- Освоиться в системе контроля версий
git
.
5. неделя: Problem Set 2: Numbers, Arrays
- Практика работы с математической библиотекой и арифметическими выражениями.
- Понять, каким образом числа хранятся в памяти компьютера.
- Создать собственный функции согласно спецификации.
- Научиться завершать функции с помощью разных возвращаемых значений в зависимости от вступительных параметров.
7. неделя: Problem Set 3: Hangman & Morse
- Написать собственные функции согласно спецификации.
- Работа с одноразмерным массивом и строками
- Научиться использовать массив в качестве параметра в функциях
10. неделя: Problem Set 4: Ball Sort Puzzle & Connect Four
- Создать собственные функции согласно спецификации.
- Работать с двумерными массивами и строками.
- Использовать массив в качестве входного и выходного параметра функции.
- Использовать генератор случайных чисел.
10. неделя: Problem Set 5: QR Code
- Понять, каким образом числа хранятся в памяти компьютера.
- Освоить работу с двумерными массивами.
- Создать собственный функции согласно спецификации.
- Научиться завершать функции с помощью разных возвращаемых значений в зависимости от вступительных параметров.
10. неделя: Problem Set 6: Curses
- Ознакомиться ASCII-графической библиотекой ncurses .
- Проявить свой креатив.
- Научиться создавать документацию к заданию.
11. неделя: Problem Set 7: Files
- Освоить работу с аргументами командной строки.
- Освоить работу с файлами.
- Понять, что существует вероятность того, что насущная проблема может быть сложнее решаема, чем кажется.
Туториалы и информация к предмету
3. неделя: Version Control
- Познакомиться с основами работы git.
- Познакомиться с основами работы системы GitLab.
- Научиться манипулировать своими ssh ключами с помощью
ssh-keygen
.
7. неделя: Debugging
- Научиться основам cgdb .
- Понимать термины и действия, связанные напрямую с процессом отладки программы.
- Попрактиковать в работе с массивами чисел.
- Ознакомить с оператором
sizeof()
.
9. неделя: Bomber (Curses)
- Ознакомиться с ASCII-графической библиотекой ncurses .
- Написать игру Bomber .
- Подготовиться к выполнению Problem Set-а 6 .