Немодное упражнение, которое работает лучше, чем имеет на то право. Дайте ученику небольшой старый файл на CoffeeScript и попросите переписать его на современный JavaScript, не запуская компилятор.
Почти у каждого кусочка сахара есть современный двойник, и в этом весь смысл, потому что двойники похожи, но не одинаковы. @name - это this.name. == всегда означал ===. a ? b выглядит как a ?? b и почти им является (только версия CoffeeScript принимает ещё и переменную, которую никогда не объявляли, и компилируется в проверку typeof, а ?? на необъявленном имени бросает ReferenceError, и как раз такие вещи ученик находит, только один раз ошибившись). Диапазоны, for own, неявные возвраты и soak-операторы отдают тем же привкусом «почти».
В итоге ученик читает спецификацию JavaScript ради семантики, а не синтаксиса, и мало какое упражнение для начинающих этого добивается.