# Вопросы к зачету по предмету "Введение в программирование с использованием языка Python" 1. Введение в git - Как работать с системой контроля версий - Основные команды - Текст коммитов - Выдача прав на проект - *Решение конфликтов - *Бранчинг 2. Введение в Python - Установка - Запуск программы из консоли - Базовые элементы синтаксиса - Переменные - Циклы - Ветвления - Основные структуры - list - dict - tuple - Настройка зависимостей - Установка библиотек с `pip` - *Настройка виртуального окружения - Работа с jupyter notebook 3. Построение кода - Функциональный подход - Область видимости переменных: `global` - Передача переменных в функцию - Значение по умолчанию - Синтаксис функции - *`*args/**kwargs` - Классовый подход - Что такое класс - Синтаксис класса - Основной метод класса `__init__` - *Магические методы - *Статичные методы класса - Метод класса типа `method(self, ...):` - Разбиение функционала - Насследование 4. Построение проекта - Документация кода - docstring - shebang comments `# comment` - Документация проекта - UML диаграммы - `README.md` - `requirements.txt` - Разбиение кода на модули - Один класс -- одна ответственность - Распределение кода по директориям - *MVC - Распределение ролей в проекте Список может дополняться, но это не факт. Отмеченные звездочкой вопросы не являются обязательными, но показывают, что вы хоть что-то усвоили больше нужного. В качестве задачи возможно получить что-то на подобии: - Как реализовать определенный проект, какие классы понадобяться, UML-диаграмма - Описать документацию к чему-либо - Моделирование физического процесса ### План действий ```graphviz digraph hierarchy { nodesep=1.0 // increases the separation between nodes node [color=Blue,fontname=Courier,shape=box] //All nodes will this shape and colour edge [color=Blue, style=bold] //All the lines look like this I1 [shape=box,color=blue,label="Студент"]; I2 [shape=box,color=blue,label="Работа в\nсеместре\n0.45"]; I6 [shape=box,color=blue,label="Посещение\n0.1"]; I3 [shape=box,color=blue,label="Проект\n0.5"]; I4 [shape=box,color=blue,label="Доп. зачет\n-1..+1"]; I5 [shape=box,color=blue,label="Зачет"]; I1->{I2 I3 I6} I2->I5 [color=darkgreen,style=dashed] I3->I5 [color=darkgreen,style=dashed] I2->I4 [color=red,style=dashed] I3->I4 [color=red,style=dashed] I4->I5 [color=darkgreen,style=dashed] I6->I5 {rank=same; I2 I3 I6} } ```