Парадигмы 1MIT весна 2019

Материал из CSC Wiki
Перейти к:навигация, поиск

Организационное

Самое главное

Если в чём-то сомневаетесь, не понимаете или хотите уточнить — спросите своего преподавателя! Мы здесь для того, чтобы вам помогать.

Наша цель — чтобы вы научились, а не чтобы вы выполнили все формальные условия.

Преподаватели

  • Группа 18.Б09-пу (занятия по средам): Егор Фёдорович Суворов
    • Контакты: vk.com/egor.suvorov, t.me/yeputons
    • Обращения: ты, вы, Егор, Егор Фёдорович, извините пожалуйста
    • Обращения ко студентам: по умолчанию "вы", можно попросить перейти на "ты" (перейду, как запомню)
  • Группа 18.Б10-пу (занятия по понедельникам): Эдгар Андреевич Жаворонков
    • Контакты: t.me/EdgarZhavoronkov
    • Обращения, ты, вы (непринципиально)
    • Обращения ко студентам: стараюсь отвечать симметрично

Структура курса

Цель курса: развить программистский кругозор и умение писать идиоматический код.

Самая важное в курсе: практика в написании кода; у нас сделана как домашние задания и их проверка.

Всего примерно десяток тем, сколько успеем. Каждая тема - одно или несколько занятий.

После каждого занятия идёт обязательное домашнее задание (подробности ниже):

  • Обычно требуется написать/дописать/переписать некоторый код
  • Для сдачи требуется:
    1. Корректность и соответствие заданию
    2. Идиоматичность и "красота кода" (процесс code review)
  • Может состоять из нескольких подзадач, которые иногда оцениваются независимо
  • Обычно суммарный объём - сотня-другая строк кода
  • Могут быть дополнительные ограничения на то, как именно писать код
    • Например, требуются/запрещаются определённые конструкции/шаблоны/библиотеки
  • Условие довольно точно определяет поведение программы
    • Можно и нужно задавать уточняющие вопросы

Как задавать вопросы

Вопросы по домашним заданиям (условия, дедлайны, проверка, оценки, проблемы с кодом, просьбы подсказок), отчётности и организации следует задавать по почте:

  • Адрес: mse.code.review@gmail.com
  • Все вопросы (если только они не связаны какой-то одной общей темой) отправляйте отдельными письмами
  • В теме письма обязательно указывайте следующие подстрочки: [paradigms], [group09] или [group10] в зависимости от вашей группы, код домашнего задания из условия вроде [task01] (если вопрос по домашнему заданию), вопрос или Вопрос
  • В теме письма обязательно опишите, о чём ваш вопрос
  • При ответе на письмо всегда используйте кнопку "ответить" и сохраняйте историю переписки (обычно она автоматически добавляется в конец письма в скрытом виде)
  • Если вам кажется, что ваше письмо потерялось или же оно срочное, а ответа всё ещё нет — напомните про него (кнопкой "ответ", чтобы напоминание осталось в той же цепочке)
  • Пример корректной темы: [paradigms] [group09] [task01] Вопрос: в какой кодировке отправлять файл?
  • Пример некорректной темы: [paradigms] [group09] [task01] Вопрос по заданию
  • Пример корректной темы: [paradigms] [group09] Вопрос: где найти конспекты?

Более общие или экстренные вопросы можно отправлять конкретному преподавателю. Но можно и на общий ящик. Правила общения с преподавателем см. в информации по группам.

Отчётность

Преподаватели стараются руководствоваться здравым смыслом и проверять умения, а не следовать букве правил. В частности, правила могут меняться в течение семестра, но мы постараемся так не делать. А если и делать - менять их в пользу студентов (например, если какое-то задание оказалось чересчур сложным).

Посещаемость, конспекты, работа в классе ни на что не влияют, тестов и экзаменов нет.

Для зачёта нужно сдавать домашки вовремя:

  • На каждое домашнее задание отводится примерно чуть меньше недели с занятия - "мягкий дедлайн"
  • Ещё примерно неделю после мягкого дедлайна (до "жёсткого дедлайна") можно сдавать на 50% баллов
    • Если вы сдали часть задания до мягкого дедлайна, а часть - после, то за первую часть получаете 100%, а за вторую - уже 50%
  • Точная дата и время для каждой группы указаны в тексте задания
  • После "жёсткого дедлайна" проверка идёт, но баллы вы уже не получаете

Чтобы получить зачёт по курсу, требуется выполнить все условия:

  1. По каждому домашнему заданию (не теме) есть зачёт:
    • В хотя бы одной подзадаче сдано корректное решение
    • Красота и идиоматичность кода необязательна
    • Можно сдавать даже после жёсткого дедлайна: баллов нет, зачёт по домашнему заданию есть
  2. В сумме за все домашних задания имеется хотя бы половина баллов от максимально возможного
    • Чисто теоретически можно сдать все домашние задания вовремя, корректно, но некрасиво, и всё равно получить зачёт
    • На практике рекомендуется все домашние задания добивать до полного балла до мягкого дедлайна, но иногда и до жёсткого

В случае, если зачёт по этим правилам у вас не выходит, обговорите индивидуально с преподавателем.

Сдача домашних заданий

Для получения полных баллов надо прислать идеальное решение домашнего задания строго до дедлайна.

Количество попыток сдачи неограничено, но у преподавателей ограничено время проверки (см. информацию по группам).

