Список целей курса

Лекции

Упражнения

1. неделя: First Steps with Shell

  1. Ознакомиться с критериями оценки на предмете.
  2. Подготовить все нужное для работы на предмете.
  3. Попрактиковаться в создании исполнительного файла из исходного кода, написанного на языке C в среде редактора ViM.
  4. Изучить основы работы в командной строке.

2. неделя: First Steps with Karel the Robot

  1. Освоить возможность управления роботом Карлом с помощью базовых команд и сенсоров.
  2. Научиться создавать собственные функции (свои команды).
  3. Освоить возможности ветвлений (условие if , if-else ).
  4. Научиться создавать простые логические циклы ( while , do-while ).
  5. Продолжать практиковаться в редакторе ViM в написании кода.

3. неделя: Super Karel

  1. Освоить возможность управления роботом с помощью всех доступных команд и сенсоров.
  2. Как можно больше использовать собственные функции, if else ветвления и логические циклы.
  3. Познакомиться с работой бесконечных циклов
  4. Продолжать работать в редакторе Vim

4. неделя: Super Karel rocks on

  1. Управлять роботом с помощью всех доступных сенсоров и команд.
  2. Использовать собственные функции, логические ветвления и циклы.
  3. Освоить работу с алгоритмическими задачами по сложности уровнем выше.

5. неделя: Guess the Number

  1. Научиться работать с компилятором gcc и понимать некоторые из его параметров.
  2. Научиться работать с утилитой make и настраивать её с помощью переменных среды.
  3. Ознакомиться с базовыми типами данных языка C.
  4. Научиться работать с переменными.
  5. Создавать простые арифметические выражения.
  6. Освоить функции для работы со стандартным вводом/выводом.
  7. Освоить работу с собственными функциями и функциями, которые возвращают значения.

7. неделя: Strings

  1. Понять, как работают массивы и строки в языке C.
  2. Изучить функции библиотек string и ctype .
  3. Научиться работать со строками и реализовывать свои функции.
  4. Познакомиться с оператором sizeof() .

8. неделя: Tic Tac Toe

  1. Работа с массивами.
  2. Работать с ветвлением и циклами в программе.
  3. Освоить работу с параметрами функций.
  4. Ознакомиться с двурозмерным полем (массивом).

10. неделя: IQ Марафон, Part I.

  1. Научиться работать с файлами.
  2. Работать с параметрами функций.
  3. Работать со строками.
  4. Работать с многомерными полями (массивами)
  5. Научиться работать с тернарными оператором.

10. неделя: IQ Marathon, Part II.

  1. Научиться работать с файлами.
  2. Работать с параметрами функций.
  3. Работать со строками.
  4. Работать с многомерными полями (массивами)
  5. Научиться работать с тернарными оператором.

Задания

1. неделя: Problem Set 0: The Environment

  1. Pripraviť si prostredie potrebné pre predmet.
  2. Osvojiť si prácu v OS Linux.

3. неделя: Problem Set 1: Карл

  1. Показать, насколько хорошо вы освоили алгоритмическое мышление и работу c роботом Карлом.
  2. Научиться систематически составлять каркас и логику программы, саму программу и добавлять комментарии к ней.
  3. Освоиться в системе контроля версий git .

5. неделя: Problem Set 2: Numbers, Arrays

  1. Практика работы с математической библиотекой и арифметическими выражениями.
  2. Понять, каким образом числа хранятся в памяти компьютера.
  3. Создать собственный функции согласно спецификации.
  4. Научиться завершать функции с помощью разных возвращаемых значений в зависимости от вступительных параметров.

7. неделя: Problem Set 3: Hangman & Morse

  1. Написать собственные функции согласно спецификации.
  2. Работа с одноразмерным массивом и строками
  3. Научиться использовать массив в качестве параметра в функциях

10. неделя: Problem Set 4: Ball Sort Puzzle & Connect Four

  1. Создать собственные функции согласно спецификации.
  2. Работать с двумерными массивами и строками.
  3. Использовать массив в качестве входного и выходного параметра функции.
  4. Использовать генератор случайных чисел.

10. неделя: Problem Set 5: QR Code

  1. Понять, каким образом числа хранятся в памяти компьютера.
  2. Освоить работу с двумерными массивами.
  3. Создать собственный функции согласно спецификации.
  4. Научиться завершать функции с помощью разных возвращаемых значений в зависимости от вступительных параметров.

10. неделя: Problem Set 6: Curses

  1. Ознакомиться ASCII-графической библиотекой ncurses .
  2. Проявить свой креатив.
  3. Научиться создавать документацию к заданию.

11. неделя: Problem Set 7: Files

  1. Освоить работу с аргументами командной строки.
  2. Освоить работу с файлами.
  3. Понять, что существует вероятность того, что насущная проблема может быть сложнее решаема, чем кажется.

Туториалы и информация к предмету

3. неделя: Version Control

  1. Познакомиться с основами работы git.
  2. Познакомиться с основами работы системы GitLab.
  3. Научиться манипулировать своими ssh ключами с помощью ssh-keygen .

7. неделя: Debugging

  1. Научиться основам cgdb .
  2. Понимать термины и действия, связанные напрямую с процессом отладки программы.
  3. Попрактиковать в работе с массивами чисел.
  4. Ознакомить с оператором sizeof() .

9. неделя: Bomber (Curses)

  1. Ознакомиться с ASCII-графической библиотекой ncurses .
  2. Написать игру Bomber .
  3. Подготовиться к выполнению Problem Set-а 6 .