Программирование для лингвистов 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 занятий