Как стать автором
Поиск
Написать публикацию
Обновить
Контур
Делаем сервисы для бизнеса

Как я проходила NAND2Tetris на четвёртом курсе, а мои студенты — на первом

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров693

За каждой строчкой любой учебной программы стоят многолетние эксперименты над людьми: в первую очередь над студентами, но в том числе и над преподавателями. И я хочу рассказать ещё не законченную историю об одном из курсов на курируемой Контуром специальности ФИИТ УрФУ.

Итак, в своё время я поступила на вышеупомянутое учебное направление. На 3-4 курсах в начале семестра нам предоставлялся список предметов, из которых можно было составить свою программу. И на последнем курсе своего бакалавриата среди прочих я выбрала его — курс NAND2Tetris.

Эту обложку мы видели один раз за весь курс (учебник читали, но в том файле у него была другая обложка)
Эту обложку мы видели один раз за весь курс (учебник читали, но в том файле у него была другая обложка)

Что такое NAND2Tetris и как его проходили старшекурсники

Краткое резюме для тех, кто не знаком с оригинальным курсом: авторы предлагают пройти путь от описания на HDL простейших логических схем, через схему минимально рабочего АЛУ и байт-кода для него, через трансляцию в этот байт-код учебного ассемблера, через виртуальную стек-машину до компилируемого языка высокого уровня и проекта на нём. На каждом этапе используемые учебные языки упрощены и урезаны настолько, чтобы глаза ещё не разбегались от разнообразия команд, но описанные в лекциях концепции уже было возможно воплотить.

К четвёртому курсу за моими плечами были обязательные для всех первокурсников курсы операционных систем по Таненбауму и архитектур ЭВМ, а также дополнительный курс ассемблера. Соответственно, сумматоры, регистры процессора и стек-машина уже вызывали радость узнавания.

Приятный мирок простых чипов из первого домашнего задания
Приятный мирок простых чипов из первого домашнего задания

Как и в оригинале курс делился на две части: первый семестр от логических схем до ассемблера, второй — от стек-машины до стандартной библиотеки высокоуровневого языка Jack. Студенты, выбравшие NAND2Tetris как дополнительный предмет на старших курсах, смотрели оригинальные видеолекции, прорешивали задачи на платформе ulearn (большинство задач взяты из оргинального курса, но есть и добавленные в версию для ФИИТ) и раз в две недели устно сдавали преподавателю теорию и защищали свои решения задач. Заодно на этих сдачах можно было пообщаться друг с другом и с преподавателем.

По-настоящему важный вопрос в начале курса
По-настоящему важный вопрос в начале курса

Большинство студентов, выбравших курс NAND2Tetris успешно его заканчивали, и я лично помню положительные отзывы своих однопоточников: “Мы наконец применили на практике и поняли теорию с курса архитектур ЭВМ, хорошо было бы пройти NAND2Tetris в своё время на первом году обучения”. Стоит ли бояться желаний студентов было решено проверить на практике.

Преподавание NAND2Tetris для первого курса

В следующем учебном году я вернулась к NAND2Tetris: куратор курса пригласил присоединиться к преподавательскому составу. Согласилась я из корыстной цели актуализировать и углубить свои знания ОС/архитектур ЭВМ, ведь одно дело послушать лекции в студенчестве или ловить случайные разрозненные фрагменты информации, другое — внимательно перечитать нужную теорию и понятно донести её другим людям. Стоп, почему речь внезапно зашла о теории по этим предметам?

Версия для первого курса отличалась обязательностью для всех студентов и наличием еженедельных очных пар в подгруппах для обсуждения теории из видеолекций, проведения пятиминуток и сдачи домашних заданий. За добавление в программу новых учебных часов приходится платить старыми: из расписания вылетели те самые хрестоматийные операционные системы и архитектуры ЭВМ, а выпускать студентов совсем без знаний о видах архитектур ЭВМ, IEEE754 и командах для настоящих процессоров не хотелось.

Первый семестр и архитектуры ЭВМ

