Курс для цифровой школы и цифровой кафедры
Каждая лабораторная представляет из себя набор заданий.
Опиcание заданий можно найти в файле task.md.
Авторское решение задания можно найти в файле main.py или task.py.
Каждое задание внутри лабораторной оценивается в один балл.
Эта оценка складывается из следующих частей:
- полбалла за то, что задание выполнено верно и проходит проверки автоматизированного тестирования. Этот момент студенты должны предоставить в PR c заданиями на проверку;
- полбалла на усмотрение проверяющего, чтобы простимулировать студента выполнить работу лучше. Точных критериев здесь по оцениванию нет, поэтому стоит аргументировать почему стоит сделать лучше.
Можно комментариями начинающимися с FIXME указывать на то, что повлияет на их оценку.
А TODO указывается, как можно сделать лучше, но это не повлияет на оценку, а прокоментировать всё-таки хочется. И оставить этот момент на совесть студента.
- не соблюдение принципов DRY;
- использование "магических" чисел;
- использование однобуквенных переменных, кроме общее принятых. Если
iиспользуется для индекса - это ок, если она же используется для перебора элементов коллекции надо мягко поругать за это; - решение, которое выглядит как масло-масляннное:
# поиск индекса элемента в списке def find_index_item(item_list, item): for i in item_list: if i == item: return item_list.index(item)
- при работе с циклами указывать на то, если нужно значение, то сразу брать его, если нужны пары индекс/значение, то
enumeratefor pos_letter in range(len(low_txt)): # Ругать за такое ...
- излишнее и необоснованное приведение типов;
- изобретение велосипедов:
# поиск общих элементов result = [] for x in set2_: if x in set1_: result.append(x)
- очедидно не эффективное решение, пугать алгоритмическими сложностями не стоит.
Вот показательный пример:
{x: main_str.count(x) for x in main_str}для нахождения частоты каждой из букв