Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > e4xu

Всякие разные штуки сомнительной полезности сделанные в свободное от работы время.
Оценить эту запись

Снова про Книжку про HaXe

Запись от wvxvw размещена 19.09.2011 в 17:47
Обновил(-а) wvxvw 22.09.2011 в 01:21

Со мной связались издатели книжки и попросили написать отзыв. Я прочитал книжку и, подумал - напишу. Но для начала коротенькая история не связанная с книгой напрямую.
За последние два года мне довелось прочитать три раза курс по 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
Размещено в HaXe
Комментарии 17 Отправить другу ссылку на эту запись
Всего комментариев 17

Комментарии

Старый 19.09.2011 18:52 incvizitor вне форума
incvizitor
 
Аватар для incvizitor
Можно ли при решении задач использовать стандартные методы класса Array?
Старый 19.09.2011 18:57 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Да-да, конечно можно Но тут, в отличие от лучших практик не принципиально использовать библиотечные функции, главное показать понимание проблемы и правильность решения. Это собственно для начинающих задачи, на соображаловку а не какие-то олимпиадные тесты.
Старый 19.09.2011 19:09 alatar вне форума
alatar
 
Аватар для alatar
Ну и как студент? Сдал? И удалось ли остановиться на какой-то методике изложения материала?
Старый 19.09.2011 23:30 gloomyBrain вне форума
gloomyBrain
 
Аватар для gloomyBrain
Эмм... 5 занятий? Да я бы тоже не пошел такой экзамен сдавать =)

ЗЫ
Да, про педагогику интересно, хотелось бы продолжения.

ЗЗЫ
Круто, что хоть где-то преподают AS3 =)
Старый 20.09.2011 02:21 Kidd002 вне форума
Kidd002
Интересно. Я как раз скоро курс вести буду. Если не сложно - поделитесь опытом, напишите пост, не хочется лишние шишки набивать.
Старый 20.09.2011 14:14 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Студенту зачет был поставлен "автоматом", т.как "решали" мы вместе... ну а что еще оставалось... Мы, правда, всего заданий 5 успели сделать.
Да, 5 занятий - это вообще смешно... при том, что, в теории, с сознательными людьми еще как-нибудь можно было бы построить работу (т.е. давать домашние задания большие, а на уроке только проверять и обсуждать), в моем случае это выглядело примерно так:
первый урок, пришла половина группы, я прочитал лекцию, мы попробовали сделать какое-то практическое задание... и тут, стоп, 2-3 человека ничего не делают, вообще, седят в фейсбуке. Я им говорю, чтобы домой шли, если не интересно (я всегда домашнее задание на следующий раз давал перед уроком - чтобы не отнимать время, всеж люди взрослые, да и никаких санкций за плохое посещение нет). На что мне отвечают - "а я не понял ничего". И тут проблема, которую не понятно как решать. Есть люди, которые зачем-то приходят на урок и ничего не делают... они не хотят учиться, но преподаватель чувствует себя ущербным потому, что они все равно сидят в классе
второй урок: пришла другая половина группы. Естесственно, конспектами они не делятся, и вновь прибывшие ничего не знают о том, что было на прошлом занятии. С прошлого занятия осталось человека 2-3. Опять, не понятно, если продолжать с того места, где остановился в прошлый раз - кто не был на прошлом занятии ничего не поймут. Когда занятий много, можно построить схему так, чтобы повторять вкратце материал предыдущего занятия на каждом следующем, так и лучше усвоится, и те, кто пропустил, по крайней мере будут иметь представление, о чем речь. В моем случае это были очень долгие занятия (5 академ. часов) за один раз. Т.е. один раз пропустил - наверстать тяжело, два раза - бессмысленно дальше ходить, это уже то же самое, что самому учиться.

Еще такой момент. Я читал лекции группе "веб дизайнеров". Т.е. это люди очень далекие от точных (да и прямо скажем от любых) наук Из группы, самостоятельно только один человек смог установить TortoiseSVN. Для остальных даже обычная установка Виндовс приложения оказалась непосильным заданием... С двумя первыми группами я пытался устроить процесс так, чтобы они домашние задания не приносили на USB дисках, а пользовались Googlecode. Но я потратил непозволительно много времени пытаясь научить их этим сервисом пользоваться. Т.е. я даже не предполагал, что этому нужно будет "учить" - меня никто не учил, дали ссылку, я прочитал, посмотрел зачем, и начал пользоваться... а тут оказалось, что надо объяснять. Аналогично FlashDevelop - даже не смотря на то, что сегодня FD сам и SDK скачает, и установит куда нужно, иногда бывают накладки, типа JVM не тот, или .NET фреймворк не тот... ну, вобщем, установить его самостоятельну удалось 1-2 студентам... На учебных компьютерах был предустановлен Flash CS4, которым в итоге и пришлось пользоваться (мне для этого пришлось переписывать примеры использующие векторы...).
Я чуть по-позже найду и выложу примеры заданий, на которых я пытался разбирать материал - там были летающие шарики, игра крестики-нолики и змейка Не знаю, может не самые удачные примеры, но я долго думал, как бы так подобрать, чтобы меньше заниматься изучением каких-то специфических деталей фреймворка, а больше на "общее понимание".
Старый 20.09.2011 22:21 dimarik вне форума
dimarik
 
