kispython
775 subscribers
16 photos
1 video
3 files
26 links
Программирование на языке Питон в РТУ МИРЭА. Цифровой ассистент преподавателя (ЦАП): kispython.ru
Download Telegram
Channel created
Добро пожаловать на канал курса Программирования на языке Python! github.com/true-grue/kispython 🎉

Наш курс завершается зачетом, на котором, в зависимости от успеваемости студента, будет предложено решить 2, 1 или 0 задач, сгенерированных с помощью ЦАП.

1. Допуском на зачет является успешное решение всех домашних задач от ЦАП. Это касается всех студентов без исключения.

2. Сократить число задач на зачете можно, набирая баллы активности на семинарах. Эти баллы набираются только очным образом. Решение задач, которые на семинаре не рассматривались, можно показать преподавателю, но только если осталось свободное время на семинаре и до наступления следующей темы семинарского занятия.

3. Сократить число решаемых задач на зачете можно, выполнив творческий проект. В начале апреля производится контроль выполнения творческих проектов. Если прогресс оказался неудовлетворителен, то студент выбранный проект теряет. Успешно выполненный проект позволяет решить 0 задач на зачете.

На каждом семинарском занятии студент может решить до 2 задач, произвольной сложности.

Более сложные задачи дают большее число баллов, поэтому, если студент пропустил занятие, то он может добрать недостающие баллы, успешно решив задачи повышенной сложности.

Система начисления баллов зависит от преподавателя и будет рассматриваться на семинарских занятиях.
👍9
В нашем курсе предусмотрены задачи на дом. Их автоматически генерирует и проверяет Цифровой Ассистент Преподавателя (ЦАП), расположенный на странице http://kispython.ru

Студентам необходимо зарегистрироваться на http://kispython.ru/register, следуя подсказкам интерфейса: авторизоваться через ЕСИА РТУ МИРЭА или зарегистрироваться с помощью почты (студенты отправляют сообщения на почту со своей почты @edu.mirea.ru, а робот ее время от времени проверяет и подтверждает учетные записи) и выбрать свою группу.

Требуется решить все домашние задачи в течение семестра. Рекомендуется не затягивать с решениями, поскольку к дате последнего семинара в семестре прием задач в ЦАП будет отключен, а система будет переведена в тренировочный режим перед зачетом.
👍124🔥3👏1
Цифровой ассистент преподавателя не только проверяет код на наборах тестов, но и анализирует тексты программ алгоритмом классификации на основе искусственной нейронной сети.

Для задач разных типов алгоритмом кластеризации были выявлены наиболее распространённые в прошлом году подходы к решению. На полученных данных была обучена искусственная нейронная сеть. В этом году решение задачи ЦАП одного и того же типа известными нейронной сети способами позволяет зарабатывать учебные достижения, изучая Python!

На картинке показан один из способов решения 2-й задачи ЦАП при помощи словаря dict[bool, float], в котором ключом является True или False, а значением — вычисленное по одной из формул число. В следующих задачах ЦАП необходимо будет достигать бóльшего разнообразия в синтаксической структуре решений.
10🔥6🤔4😱3
Современные алгоритмы из области искусственного интеллекта и компьютерной графики описываются в научных статьях. Статьи, в свою очередь, часто используют математические обозначения. Эти символы универсальны — они понятны специалистам вне зависимости от языка программирования.

Первый блок из 6 задач ЦАП помогает увидеть связь между математическими формулами и кодом на Python. С умением переводить математические формулы в код вы сможете использовать передовые научные идеи в своих проектах.
🔥8😱42🤔1
Задача №6 ЦАП имеет отношение к операциям над множествами. Давайте попрактикуемся работать с этим типом данных.

Предположим, что требуется найти множество всех подмножеств (такое множество еще называется power set) для заданного множества. Может ли эта задача возникнуть на практике? Вполне. Например, в машинном обучении есть специальный вариант классификации под названием Label Powerset.

Вот простая реализация алгоритма нахождения power set:

def get_powerset1(sequence):
powerset = {frozenset()}
for elem in sequence:
powerset |= {subset | {elem} for subset in powerset}
return powerset


На каждой итерации мы добавляем к текущему powerset его варианты с очередным элементом elem. Попробуйте разобраться, зачем понадобилось вводить frozenset.

А вот еще одна реализация, с использованием библиотеки itertools:

from itertools import combinations

def get_powerset2(sequence):
return {frozenset(comb)
for size in range(len(sequence) + 1)
for comb in combinations(sequence, size)}


Здесь combinations выдает все комбинации заданной длины из элементов последовательности.

Разумеется, существуют и другие, более быстродействующие алгоритмы получения power set. Попробуйте самостоятельно придумать, реализовать и оценить один из таких алгоритмов!
🔥123😱2🤯1