Итак, первый семестр. Кроме обычных преподавательских проблем пришлось на месте разбираться с тем, как комбинировать повторение материала видеолекций с теорией удалённых из программы курсов. Первый год моего преподавания был третьим годом существования NAND2Tetris для первокурсников и преподаватели успели собрать небольшую базу тем для обсуждения на парах, но эта база не спасала от значительного рассинхрона подгрупп и из-за разной скорости работы студентов, и из-за расхождения дополнительного материала, приносимого преподавателями.

На мой субъективный взгляд первый семестр прошёл неплохо: студенты помучились с двоичной арифметикой на бумаге, порисовали старые добрые логические схемы и искренне порадовались, что иметь дело с ассемблером им вряд ли придётся часто, если придётся вообще. Первая часть NAND2Tetris правда выглядела хорошим практическим дополнением к теории архитектур ЭВМ. Нас ждало следующее испытание.

Второй семестр и ОС

Вот здесь мы столкнулись со значительными проблемами: во-первых, теория второй части NAND2Tetris посвящена трансляции, значительно пересекается с ЛОИ и практически никак с операционными системами, во-вторых, в курс операционных систем обычно входят практики на C и bash. То есть, курс ОС, у которого было по часу лекций и практик в неделю, нужно было уложить в единственный в неделю час практик NAND2Tetris и там же успеть разобрать со студентами материал видеолекций, часто непростой. Очных часов NAND2Tetris меньше чем у старых ОС как раз из-за наличия видео: время просмотра учитывается при составлении учебной программы. 

Имевшегося преподавательского ресурса просто не хватало на унификацию программы всего семестра. Волевым усилием куратор курса написал регламент к занятию по bash и общие для потока домашние задания по написанию скриптов, всю же теорию о запуске компьютера, планировании процессов, управлении памятью и т.д. каждый преподаватель давал (или не давал) в том объёме и порядке, который считал нужным.

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

Оценка результатов

А теперь немного субъективных, но всё же численных оценок отношения студентов к предметам. В конце каждого семестра студентов просили оценить по шкале от 0 до 4 полезность курсов и оставить свободные комментарии.

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

АрхЭВМ/NAND2Tetris 1

ОС/NAND2Tetris 2

2020-21 (АрхЭВМ и ОС)

1.72

3.5

2021-22 (АрхЭВМ и ОС)

2.1 (60 оценок)

3.0 (60 оценок)

2022-23 (NAND2Tetris)

3.2 (86 оценок)

2.83 (65 оценок)

2023-24 (NAND2Tetris)

3.13 (68 оценок)

2.45 (76 оценок)

2024-25 (NAND2Tetris)

2.98 (88 оценок)

2.73 (78 оценок)

Какие выводы преподаватели NAND2Tetris сделали из этих показателей:

  • Ухудшение показателей NAND2Tetris с 2022-го года к 2024-му, скорее всего, связано с выпуском курсов, заставших ОС и архитектуры ЭВМ. Студенты более позднего набора приходят на курс уже без сформированного старшими товарищами ожидания чуда, заменившего старые страшные архитектуры ЭВМ.

  • Переход от архитектур ЭВМ к NAND2Tetris явно повысил вовлечённость студентов в предмет.

  • Переход от курса ОС к NAND2Tetris значительно запутал студентов: в комментариях многие писали о фрустрации из-за значительного расхождения материала видеолекций и практик. Также для задач второго семестра были написаны проекты на C# — на этом языке первокурсникам ФИИТ преподаются основы программирования. Из-за новизны этих проектов студенты периодически находили в них баги в течение выполнения домашних заданий, что тоже не добавляло мотивации.

Что ждёт NAND2Tetris на ФИИТе? Пока два наиболее вероятных варианта развития событий: или 2025-26 учебный год пройдёт в том же формате и преподаватели продолжат стихийно наращивать внутренний план, или во второй семестр будет возвращён классический курс ОС, а вторая часть NAND2Tetris вернётся в категорию дополнительных курсов.

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

На сладкое чуть-чуть обезличенных студенческих перлов.

Теги:
Хабы:
+2
Комментарии3

Публикации

Информация

Сайт
tech.kontur.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Пихнова Дарья