Аватар для dimarik
Помню свое желание собрать ПК из доступных деталей по приложению "ЮТ для умелых рук". Сколько я читал доступной литературы... Напомню, что в 88 г. еще не было интернетов. И в ВУЗе с удовольствием программил мк, параллельный интерфейс и таймер серии 580 на практических занятиях. Остальные ребята тихо "сдавали лабу". Просто им было не очень интересно.

Может быть и эти студенты пришли просто послушать факультативное занятие?
Старый 20.09.2011 22:47 GBee вне форума
GBee
 
Аватар для GBee
wvxvw
Может стоит попробовать обучающие программы (методы Скиннера или Краудера)? Довольно интересно по ним учиться, если они интересно сделаны. Каждый сможет пройти в своем ритме и без вашего непосредственного участия. Статистику можно прикрутить.

Цитата:
Просто им было не очень интересно.
Если не интересно, но необходимо знать, то только зубрежка спасет. А интересное впитывается в мозг на ура.

В 7 классе на полгода ввели необязательную информатику. Учились на Корветах. Через пару уроков Бейсика, я уже знал, кем хочу стать. Друг с температурой приходил на уроки. Остальные поиграть в гоночки.
Старый 21.09.2011 10:39 alexcon314 вне форума
alexcon314
Мне вот стало интересно, а какой "официальный" итог обучения-пятидневки? Им галочку ставят куда-то там или еще что? Обязалово это вообще для учащихся?
Было у нас в универе такое: ввели "условно-свободные" спец-курсы. Ну, там тематика разная была, и гумманитарные направления и точные науки. Читали преподы и старые, и молодые, но со стороны, что характерно, т.е. не "стояковые", а по приглашению, видимо.
Обязалово заключалось в том, что в конце семестра нужно было иметь толи 1, толи 2 зачета по любым спецкурсам. Без них не допускали к экзаменам. Ну, а как ты эти зачеты получишь - твои проблемы.
Ну, и вот. В один из семестров я, успешно прокомпостировав мозг, не досчитался в конце одного такого зачета. Друзья посоветовали обратиться к их преподавателю (которого они посещали), заверили: "нормальный чел". Вел он что-то гумманитарное, вообще не по моему профилю. Я к нему - он болеет. Неделя минус. Я опять к нему - он еще куда-то там убыл. Ну, конец учебного года, а время поджимает. В конце-концов, прихожу в очередной раз, мне говорят: "Вы по зачету?" -"Да." - говорю. -"Оставляйте зачетку, он скоро придет. Зайдите завтра". Прихожу, опять его не застал. На столе стопка зачеток. Отдают мне мою - вижу, зачет.
О как. А препода, дай бог ему здоровья, я и в глаза не видел.
Это я к тому, что народ как бы к таким левым курсам изначально относится "спустя рукава". Я имею в виду не только студентов. И ничего тут не сделаешь. Вот, если бонус какой-то солидный.. а так... кому надо-то? Не... ну если ты препод упертый, можно, конечно добиться и посещаемости и усвояемости и чего-то еще...только на сколько тебя хватит? Предмет-то не основной. Морального права нету давить.
Короче, расслабься, просто получай удовольствие от самого процесса. Если ты действительно свободно владеешь материалом, это несложно. Тогда и студенты потянутся.
Обновил(-а) alexcon314 21.09.2011 в 10:42
Старый 21.09.2011 11:21 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
На счет програм, рассчитанных на самообучение - есть такой момент. Чем больше пытаться заставить студентов работать самостоятельно (что, вобщем-то лучше, и для их же блага), тем больше они будут возмущаться тому, что их "не учат". Даже были такие случаи, что кто-то жаловался заведующему. И это не на пустом месте. Когда я вспоминаю занятия в академии - то у нас были восновном "домашние задания", а на "уроки" мы приходили обсудить результаты работы с преподавателем. В такой ситуации каждый мог работать в том темпе, как ему нравится (собственно, мы сами все делали, от преподавателя требовалось только ошибки находить и исправлять). В моем случае так бы не получилось, потому что не было никаких начальных знаний. Например, в теории, у студентов до моего курса было что-то по HTML, и, я так себе представлял, что учить про HTML без JavaScript будет странновато... и, даже если "не учили", то студенты и сами могли бы догадаться... но, на практике оказалось, что может только один человек когда-то об этом задумывался.
Что до "статуса" моих занятий, ни зачета, ни экзамена от меня не требовали, только нужно было отмечать посещаемость. Студенты после окончания (всего курса, который включает кучу всего еще, не только AS3) получают бумагу, которая, как мне представляется, имеет весьма сомнительную ценность. Это обучение никак не коррелирует с вышим, или даже специальным образованием. Просто удостоверение о том, что прослушал такие-то и такие-то курсы.
Ну и аудитория соответствующая, т.е. это восновном люди, кого на курс отправила организация, в которой они работают, либо сами хотят переквалифицироваться. Если чесно, я от студентов не добился внятного ответа на вопрос зачем они на курс записались
Старый 21.09.2011 17:43 Котяра вне форума
Котяра
 
