Всякие разные штуки сомнительной полезности сделанные в свободное от работы время.
Снова про Книжку про HaXe
Со мной связались издатели книжки и попросили написать отзыв. Я прочитал книжку и, подумал - напишу. Но для начала коротенькая история не связанная с книгой напрямую.
За последние два года мне довелось прочитать три раза курс по ActionScript в колледже, студентам безо всякой подготовки, за очень короткое время. Результаты во всех трех случаях были плачевными. Предполагалось за 5 занятий научить людей программировать, при том, что эти люди с трудом до этого умели файл создать в файловой системе. Тем не менее, я сделал кое-какие интересные наблюдения.
Моя первая попытка заключалась в том, что я постарался подготовить примеры объясняющие такие вещи как классы, наследование, интерфейсы и т.п. используя жизненные ситуации. Неудача такого подхода заключалась в том, что, во-первых, примеры соответствовали теории только в какой-то степени. Примеров нужно было много разных для того, чтобы студент мог самостоятельно вычленить общее из них и понять абстракцию положенную в основу каждого. Это не оправдало себя ни по времени ни по затратам, говоря проще - никто ничего не понял.
Следующий раз, когда мне нужно было прочитать все тот же курс, я решил, что примеры из жизни только отвлекают внимание и заставляют концентрироваться на незначительных, или даже нежелательных аспектах, и я постарался как можно более точно и подробно изложить историю появления и концептуальные основы существования элементов языка и его правил. В результате я обнаружил несколько интересных вещей: во-первых, я сам много чего не знаю, во-вторых, у многих правил нет никакой концептуальной основы, и существуют они исключительно по-традиции, понять их нельзя, можно только запомнить. Ситуация сильно осложнилось когда материал нужно было рассказывать студентам, т.как для них это была экскурсия в дебри ископаемых языков программирования и теорий, о существовании которых они даже не догадывались. Уроки проходили в полнейшем шоке и оцепенении, говоря проще - никто ничего не понял.
Третий раз, наученный горьким опытом, я решил переделать схему обучения таким образом, что объясняя язык программирования, я бы сравнивал его с правилами естественного языка, таким образом делая изучение похожим на изучение иностранных языков (нужно меньше теории, можно больше принимать на веру или просто заучивать не спрашивая "зачем?"). На первом уроке в классе было почти 10 человек, на втором их было двое, на экзамен пришел один. До этого, тот же студент, что пришел на экзамен попросил, чтобы я этот самый экзамен подготовил (программа заведения к этому не обязывает). Я какое-то время сопротивлялся, говоря, что мне было бы жаль потратить один урок на проверку материала (в то время, что я и так знаю, что ничего вы не выучили), вместо того, чтобы рассказать что-нибудь полезное.
Случайно до этого мне встретился пост на форуме посвященном Lisp'у от, очевидно студента, пытающегося решить какую-то, явно надуманную, задачу. И кто-то из ответчиков спросил не делает ли он L99. Google на вопрос о том, что такое L99 выдал вот это: http://www.ic.unicamp.br/~meidanis/c..._Problems.html , что, в свою очередь, оказалось переделкой более раннего теста для изучающих Prolog. Мне понравилась идея, и я решил сделать что-то похожее. Т.как я понимал, что для моего случая 99 вопросов будет через чур, а некоторые из оригинальных будут слишком сложными для студентов, я немного упростил, сократил, чуток добавил... Но, когда-нибудь, я надеюсь "добить" до 99. (В конце статьи есть ссылка на список вопросов для AS3, написанных в том же духе).
Когда я выдал экзамен студенту, он, можно сказать на глазах прозрел, и честно признался в том, что, наконец, первый раз за все уроки хоть что-то понял.
Возвращаясь к книжке, к сожалению в ней нет экзаменов, это не учебник. За исключением начальных глав, предполагается, что читатель хотя бы немного знаком с программированием, ну, на столько, что знает что такое переменные, функции, классы и т.д. Там, где книга должна была бы объяснить что же такое класс или переменная, она обычно ограничивается очень коротким комментарием, увы, не точным и не объясняющим "зачем?" и "почему?", но вспоминая мой опыт со второй группой, я думаю, что так, наверное лучше. С другой стороны, книга сознательно старается упростить что только можно. И, я думаю, это бы сделало ее привлекательной в глазах начинающих. Все же у начинающих есть интернет, Википедия, и, когда не хватает информации, найти можно.
Мое главное нарекание - форматирование кода и корректрура. В книге попадаются, к сожалению, опечатки. Опечатки простительны в газете (или в блоге ), но вот в учебнике это гораздо хуже. Особенно, мне кажется, новичков будет вводить в ступор то, что иногда однострочные комментарии переносятся на вторую строчку. Т.как код не подсвечивается, то отличить комментарий от другого кода очень тяжело. Вообще, если подумать, то книжки, которые публикуют исходники нужно печатать многоцветной печатью. Это не такая уж и роскошь по сегодняшним меркам, особенно, принимая во внимание то, что книги по программированию стоят заметно дороже беллетристики. Я это, кстати заметил еще кода нужно было писать код на доске маркером, или показывать через совместно используемый рабочий стол. Во втором случае - гораздо понятнее, но в классе ПО было таким, что либо учитель демонстрирует свой рабочий стол, либо ученик может работать за компьютером, но не то и другое вместе... Особенно видя то, как новичков вводит в замешательство возможность по-разному расставлять фигурные скобки, обрывать строку в разных местах и т.п., я думаю, что для учебника очень важно быть последовательным в оформлении кода, чтобы, по крайней мере, не отвлекать внимание по пустякам.
Что еще хорошего в книге - она построена из коротеньких глав, которые стараются быть независимыми друг от друга. Т.е. книгу можно читать с произвольного места, именно о том, что интересует, и пропускать понятные моменты. Главы построены по определенному принципу (все), что хорошо. Особенно хорошо то, что в конце главы подводится итог (и в сущности повторяется пройденный материал), повторение, как ничто другое способствует изучению (не смотря на то, что с другой стороны является самым негативным моментом в обучении ). Но без повторения - никуда.
Кроме того, есть вопросы, которые должны были бы помочь закреплению материала - мое к ним нарекание заключается в том, что они ставят проблему не правильно. Они дают возможность для очень разной интерпретации поставленной задачи, что делает цель упражнения не совсем понятной, и выполнять его не очень-то хочется. Тем не менее, при наличии достаточной силы воли, это вполне даже поможет.
Еще один полезный момент - если вы только-только хотели попробовать поэкспериментировать с HaXe, вы в принципе представляете себе какие задачи вы хотите решать, но не знаете какое идиоматически верное решение существует в языке - в книге вы с большой долей вероятности найдете ответ. Книга разбита по областям применения: одна глава рассказывает о взаимодействии с базами данных, другая - о пересылке данных по сети и т.п.
В книге есть очень много кода и комментариев к нему. Мне такой подход тоже больше нравится, т.как напоминает онлайн мануалы по которым я сам учился, и мне кажется, что по сравнению с книгами, в которых больше теории и меньше практики, это дает лучший результат за более короткий срок (но тенденция изменяется чем больше времени потрачено на изучение, и через какое-то время возникает больше желания познакомится с теорией - но обычно в это время вы уже не нуждаетесь в рецензиях и прекрасно знаете что и зачем нужно читать ).
Ну и последнее, пожалуй. Все люди приложившие руку к написанию книги являются активными членами HaXe сообщества использующими язык для практических нужд каждый день. Так что, ну уж по крайней мере, решения и ситуации описанные в книге вполне жизненные и полезные. Вобщем, "хозяйке на заметку".
exam.txt
lesson0.zip
Всего комментариев 17
Комментарии
19.09.2011 18:52 | |
Можно ли при решении задач использовать стандартные методы класса Array?
|
19.09.2011 19:09 | |
Ну и как студент? Сдал? И удалось ли остановиться на какой-то методике изложения материала?
|
19.09.2011 23:30 | |
Эмм... 5 занятий? Да я бы тоже не пошел такой экзамен сдавать =)
ЗЫ Да, про педагогику интересно, хотелось бы продолжения. ЗЗЫ Круто, что хоть где-то преподают AS3 =) |
20.09.2011 02:21 | |
Интересно. Я как раз скоро курс вести буду. Если не сложно - поделитесь опытом, напишите пост, не хочется лишние шишки набивать.
|
21.09.2011 10:39 | |
Мне вот стало интересно, а какой "официальный" итог обучения-пятидневки? Им галочку ставят куда-то там или еще что? Обязалово это вообще для учащихся?
Было у нас в универе такое: ввели "условно-свободные" спец-курсы. Ну, там тематика разная была, и гумманитарные направления и точные науки. Читали преподы и старые, и молодые, но со стороны, что характерно, т.е. не "стояковые", а по приглашению, видимо. Обязалово заключалось в том, что в конце семестра нужно было иметь толи 1, толи 2 зачета по любым спецкурсам. Без них не допускали к экзаменам. Ну, а как ты эти зачеты получишь - твои проблемы. Ну, и вот. В один из семестров я, успешно прокомпостировав мозг, не досчитался в конце одного такого зачета. Друзья посоветовали обратиться к их преподавателю (которого они посещали), заверили: "нормальный чел". Вел он что-то гумманитарное, вообще не по моему профилю. Я к нему - он болеет. Неделя минус. Я опять к нему - он еще куда-то там убыл. Ну, конец учебного года, а время поджимает. В конце-концов, прихожу в очередной раз, мне говорят: "Вы по зачету?" -"Да." - говорю. -"Оставляйте зачетку, он скоро придет. Зайдите завтра". Прихожу, опять его не застал. На столе стопка зачеток. Отдают мне мою - вижу, зачет. О как. А препода, дай бог ему здоровья, я и в глаза не видел. Это я к тому, что народ как бы к таким левым курсам изначально относится "спустя рукава". Я имею в виду не только студентов. И ничего тут не сделаешь. Вот, если бонус какой-то солидный.. а так... кому надо-то? Не... ну если ты препод упертый, можно, конечно добиться и посещаемости и усвояемости и чего-то еще...только на сколько тебя хватит? Предмет-то не основной. Морального права нету давить. Короче, расслабься, просто получай удовольствие от самого процесса. Если ты действительно свободно владеешь материалом, это несложно. Тогда и студенты потянутся. |
|
Обновил(-а) alexcon314 21.09.2011 в 10:42
|
22.09.2011 01:20 | |
Я так подумал... я наверное их буду по одному выкладывать, а то мне там много чего надо в порядок приводть. Заодно и дидактический эффект сохранится :P
Добавил аттачем к статье. |
01.11.2011 16:46 | |
жесть какая-то)
|
02.11.2011 00:42 | |
Цитата:
exam.txt (бонусные задачи про массивы) напомнил 10 класс, когда нам выдавались задачи на массивы, которые необходимо было решить на бумажке, да так, чтобы полное копирование рукописи в ide, без каких либо изменений, выдавало правильный результат после первой и единственной компиляции. Иначе, пересдача.
Жесть, конечно, зато у такого подхода есть и плюсы - мышление и понимание языка развивает. Вопрос кто должен больше думать машина или человек - спорный Год назад надо было на java-script что-то написать - реально ощущал как в мозгах просыпается память А то с этим автокомплитом порой не то что методы собственных классов - апи флешплеера порой вспомнить не можешь - в итоге на поиск больше времени уходит. |
|
Обновил(-а) expl 02.11.2011 в 00:49
|
02.11.2011 01:02 | |
Нет, ну я рисовал и для кастомной машины Тьюринга задачи на экзамене по матлогике. Brainfuck фактически.
Обозлилась на меня преподша и выдала мне по дополнительному билету за каждый прогул семинаров.. А так как я прогулял много то, экзамен сдавал часа 4. Т.е. первым меня она завела, - на говорит - решай.. И почти последним я ушел. на 3 группы. В итоге сдал 8 билетов из 20. Всё правильно. Но поставила - 3. Мол "Вот такая я вредная". Но я не в обиде - сам виноват. Зато было прикольно смотреть как она валила отличников (посадила меня рядом, чтоб не списывал) Двоек было много. |
|
Обновил(-а) Котяра 02.11.2011 в 01:04
|
Последние записи от wvxvw
- Dired - текстовый проводник по файловой системе (29.06.2013)
- Навигация по HTML с WASD (09.06.2012)
- JavaScript, все не так плохо (07.06.2012)
- Что такое tarball и чем его пакуют (11.04.2012)
- Критика Presentation Model (18.02.2012)