/programming-2021-19fpl

Homeworks for 19-fpl students

Primary LanguagePythonMIT LicenseMIT

Программирование для лингвистов 3 курс.

Основные задачи курса:

  • углубление навыков программирования;
  • развитие навыков логического мышления;
  • расширение навыков моделирования абстракций;
  • улучшение стилевых навыков написания кода;

Длительность курса: 1 модуль, 12 занятий, 2 семинара в неделю.

Содержание учебной дисциплины: ООП, реализация абстракций (фигуры, база работников), структуры данных (стек, очередь, бинарное дерево поиска).

Основной стак технологий: Git + GitHub репозиторий, язык программирования Python 3.x, среда разработки IDE (на выбор), тесты Unittest (or PyTest), линтинг Pylint (or Flake).

План занятий:

Дата Тема/Работа

06.09.2021

ООП

Семинар:

- краткое введение в программу;

- введение в ООП; презентация первой лабораторной работы по ООП;

- продумывание интерфейса фигур

- базовое введение в тесты

Результат:

- студент знает основные принципы и понятия ООП;

- студент умеет решать задачи в парадигме ООП;

13.09.2021

Git, стек

Семинар:

- разбор лабораторной работы; вопросы студентов; опрос по ООП

- работа с git - создание репозитория, форка/клона, коммит, пулл реквест, обновление и слияние;

- краткое введение в основные понятия теории структур данных и теории алгоритмов (сложность)

- разбор структуры данных – стек; презентация второй лабораторной работы по стеку;

- продумывание интерфейса стека

Результат

- студент умеет работать с git;

- студент знает основные принципы и понятия теории структур данных;

- студент знает основную теорию по структуре данных “стек”;

- студент умеет решать задачи по структуре данных “стек”;

20.09.2021

Очередь

Семинар:

- разбор лабораторной работы; вопросы студентов; опрос по стеку

- разбор структуры данных – очередь; презентация третьей лабораторной работы по очереди;

- продумывание интерфейса очередь

Результат:

- студент знает основную теорию по структуре данных “очередь”;

- студент умеет решать задачи по структуре данных “очередь”;

27.09.21

Бинарное дерево поиска

Семинар:

- разбор лабораторной работы; вопросы студентов; опрос по очереди

- разбор структуры данных – бинарное дерево поиска; презентация четвертой лабораторной работы по бинарному дереву поиска;

- продумывание интерфейса бинарного дерева поиска

Результат:

- студент знает основную теорию по структуре данных “бинарное дерево поиска”;

- студент умеет решать задачи по структуре данных “бинарное дерево поиска”;

04.10.2021

Тестирование

Семинар:

- вопросы студентов; опрос по бинарному дереву поиска

- теория тестирования: юнит тестирование, сценарное тестирование, стресс тесты;

- тренировочные задачи по тестированию для упрощения подготовки к лабораторной работе (бинарное дерево поиска);

Результат:

- студент знает основные принципы тестирования;

- студент умеет создавать тесты;

11.10.2021

SOLID

Семинар:

- разбор лабораторной работы; вопросы студентов; опрос по принципам тестирования

- сдача всех долгов по всем работам;

- выставление оценок;

- разбор принципов SOLID

Результат:

- студент знает основные принципы SOLID;

Краткий трек занятий: 1. ООП + лабораторная работа №1, 2. Git, стек + лабораторная работа №2, 3. очередь + лабораторная работа №3, 4. бинарное дерево поиска + лабораторная работа №4, 5. тестирование + лабораторная работа №4, 6. SOLID + подведение итогов;

Элементы контроля: 1. Аудиторная работа 2. Лабораторные работы

Промежуточная аттестация (1 модуль): 0.3 * Аудиторная работа + 0.6 * Лабораторные работы + 0.1 * Посещаемость

Лабораторные работы = 0.25 * Лабораторная работа 1 + 0.25 * Лабораторная работа 2 + 0.25 * Лабораторная работа 3 + 0.25 * Лабораторная работа 4

Лабораторная работа:

4 6 8 10
тесты не проходят (1 или более тестов не проходят - красный Pull Request) тесты проходят (зеленый Pull Request) тесты проходят (зеленый Pull Request) тесты проходят (зеленый Pull Request), добавлено 3+ индивидуальных тестов
lint не проходит (lint ниже 10 - красный Pull Request) проходит или не проходит проходит на 10 проходит на 10
просмотр Pull Request весь интерфейс заполнен логикой, программа выдает результат при запуске, возможно некорректный весь интерфейс заполнен логикой, программа выдает корректный результат при запуске, возможно неоптимальное решение весь интерфейс заполнен логикой, программа выдает корректный результат при запуске, оптимальное решение весь интерфейс заполнен логикой, программа выдает корректный результат при запуске, оптимальное решение, стилевая краткость

Оценки 5, 7, 9 ставятся в случае, если студент проявил активность во время выполнения лабораторной работы.

Срок выполнения лабораторных работ (с момента объявления лабораторной работы на занятии) №1 (ООП),2 (стек),3 (очередь) - 1 неделя; №4 (бинарное дерево поиска) - 2 недели. К этому времени ожидается Pull Request в главный репозиторий с зеленым CI. В день сдачи лабораторной работы преподаватель проверяет Pull Request. У студентов, претендующих на повышение оценки, будет три дня для исправлений по комментариям преподавателя в Pull Request (просмотр на третий день, вечером, 20:00).

Если лабораторная работа не готова в день сдачи, оценка снижается на 2 балла.

Аудиторная работа:

плюс ставится за активную работу на занятии (ответы на вопросы, выход к доске, решение задач)

10 – 10+ плюсов

9 – 9 плюсов

8 – 8 плюсов

7 – 7 плюсов

6 – 6 плюсов

5 – 5 плюсов

4 – 4 плюса

3 – 3 плюса

2 – 2 плюса

1 – 1 плюс

0 – 0 плюсов

Посещаемость:

10 – 10+ занятий

9 – 9 занятий

8 – 8 занятий

7 – 7 занятий

6 – 6 занятий

5 – 5 занятий

4 – 4 занятия

3 – 3 занятия

2 – 2 занятия

1 – 1 занятие

0 – 0 занятий