Аватар для Котяра
Ужасный контингент тебе попался)
Я проводил один курс по AS2 в Мэишном лицее. 7 занятий. Всё было пристойно. За основу брал Мука.
+ установка флэша, FD и работа с mtasc.
Но там люди 10-11 класс, целенаправленно готовящиеся в математики и программисты, хотя раздолбаев тоже много)
Старый 22.09.2011 01:20 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Я так подумал... я наверное их буду по одному выкладывать, а то мне там много чего надо в порядок приводть. Заодно и дидактический эффект сохранится :P
Добавил аттачем к статье.
Старый 01.11.2011 14:00 taras_ вне форума
taras_
 
Аватар для taras_
exam.txt (бонусные задачи про массивы) напомнил 10 класс, когда нам выдавались задачи на массивы, которые необходимо было решить на бумажке, да так, чтобы полное копирование рукописи в ide, без каких либо изменений, выдавало правильный результат после первой и единственной компиляции. Иначе, пересдача.
Старый 01.11.2011 16:46 Котяра вне форума
Котяра
 
Аватар для Котяра
жесть какая-то)
Старый 02.11.2011 00:42 expl вне форума
expl
Цитата:
exam.txt (бонусные задачи про массивы) напомнил 10 класс, когда нам выдавались задачи на массивы, которые необходимо было решить на бумажке, да так, чтобы полное копирование рукописи в ide, без каких либо изменений, выдавало правильный результат после первой и единственной компиляции. Иначе, пересдача.
Как лет 25 назад - машинное время было дорогое и народ "старой закалки" долго-долго сидел с бумагой и карандашом, проганяя программу в уме, чтобы после переноса на перфокарты ни в коем разе не обнаружилось ошибки.
Жесть, конечно, зато у такого подхода есть и плюсы - мышление и понимание языка развивает.

Вопрос кто должен больше думать машина или человек - спорный
Год назад надо было на java-script что-то написать - реально ощущал как в мозгах просыпается память
А то с этим автокомплитом порой не то что методы собственных классов - апи флешплеера порой вспомнить не можешь - в итоге на поиск больше времени уходит.
Обновил(-а) expl 02.11.2011 в 00:49
Старый 02.11.2011 01:02 Котяра вне форума
Котяра
 
Аватар для Котяра
Нет, ну я рисовал и для кастомной машины Тьюринга задачи на экзамене по матлогике. Brainfuck фактически.
Обозлилась на меня преподша и выдала мне по дополнительному билету за каждый прогул семинаров.. А так как я прогулял много то, экзамен сдавал часа 4. Т.е. первым меня она завела, - на говорит - решай..
И почти последним я ушел. на 3 группы. В итоге сдал 8 билетов из 20. Всё правильно. Но поставила - 3. Мол "Вот такая я вредная". Но я не в обиде - сам виноват. Зато было прикольно смотреть как она валила отличников (посадила меня рядом, чтоб не списывал)
Двоек было много.
Обновил(-а) Котяра 02.11.2011 в 01:04
Старый 25.11.2011 18:25 terbooter вне форума
terbooter
Что это за вуз такой? Телявивский? =)
Я читал курс по флешу из 9 пар. Так там половина группы даже простую игру кликалку сделать смогли.
Вторая половина ничего не поняла вообще.
Педподход такой - вначале азы синтаксиса (похоже на то, как ты говорил про изучение иностранных языков). Тут сразу стало ясно, что половина группы не хочет даже пытаться понять. Далее со второй половиной группы азы ООП на основе объектов реального мира.
 

 


Часовой пояс GMT +4, время: 18:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.