Общий случай:

  1. Вы решаете домашнее задание (или какие-то подзадачи из него)
  2. Отправляете их преподавателю на проверку
    • Первые домашние задания отправляются на общий адрес mse.code.review@gmail.com
      • В поле "от кого" обязательно указывайте своё имя и фамилию
      • В теме письма обязательно указывайте следующие подстрочки (с квадратными скобками): [paradigms], [group09] или [group10] в зависимости от вашей группы, код домашнего задания из условия (например, [task01])
      • Пример корректной темы: Re: Re: [paradigms] [group09] [task01]
      • Если написать тему некорректно, письмо может потеряться и об этом вы никак не узнаете
      • Файл с решением вкладывайте в письмо, если иное не указано в задании
      • При повторной попытке сдачи отвечайте на письмо преподавателя, сохраняя всю предыдущую переписку
      • Если вам кажется, что ваше письмо потерялось или же оно срочное, а ответа всё ещё нет — напомните про него (кнопкой "ответ", чтобы напоминание осталось в той же цепочке)
  3. Преподаватель проверяет соответствие заданию:
    • Запускает автоматические тесты
      • Автотесты проверяют что угодно, что можно проверить автоматически (в том числе форматирование исходников)
      • В процессе автотесты могут добавляться, особенно если они начинают ломать ваш код
      • Следствие: нужно точное соответствие заданию (формату ввода-вывода, названиям функций и файлов)
    • Проверяет используемые конструкции (если были запреты)
  4. Если решение соответствует задаче, выставляются 50% баллов за соответствующую подзадачу
    • Если решение не соответствует задаче, то присылается подсказка о том, как улучшить решение
  5. Преподаватель проверяет идиоматичность и красоту кода (субъективно) и предлагает улучшить конкретные места в программе
    • Эта стадия обязательна только если решение корректно
    • Если решение некорректно, преподаватель может проверить красоту на своё усмотрение
  6. Вы исправляете корректность и красоту
  7. См. п. 2

С первой попытки почти ни у кого не получается сдать из-за неидиоматичности кода. Это нормально. Предполагайте, что сдача домашнего задания займёт несколько итераций, т.е. несколько дней. Это значит, что для получения полного балла за задание, первую попытку нужно сделать как минимум за несколько дней до срока сдачи, иначе вы рискуете не успеть нужное количество итераций до дедлайна (а он не продлевается).

Списывание и санкции

Мы не собираемся ловить на списывании и применять формальные санкции. Цель курса — чтобы именно вы научились что-то делать руками.

  • Если вам кто-то помог, дал хитрый тест, статью или дал подсмотреть на свой код - оставьте в комментарии внутри решения ссылку на этот ресурс
    • Например: // Вася подсказал, что тут есть особый случай, а так я не догадался
    • Это не влияет на ваши баллы: ни на корректность и соответствие заданию, ни на стиль кода.
  • Если что-то не успеваете и причина вам кажется уважительной — сообщите заранее (хотя бы за сутки до дедлайна)
    • Достаточно набрать всего 50% баллов, а домашки можно закрывать можно в любой момент
    • Можно сообщить массово (неделя коллоквиумов или что-то такое)
  • Разрешается обсуждать с друзьями условия задач (детально) и решения (лучше в общих чертах)
    • Если обсуждать решения в деталях, то сильно уменьшается смысл "работы руками"
    • Если есть вопрос по заданию — лучше спросите преподавателя. Так мы поймём, что можно улучшить и сможем разослать оповещение всем
  • Можно искать ошибки друг у друга, но лучше не трогать клавиатуру и мышь другого человека, чтобы тот хотя бы разработал мышечную память
  • Можно давать друг другу примеры и тесты, но лучше узнавать, как их придумывать
  • Можно выкладывать решения в интернет
  • Можно просить подсказки на форумах, но эффективнее просить у преподавателей

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

Полезные ссылки

Условия домашек

Информация по группам

18.Б09-пу (Егор Суворов)

Репозиторий с презентациями, примерами, планами - иногда могут происходить обновления после пары (например, если нашёл баг). Если чего-то не хватает - напомните выложить.

Табличка с баллами

Презентации (а ещё стоит смотреть план и код в репозитории, в презентациях не всё):

Я обычно не проверяю домашние задания во вторник между 15:00 и 22:00 как минимум. Стараюсь отвечать на вопросы и проверять решения оперативно, максимум в течение суток.

Если у вас не получается зачёт, то обычно я предлагаю такой алгоритм:

  • Если не закрыли тему - дорешиваете исходное задание
  • Если не хватает баллов - выдаю ещё задач с новыми условиями по темам на свой выбор

Разделения на лекции и практики нет, в течение двух пар всё чередуется.

Правила поведения на занятии:

  • Можно не приходить
  • Можно опаздывать
  • Не надо просить разрешения войти или выйти — просто старайтесь особо не шуметь
  • Не стоит играть в компьютерные игры на первых рядах; это может отвлекать тех, кто сидит сзади
  • Начинаю занятие в 13:40+eps, не позже 13:50
  • Можно задавать вопросы в любой момент, перебив меня словом "вопрос" или подняв руку (без разницы)

18.Б10-пу (Эдгар Жаворонков)

Успеваемость

Если меня долго нет, то можно написать мне в телеграм или если все плохо совсем, то стоит связаться с Еленой Новожиловой, у нее есть мой номер телефона.

Я стараюсь приходить пораньше(минут за 10-15 до занятия) и в это время мне можно задавать какие-нибудь вопросы, которые возникают у вас по ходу курса. Кроме того, можно спрашивать меня перед второй парой, во время большого перерыва.

Несмотря на то, что мягкий дедлайн проставлен вечером воскресенья, лучше присылать ваши решения пораньше. Я стараюсь проверять, как только у меня находится свободной время, но в воскресенье хочется посвящать день подготовке к паре и не отвлекаться на все остальное

Материалы с занятий

Папка с материалами