[Holywar] Какому языку учить в школе?
В общем, считаю, что следует учить Java-е или Python-у, на выбор, кому что больше нравится.
ps
java тот же C#, только грязнее по синтаксису
какая разница?
а синтаксис нужного языка потом можно выучить, если захочется.
и оператором циклану вот например foreach есть не во всех языках
принципиально - не имеет значения.
ну вот например foreach есть не во всех языкаха для учебы он нужен?
А то сейчас система обучения дважды ломает головуты так говоришь "ломает голову", будто это что-то плохое
Я вот начинал с Basic и всем доволен.
гораздо лучше плавно подводить. Потому что не все дети хорошо воспринимают новые концепции и многие отсеиваются.
Я вот начинал с Basic и всем доволен.Я тоже еще до информатики спектрум поимел, ага
Бейсик тоже был первым. Потом паскаль в школе и в универе, а вот потом уже ПХП и Джаваскрипт.
А вот си никогда в жизни не учил и не знаю, а теперь вот на работе требуется - а не знаю
а для учебы он нужен?а разве нет?
Имхо это как раз прививает нечто, относящееся к bigdata: если человек где угодно будет пихать форич, не понимая, как он действует...
Понятно, что не все смогут. Но ведь те, кто смогут, будут уже тогда офигевать от "мощи"
а разве нет?вроде русский язык придумали в вашей стране, а говорите все так, что нихера понять невозможно. может ты развернешь свою мысль?
Имхо это как раз прививает нечто, относящееся к bigdata: если человек где угодно будет пихать форич, не понимая, как он действует...
Понятно, что не все смогутнасколько я помню, в школах стараются давать то, что могут смочь все, а то что не могут - на факультативах каких-нибудь уже, ну или разделять на группы по способностям.
И, кстати, ребята, а как вы относитесь к регэкспам в школьной программе?Ну для программирования они не существенны. А вот в рамки продвинутого изучения пользовательских интерфейсов могут быть полезными. Ну там где учат всяким фишкам вроде найти-заменить, не знаю как сейчас называется этот курс.
Вообще да - их надо уже в продвинутых изучать, но я не знаю, что бы я сейчас делал в индустрии, не почитай в 2000 про них
а заскучают - пороть
На схеме надо учить.
Регэкспы - адская ниша, что учится за один день. Если хочешь заинтересовать детей - ориентируйся на игрушки или что-то близкое. А заменять подстроки в строке на другие подстроки оставь нердам.
в топку паскаль, надо учить С+1
В топку C с его == сравнением и бесконечными ошибками из-за этого. Pascal рулит для базового обучения.
зачем выстраивать лишнюю стену под названием "выучи ДРУГОЙ язык программирования чтобы сделать хоть что-то своими руками"? паскаль же мёртвый язык, на нём разве что на военной кафедре пишут всерьёз... (что-то мне подсказывает что до сих пор пишут )
паскаль же мёртвый язык, на нём разве что на военной кафедре пишут всерьёз...Навскидку: http://en.wikipedia.org/wiki/FL_Studio
эмн. ты хочешь сказать, что он написан на дельфях? аминь
Очевидно, что нужно изучать не столько язык, сколько принципы. Принципы проще всего изучать на дружественном к человеку Паскале (специально надо сказать созданном для этой цели — обучения чем на дружественном к компилятору C.
бейсик -> паскаль -> си-пи-пи
Давайте преподавать python, он странноватый язык, чтобы быть первым, но зато достаточно выразителен и на нём можно беспрепятственно продолжить программировать и дальше. И нелогичностей в синтаксисе в нём меньше чем в С
В топку C с его == сравнением и бесконечными ошибками из-за этого.А что, у кого-то реально с этим бесконечные ошибки? Я не так много прогаю, но за последние года три не припоминаю, чтобы были подобные проблемы с этим оператором
Очевидно, что нужно изучать не столько язык, сколько принципы. Принципы проще всего изучать на дружественном к человеку Паскале (специально надо сказать созданном для этой цели — обучения чем на дружественном к компилятору C.У меня в СУНЦЕ информатике и программированию учили два препода, один хуевее другого - Гущин и Шкаф, учили на паскале. Никакого интереса этот предмет в их исполнении не вызывал, программирование я ненавидел, и даже сдал выпускной тест при помощи Artmoney) Потом на первом курсе физфака у нас вел C++ какой-то бодрый толковый молодой преподаватель, и я с удивлением обнаружил, что прогать интересно и легко для меня, тогда и заложился фундамент моей нынешней профессии и любимиого дела)
Это я всё к тому, что, как мне кажется, решающую роль в эффективности обучения детей основам программирования играет компетенция и личность преподавателя, а не язык программирования.
эмн. ты хочешь сказать, что он написан на дельфях? аминьНу таки да.
Даже больше: и не он один.
Половина того, что учат в школе — балласт для жизни. В школе учатся не поэтому.
что, у кого-то реально с этим бесконечные ошибки?
У только начнающих — постоянно. Это мешает усвоению сути программирования.
мешают недалёкие преподы, вдалбливающие высосанные из пальца догмы
к тому же мне кажется очень вредным приучать для сравнения писать a=b в то время как в самых популярных языках это означает присваивание. потом эти же люди будут по привычке ошибаться в обратную сторону, а это куда хуже
паскаль надо сжечь, С рулит
Нужна простая ide с компиляцией на лету, подсвечиванием ошибок в коде и лайвкодингом.пост про ide от
Нужна простая ide с компиляцией на лету, подсвечиванием ошибок в коде и лайвкодингом.для паскаля такая ide есть?
Люди, которые уже усвоили, чем сравнение отличается от присваивания, не будут ошибаться с любым языком. Мы же говорим о тех, кто программировать еще вообще не умеет. И вот им-то и будет привычным сравнение простым =, а присваивание уже как угодно можно обозначать, все равно с этим термином они сталкиваются впервые. Кроме того, человеческие слова begin-end гораздо понятнее безликих скобок.
к тому же мне кажется очень вредным приучать для сравнения писать a=b в то время как в самых популярных языках это означает присваивание.В каких, например, в естественных?
в естественных?в противоестественных, очевидно же
http://wiki.lazarus.freepascal.org/Screenshots
и плагин для Эклипса.
ИМХО, freepascal хорош (и может зинтересовать школьников) тем , что позволяет писать подо что угодно — хочешь — Android или iOS, хочешь — Win64...
для FreePascal есть и плагин для Эклипса.
ИМХО, freepascal хорош (и может зинтересовать школьников) тем , что позволяет писать подо что угодно — хочешь — Android или iOS, хочешь — Win64...
Вы отстали от жизни. На делфи уже давно можно писать и под никсы, и под макось/ios, и ведроид.
только при идентичном IDE freepascal бесплатен, а Delphi стоит что-то в районе 100к+, как я понимаю:
И что со всякими генериками/замыканиями/анонимными классами и пр? (вопрос без иронии)
GUI: http://en.wikipedia.org/wiki/FpGUI ну или в http://en.wikipedia.org/wiki/Lazarus_%28IDE%29#Features
Ман по кроссплатформенной разработке: http://wiki.freepascal.org/Multiplatform_Programming_Guide
дженерики:
http://wiki.freepascal.org/Generics
фичи Delphi, отсутствующие в FPC:
http://wiki.freepascal.org/delphi_language_features_which_fp...
лямбды в паскале (и в дельфи) уже появились?
лямбды в паскале (и в дельфи) уже появились?Школьникам они не нужны
Школьникам они не нужныработа с коллекциями (фильтрация, сортировка) через лямбды намного веселее и, имхо, даже понятнее записывается.
для паскаля такая ide есть?Если бы мне сказали учить школьников, я бы поискал компилятор паскаля в js и сделал из него онлайн IDE, которая бы работала как в статье на которую я ссылался - слева код, справа картинка, как только меняешь код, сразу видишь новую картинку. Для тех объемов кода, которые напишет школьник (20 строк максимум подсветка ошибок делается просто - на каждый ввод символа с нуля компилим код, сообщения от компилятора используем для подчеркивания места с ошибкой.
Для тех объемов кода, которые напишет школьник (20 строк максимумэто какие-то убогие школьники
подсветка ошибок делается просто - на каждый ввод символа с нуля компилим код, сообщения от компилятора используем для подчеркивания места с ошибкой.Бля, есть же Ace!
Бля, есть же Ace!Но при чем тут компиляция паскаля?
Очень удобная штука.
А как там с гуями в фрипаскале? Есть возможность иметь один и тот же код на разных платформах?ага. Я вот собирал doublecommander, он писан на фрипаскале, при этом поддерживает на выбор гном и кде.
Почему паскаль то? Если иностранные языки хочешь учить надо с древнегреческого начинать, так что ли? Где искать разнообразные примеры хорошего кода на паскале? Язык конечно хорош, но не лучше ли выбрать что то более широко обсуждаемое и используемое?
Вот вы тут холиварите (как-то вяло, но все же а тем временем никто до сих пор не задался вопросом, а с какой целью нужно учить школьников программированию. От этого вообще говоря напрямую зависит выбор языка. Цели могут сильно разниться, от "для общего развития, рассказать откуда программы берутся" до "профессионального программиста нужно растить с пеленок".
Для профессионального программирования — да. Для обучения школьников — нет. Почему вы никак не можете разделить энтепрайз и преподавание?
Почему паскаль то?Напомню тебе, я сам болею за хаскел, а про паскаль только сказал, что гуи там есть и я его щупал.
Если иностранные языки хочешь учить надо с древнегреческого начинать, так что ли? Где искать разнообразные примеры хорошего кода на паскале?Вообще, с примером хорошего кода на древнегреческом как раз проблем нет. Ну и вообще, если бы мне сказали, что в 20 лет я буду знать десять языков, я бы проголосовал за изучение греческого и латинского как основы, с которой проще доучивать прочие европейские языки.
Язык конечно хорош, но не лучше ли выбрать что то более широко обсуждаемое и используемое?Широко обсуждаемое и используемое актуально не для школьного образования, а для средне-специального.
Хоть для общего развития, хоть для подготовки профессионалов с нуля все равно придется учить алгоритмизации задачи, рассказывать о базовых элементах алгоритмов. Разумеется, на примерах сразу нужно закреплять пройденное, и чем ближе будет язык к естественному, тем проще будет ученикам вникнуть в суть.
Это далеко не так и основная цель школьного обучения, помимо кругозора, это заинтересовать школьника в предмете, что бы в будущем он захотел продолжить его изучать. И начиная с хаскеля можно оттолкнуть многих, кто потенциально мог бы изучать дальше, так что они после школы забудут програмирование как страшный сон.
Ну и лучше выбирать что то что люди смогут использовать в будущем, если они не станут прогрмистами. Поэтому в школе учат английский, а не древнегреческий.
Вот вы тут холиварите (как-то вяло, но все же а тем временем никто до сих пор не задался вопросом, а с какой целью нужно учить школьников программированию. От этого вообще говоря напрямую зависит выбор языка. Цели могут сильно разниться, от "для общего развития, рассказать откуда программы берутся" до "профессионального программиста нужно растить с пеленок".Вроде довольно очевидно что базовый курс для всех, а кому интересно факультативы или специализированные школы, как и с остальными предметами.
Ну и лучше выбирать что то что люди смогут использовать в будущем, если они не станут прогрмистами.Если люди не станут программистами, им плюсы нахуй не нужны. Английский же банально пригодится на отдыхе за рубежом.
Если люди не станут программистами, им плюсы нахуй не нужны. Английский же банально пригодится на отдыхе за рубежом.Так и я о том же, не плюсы ни паскаль ни хаскель, нужен простой наглядный скриптовый язык, в случае чего на котором можно написать что то простое.
Так и я о том же, не плюсы ни паскаль ни хаскель, нужен простой наглядный скриптовый язык, в случае чего на котором можно написать что то простое.И это?
Любой из них сравнительно лего освоить и на них многие школьники могут программировать что то инетерсное, а не только сортировки и бинарные поиски.
Вообще-то школьники не программируют никакие сортировки и поиски, а компиляция простых программ у Паскаля настолько быстрая, что разница со скриптами и не ощущается — жмешь Run и поехали.
Ruby, Python, JS, VB, Lua и еще несколько, выбирай что хочешь.Языки легкие для освоения, да. Но как на них разъяснить ученикам о типах данных? Зачем мы в столбик делим на 2, 8, 16 и выделяем остатки? Курс информатики — это не только язык.
Вообще-то школьники не программируют никакие сортировки и поиски, а компиляция простых программ у Паскаля настолько быстрая, что разница со скриптами и не ощущается — жмешь Run и поехали.Вопрос ведь не в компиляции. Хотя интерактивная консоль весьма наглядна.
Просто у этих языков ниша такая, на них довольно быстро и просто можно сделать простенькую игру, или сайт, или бота к игре, то что может заинтересовать школьников. Плюс есть много готового, что можно взять и переделать так как нравится тебе.
Языки легкие для освоения, да. Но как на них разъяснить ученикам о типах данных? Зачем мы в столбик делим на 2, 8, 16 и выделяем остатки? Курс информатики — это не только язык.Ну тебе в школе говорили что из отрицательных чисел брать корень нельзя, а потом оказалось что можно и как то это разъяснили.
простенькую игру, или сайт, или бота к игре,
Гаматься на компе — зло. От этого надо отучать с детства.
Ну и лучше выбирать что то что люди смогут использовать в будущем, если они не станут прогрмистами. Поэтому в школе учат английский, а не древнегреческий.да, потому что одного языка хватает. Что-то все программисты, которых я знаю, знают много языков и технологий. Так что если школьник собирается становиться программистом, то ему всё равно учить прорву языков, если он не собирается, тогда тем более не нужен "полезный и распространённый" язык. Не все школьники становятся программистами, школьная программа - это то, что положено отсыпать каждому подростку. Поэтому изучить что-нибудь основополагающее для него куда приятнее. Тем более что на хаскеле хорошо решаются школьные вычислительные задачки по физики, да и с вебом там есть чем поразвлекаться.
Если бы ты говорил, что все должны стать переводчиками, то учили бы все греческий. И вообще, английский язык - это исключение из всего школьного курса, единственный предмет полезный напрямую.
Ну тебе в школе говорили что из отрицательных чисел брать корень нельзя, а потом оказалось что можно и как то это разъяснили.Ну, на компьютере тоже нельзя, так что похуй.
Тем более что на хаскеле хорошо решаются школьные вычислительные задачки по физикиЭто еще почему? Что, уравнения школьной физики нельзя запрограммировать на обычных языках?
Я вот начинал с Basic и всем доволен.плз прокомментируй вот это высказывание
Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации
Просто Дейкстра ненавидел GOTO.
Это еще почему? Что, уравнения школьной физики нельзя запрограммировать на обычных языках?можно. Но можно и на хаскеле тоже. А вот для каких-нибудь игр, графических редакторов и прочих сложных систем хаскель уже не так подходит. Но их школьник всё равно запрогать не сможет.
Ruby, Python, JS, VB, Lua и еще несколько, выбирай что хочешь.Это все хлам.
Лого — выбор поколений!
Вроде довольно очевидно что базовый курс для всех, а кому интересно факультативы или специализированные школы, как и с остальными предметами.
Заявление, что "базовый курс для всех" совершенно не дает нам ответ на вопрос, а зачем мы его преподаем, какова цель. Не, ну если единственная цель состоит в том, чтобы быть "для всех" - то тогда ничего преподавать не нужно (а то еще кто-нибудь что-нибудь не поймет). Достаточно просто в расписание поставить и заставить ходить. Ну или разрешить гамать в машзале - сами будут ходить с удовольствием.
а зачем мы его преподаем, какова цельМб чтобы выявить тех, кому этот предмет интересен? Или иначе - дать детям попробовать себя в еще одной области деятельности, чтобы они могли найти себя в жизни.
Мб чтобы выявить тех, кому этот предмет интересен? Или иначе - дать детям попробовать себя в еще одной области деятельности, чтобы они могли найти себя в жизни.Фейл. Основной вопрос здесь — обучение алгоритмизации и разбиению задач на этапы.
а форточки как же?
Форточки — без проблем:
Мб чтобы выявить тех, кому этот предмет интересен? Или иначе - дать детям попробовать себя в еще одной области деятельности, чтобы они могли найти себя в жизни.Интересный конечно подход, но школа у нас профориентацией не занимается (не знаю, хорошо это или плохо, но уж как есть).
Вариант гораздо более перспективен: обучить навыкам формализации решения задачи в виде последовательности элементарных действий (далее "навык программирования"). Из особенностей этого навыка:
1. Это именно навык, не знания. Достигается практикой и тренировкой.
2. Он слабо зависит от языка программирования. Именно поэтому первый язык программирования человек учит с таким трудом, а начиная со второго - быстро и легко.
Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградацииЯ уважаю Дейкстру как учёного, но подобные фразы без сопутствующих данных имеют 0 смысла.
плз прокомментируй вот это высказываниеИмхо не надо грести всех под одну гребёнку. В обчных школах пусть изучают VB - им в жизни может пригодиться макрос для excel написать. А в спец-физмат-лицеях пусть изучают яву, или плюсы.
Да имхо Дейкстра просто путает корреляцию со следствием.
надо учить СC - такой язык, что книжки "Учимся прогать на С за 21 день" должны в себя включать полную перепечатку стандарта С89 (С99) с комментариями и примерами.
В С грабли разложены со средней плотность 2 грабли на строчку кода.
Лучше опустить С и сразу начинать с С++ - так граблей поменьше и наступаешь на них только в профессиональной разработке.
Я тоже начинал с бейсика, правда быстро перешёл на паскаль. Моя самая сложная (и вероятно самая длинная) программа на бейские - симулятор игры жизнь. Не жалею о и не раскаиваюсь в таком старте. Со многими ключевыми понятиями я познакомился именно в контексте бейсика (композиция, абстракция, корректность, документация хотя и не подозревал тогда что они заслуживают самостоятельных названий.
плз прокомментируй вот это высказывание
Дейкстра :
Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации
Я конечно заперт в рамках своего мировоззрения, но мне не кажется что мой мозг был покалечен бейсиком.
Не исключаю что написание большой программы на бейсике, либо старт с языка, который слишком много "прощает" (типа джаваскипта могут быть вредны.
dijkstra>> Как потенциальные программисты они подверглись необратимой умственной деградации
> плз прокомментируй вот это высказывание
Это высказывание датировано 1975 годом. За почти 40 лет экосистема, ммм, как бы это сказать, немного видоизменилась. Предполагаю, что с точки зрения тогдашнего Дейкстры, существенная доля сегодняшних профессиональных разработчиков "mentally *retarded* beyond hope of regeneration".
Другими словами, это он еще среднестатистического кода на php не видел.
Лучше опустить С и сразу начинать с С++ - так граблей поменьше и наступаешь на них только в профессиональной разработке.тостовато набрасываешь
быстро и просто можно сделать простенькую игру, или сайт, или бота к игре, то что может заинтересовать школьниковв таком случае надо сразу обучать прогать для мобилок!
бот для нормальной игры это совсем не школьная программа)
школьника расположенного к программированию заинтересуют алгоритмы и действия с памятью, задачки логические и тп.
сортировку пузырьком в школе пишут на ура в первом полугодии обучения.
а остальных не заинтересовать ни созданием игр/сайтов/ботов и ничем другим
по сути нормально когда в школе можно сразу попробовать пару языком и паскаль и си.
чтобы что-то пробовать, нужен механизм факультативов, чтобы всякие сомнительные для большинства школьников эксперименты выносить из основной программы.
Лучше опустить С и сразу начинать с С++ - так граблей поменьше и наступаешь на них только в профессиональной разработке.Лучше не учить школьников быть инвалидами, поэтому только питон.
Лучше не учить школьников быть инвалидами, поэтому только питон.Правильно, пусть будут инвалидами на самом деле!
Правильно, пусть будут инвалидами на самом деле!Не, если они хотят быть инвалидами, то пусть выберут сами, осознанно, уже имея представление о программировании.
Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградациибейсик времен дейкстры был совсем убог: goto, go sub, глобальные переменные, номера строк без отступов и прочий
1. ветвление, циклы итд вполне окей.
2. штуки типа IF...ELSE..END IF, SUB...END SUB ближе к человеческому языку, чем фигурные скобки
3. Область действия переменных
4. Классы
5. В VB.NET всякие лямбды прочая функциональщина.
6. IDE, которое будет расставлять им табы, чтобы они не писали код стенкой.
7. Когда станут офисным планктоном смогут скриптик в экселе написать
Тех кто умный можно отдельно учить сям (++ или # яве или хаскелю.
ps: моим первым языком было ЛОГО. Для младшеклассников тоже вполне вариант был, но не знаю как оно там сейчас.
штуки типа IF...ELSE..END IF, SUB...END SUB ближе к человеческому языку, чем фигурные скобкиEnd без begin — тупо, поэтому только Pascal!
Имеется достаточно много либ, чтобы и GUI слепить и что-то системное.
Lua мне больше всего нравится, но вот с либами у него беда.
Lua мне больше всего нравится, но вот с либами у него беда.У него далеко не только с либами беда.
c/c++ причем в qt
1. низкий порог вхождения.
Чтобы начать писать осмысленные программы как можно раньше, после объяснения базовых концепций типа 'переменная', 'функция', 'возвращаемое значение'. (В принципе, это можно доходчиво объяснить за одно-два занятия)
Кто советует низкоуровневые языки типа Си - вы серьезно собираетесь объяснять детям, как устроена память, что такое указатели и разыменование? без этого не написать ничего сложнее холлоу ворлд
Кто советует объектно-ориентированные языки (по типу message-passing - C++, C#, java etc) - как, например, объяснить ребенку, что такое класс и чем он отличается от объекта класса, или например почему метод принадлежит классу, а не метод выполняется с объектом этого класса? (это кстати далеко не каждый взрослый погромист понимает)
В принципе, чем меньше в языке требуется понять трудных понятий, чтобы писать более-менее сложные программы (не хеллоуворлды тем более он пригоден для обучения детей.
2. чтобы было интересно
Дети почти не знают слово 'надо', поэтому нужен хотя бы минимальный интерес к предмету, чтобы усвоить что-то.
Еще, современные школоло поголовно страдают дефицитом внимания, не могут концентрировать внимание даже на небольшой срок.
Значит, опять же, язык должен позволять относительно просто и безболезненно, без усвоения сложных концепций, писать программы, делающие интересные и красивые вещи (см п.1)
Плюс к тому, это значит, что язык должен быть очень лаконичным и с неперегруженным синтаксисом.
Очевидно, скриптовые языки в стопицот раз более лаконичны, чем компилируемые си-подобные. Пока ребенок пишет (точнее переписывает) 10 строчек кода на C++ или java вместо 1-2 команд питона, ему надоест и внимание переключится на что-то другое.
Короче, под эти требования неплохо подходят вышеупомянутые луа и лого для делей помладше, и вышеупомянутый питон (и неупомянутая схема) для детей постарше.
Все остальное - потом, когда дети научатся алгоритмически мыслить и строить программы.
ps: моим первым языком было ЛОГО. Для младшеклассников тоже вполне вариант был, но не знаю как оно там сейчас.Моим первым языком тоже был ЛОГО, и он вполне мог оказаться последним. В 7 (или 8?) классе возиться с какой-то сраной черепахой уже казалось издевательством.
В третьем классе было норм ^.^
на вскидку, выделяется четыре направления, которые могут быть интересны и полезны детям:
- автоматизация своих операций
- приложения для телефона
- верстка rich-текста
- web-приложения
имхо, первое стоит учить на примере питона
второе на примере c#
верстка - html + css
веб-приложение - это уже скорее факультатив из-за того, что там появляется еще обязательный js, который, имхо, неудобен для обучения.
хз, что удобнее для обучения C# или Питон на серверной стороне веб-приложений. У каждого есть свои плюсы и минусы.
начинать, имхо, стоит с простенького приложения для телефона (какая-нибудь мини-игра). Из этого легко сделать что-то, что ребенок сможет показывать другим и гордиться этим, что здорово повышает мотивацию.
с точки обучения, имхо, статически-типизированные языки полезнее. Потому что они требуют отслеживать в уме "потоки"-кода, и вычислять какой тип будет после какой операции.отслеживать потоки - последовательность выполнения операций, нужно учить независимо от типизации, это и есть алгоритмическое мышление. Имхо если и объяснять типизацию, то чуть позже и на самом базовом уровне. Не будешь же ребенку объяснять, чем float отличается от int, и почему 3.0 это float, а не int. А на базовом уровне, то объяснить, чем отличаются число, строка, список или массив, вполне можно на примере языка с любой типизацией.
на вскидку, выделяется четыре направления, которые могут быть интересны и полезны детям:Ну раз тут спрашивают про языки программирования, то верстка веб и текста это оффтопик, хотя конечно этому обязательно надо учить.
- автоматизация своих операций
- приложения для телефона
- верстка rich-текста
- web-приложения
имхо, первое стоит учить на примере питона
второе на примере c#
верстка - html + css
веб-приложение - это уже скорее факультатив из-за того, что там появляется еще обязательный js, который, имхо, неудобен для обучения.
хз, что удобнее для обучения C# или Питон на серверной стороне веб-приложений. У каждого есть свои плюсы и минусы.
Имхо, надо показывать задачки по всякому моделированию, генерации изображений, написанию мозгов к игрушечным роботам и т.д. Интересные вещи обычно сложные, можно написать программу самому, а детям предложить изменять/усложнять ту ее часть, которая делает самое интересное.
Например, написать движок для битвы роботов и предложить детям прописать поведение робота, потом можно устроить турнир. Имхо отличная идея, чем занять детей на полгода-год.
Веб-приложения - давайте избавим веб от детей!
Это даже не факультатив. js - имхо пример языка, который нужно держать как можно дальше от детей из-за его несистематичности (см http://wtfjs.com). Сначало нужно научить дисциплине кодинга на языках, которые не прощают много ошибок.
Короче, веб-программирование для обучения детей имхо табу.
начинать, имхо, стоит с простенького приложения для телефона (какая-нибудь мини-игра). Из этого легко сделать что-то, что ребенок сможет показывать другим и гордиться этим, что здорово повышает мотивацию.Вот это круто, да, но тут большую часть нужно будет сделать самому, а ребенку оставить только то, что он будет видеть непосредственно на экране.
Кто советует низкоуровневые языки типа Си - вы серьезно собираетесь объяснять детям, как устроена память, что такое указатели и разыменование? без этого не написать ничего сложнее холлоу ворлднам как-то объяснили.
веб-приложение - это уже скорее факультатив из-за того, что там появляется еще обязательный js, который, имхо, неудобен для обучения.садишься на питоновский фреймворк nagare и не думаешь о js, потому что он его из питоновского кода генерит.
отслеживать потоки - последовательность выполнения операций, нужно учить независимо от типизации, это и есть алгоритмическое мышление.имхо, php-шники этим не заморачиваются.
Соответственно, у меня есть подозрение, что в таком же стиле легко пишется и на питоне.
тут большую часть нужно будет сделать самомуэто делается один раз. Т.е. для обучения берется однажды разработанный каркас приложения, а дальше дети в него пихают управление спрайтами и реакцию на нажатия.
имхо, php-шники этим не заморачиваются.
Соответственно, у меня есть подозрение, что в таком же стиле легко пишется и на питоне.
Ну дык на то и учитель, чтобы научить как надо. Делать как phpшники сами всегда научатся
это делается один раз. Т.е. для обучения берется однажды разработанный каркас приложения, а дальше дети в него пихают управление спрайтами и реакцию на нажатия.Ну я это и имел ввиду.
Но мне больше нравится аналогичный вариант битвой с роботов, сам пишешь каркас, им только действия прописывать. Соревновательная мотивация для подростков это круче, чем вау-эффект. Можно под смартфоны сделать - двойной профит будет.
Не, ну я охотно верю, что вам объяснили, и что некоторые, включая тебя, даже поняли. но:Кто советует низкоуровневые языки типа Си - вы серьезно собираетесь объяснять детям, как устроена память, что такое указатели и разыменование? без этого не написать ничего сложнее холлоу ворлднам как-то объяснили.
1. ты не все
2. это было давно
3. и, вероятно, в старших классах
сейчас средний школьник хорошо если решает квадратное уравнение к 11-му классу.
и неупомянутая схема
после объяснения базовых концепций типа 'переменная', 'функция', 'возвращаемое значение', 'замыкание', 'продолжение', 'задержка', 'конечное дерево синтаксиса'Я только "за". Сразу учить хорошим языкам, чтобы потом джава-макаки вымерли как класс, не сочтите за каламбур. Моисей, отведи нас в пустыню.
В 7 (или 8?) классе возиться с какой-то сраной черепахой уже казалось издевательством.Вот так и гибнут падаваны, не доучившись до джедаев.
'продолжение', 'задержка', 'конечное дерево синтаксиса'Да, в схеме эти концепции есть (и кстати довольно удобно объясняемы в схеме но даже в великом и могучем SICP вполне обошлись без них для объяснения приличного количества задач. Тем более для обучения азам алгоритмического мышления они побоку.
Реальная проблема схемы для обучения в малом количестве батареек и подключаемых биндингов, с которыми можно делать красивости.
Вообще, имхо, для первого языка в школе питон один из лучших вариантов. даже первый курс МИТа уже давно перевели на питон со схемы.
3. и, вероятно, в старших классаха имеет смысл преподавать программирование раньше?
Имеет.
Тогда можно и производные с интегралами туда же передвинуть. Точно такая же сложность абстракции.
Тогда можно и производные с интегралами туда же передвинуть. Точно такая же сложность абстракции.Вообще-то нет. Производные и интегралы предполагают введение понятия предела, сложность абстракции которого несоизмеримо выше, чем у алгоритмизации.
Ага. Примитивная рекурсия - это проще чем предел последовательности.
Очевидно, что начинать надо не с нее.
сейчас средний школьник хорошо если решает квадратное уравнение к 11-му классу.зачем этим школьникам программирование?
зачем этим школьникам программирование?В нашем регионе (владимирская область) это уровень >95% школьников. Три года занимаюсь репетиторством с детьми из разных школ, не встречал ни одного старшеклассника, который может самостоятельно думать, простейшие вещи усваивают со скрипом. Когда я был школолом, это был уровень двойки, то что сейчас тройка-четверка.
Причем это именно о старшеклассниках, более мелкие дети схватывают то же самое намного легче и пытаются думать. Могу сделать вывод, что современная средняя школа отучает думать и интересоваться чем-либо, короче калечит детей. Надо что-то делать, не? Старшеклассников исправить уже малореально, но почему бы не поучить мелких детей проганию на доступном им уровне, заинтересовать их чем-ть?
Три года занимаюсь репетиторством с детьми из разных школ, не встречал ни одного старшеклассника, который может самостоятельно думать, простейшие вещи усваивают со скрипом.Ну так только таким репетитор и нужен обычно.
Ну так только таким репетитор и нужен обычно.Распространенное заблуждение.
Щас с репетитором занимаются поголовно все старшеклассники (де-факто платное образование т.к. самостоятельно к ЕГЭ фиг подготовишься, нужна систематичность. В школе вся подготовка к ЕГЭ в школах у нас сводится к тому, что раз в две недели дают вариант, потом его проверяют, почти без разбора.
Так что с репетиторами занимаются и отличники, за оочень редким исключением. Это не только мои наблюдения, у меня есть довольно подробная статистика на этот счет (школы де-факто уже сильно интегрированы с разными репетиторскими конторами доп.образования)
1. низкий порог вхождения.Полностью поддерживаю.
Чтобы начать писать осмысленные программы как можно раньше, после объяснения базовых концепций типа 'переменная', 'функция', 'возвращаемое значение'. (В принципе, это можно доходчиво объяснить за одно-два занятия)
Кто советует низкоуровневые языки типа Си - вы серьезно собираетесь объяснять детям, как устроена память, что такое указатели и разыменование? без этого не написать ничего сложнее холлоу ворлдUse Pascal, Luke!
Собственно очень низкий порог вхождения как раз и делает этот довольно бесполезный и не очень удобный в реальном программировании язык столь привлекательным для обучения. Даже понятие "функция" можно отложить на потом, и просто с переменными уже можно что-то писать простенькое.
Плюс завидно низкое количество неявностей (включая неявное преодразование типов, что не очень удобно при реальном программировании но здорово помогает не выстрелить себе в ногу на начально уровне).
Плюс к тому, это значит, что язык должен быть очень лаконичным и с неперегруженным синтаксисом.А вот с этим я сильно не согласен. Лаконичность питона достигается за счет большого числа синтаксических конструкций. То есть это программа на питоне лакончиная, а вот синтаксис (то есть его описание) - как раз наоборот очень раздутое. В результате ты бросаешь школьников против такого большого, сложного и необъятного для них языка.
Очевидно, скриптовые языки в стопицот раз более лаконичны, чем компилируемые си-подобные. Пока ребенок пишет (точнее переписывает) 10 строчек кода на C++ или java вместо 1-2 команд питона, ему надоест и внимание переключится на что-то другое.
Опять таки - паскаль. Минимум синташугара, все конструкции реально перечислить за очень небольшое число занятий.
В качестве итога. Если цель обучения программированию состоит в том, чтобы всех подряд школьников научить основам "алгоритмического мышления" (или "навык программирования" как я его назвал ранее) - то паскаль отличный выбор.
А вот с этим я сильно не согласен. Лаконичность питона достигается за счет большого числа синтаксических конструкций. То есть это программа на питоне лакончиная, а вот синтаксис (то есть его описание) - как раз наоборот очень раздутое. В результате ты бросаешь школьников против такого большого, сложного и необъятного для них языка.Синтаксис питона максимально приближен к псевдокоду, раздутый и неинтуитивный - это не про него.
Ничего не имею против паскаля, кроме того, что он морально устарел, и в комплекте мало батареек для всяких демонстрашек и красивостей по сравнению с пистоном (следствие разных размеров комьюнити). Ну и статическая типизация - имхо усложняет понимание, хотя тут могут поспорить.
Между паскалем и схемой (два традиционных обучающих языка) я бы однозначно выбрал схему, но и она к сожалению сейчас проигрывает питону.
Очевидно, что начинать надо не с нее.Ну так и интегралами пользоваться можно, не зная понятия предела. А если использовать высоуровневый язык какого-нибудь символьного калькулятора, то даже таблички интегралов учить не нужно.
В школе вся подготовка к ЕГЭ в школах у нас сводится к тому, что раз в две недели дают вариант, потом его проверяют, почти без разбора.Ну, это хуевые школы.
Ну так и интегралами пользоваться можно, не зная понятия предела.Это если цель — выучить таблицы интегралов, а не смысл понятия интеграла.
Три года занимаюсь репетиторством с детьми из разных школ, не встречал ни одного старшеклассника, который может самостоятельно думатьМожно я переформулирую?
Три года работаю в вытрезвителе, не встречал еще трезвого человека.
Три года работаю в больнице, не встречал еще никого здорового.
Три года работаю в секс-шопе, одни извращенцы кругом!
Это если цель — выучить таблицы интегралов, а не смысл понятия интеграла.то же самое я могу сказать и про программирование.
Минимум синташугара, все конструкции реально перечислить за очень небольшое число занятий.Не, ну схема-то вне конкуренции тут.
Три года занимаюсь репетиторством с детьми из разных школ, не встречал ни одного старшеклассника, который может самостоятельно думатьОкей, а ты знаешь много детей, которые не учатся в общеобразовательных школах?
Можно я переформулирую? :4u:
Я конечно понимаю, тут у нас мэгэу, илита, народ позаканчивал всяких сунцов, лицеев и спецшкол, олимпиадники бывшие. Но блин, речь о самых обычных школоло, когда детям поголовно насрать на учебу, а учителям насрать на детей, и все "вдруг" спохватываются, что через полгода-год надо сдавать ЕГЭ, а мало кто понимает программу седьмого класса.
Я же сказал выше, что видел статистику результатов ЕГЭ по школам города и района, кто на что учился в школе, кто занимался с репетитором, кто на сколько баллов написал.
Сними розовые очки, это реалии нашей средней школы.
Я просто предположил, что у тебя biased sampling, а ты с чем-то споришь.
когда детям поголовно насрать на учебуможет это не проблема школ?
Лаконичность питона достигается за счет большого числа синтаксических конструкций.имхо, это миф что малое кол-во синтаксических конструкций + их комбинации учить проще, чем большое кол-во синтаксических конструкций.
Во-первых, если было бы верно обратное, то Форт, BrainFuck и т.д. учить было бы проще всего.
Во-вторых, мозг(как всякая нейронная сеть) лучше занимается задачами распознавания, чем комбинаторикой. Мозг умеет с легкостью распознавать десятки тысяч плохо формализуемых понятий, но при этом ему с трудом удается перемножить два двухзначных числа (а это всего лишь комбинация из 4 элементов)
ps
Конечно, же так же верно, что не всякий большой набор синтаксических конструкций хорош для запоминания. Для того, чтобы его было легко учить - он должен соответствовать куче требований.
По-моему несправедливо что модератор не игнорится в модерируемом разделе.
напиши скрипт! или страдай )
то же самое я могу сказать и про программирование.
Что именно? Что смысл изучения программирования в школе не в зубрежке языка? Так я и так это знаю и настаиваю здесь на этом.
Но блин, речь о самых обычных школоло, когда детям поголовно насрать на учебуИзбавь, пожалуйста, софтверную индустрию от таких. Чем меньше таких будет писать софт, тем софт будет лучше. И мир будет лучше.
Лучше учить. Дешевле в итоге выйдет. Иначе так и будут воспринимать компьютеры как мэджик; а так в удачном случае даже алгоритмизации немножко научатся, полезно в повседневной жизни.
Нифига не дешевле. Еще Брукс писал, добавление в проект ненужных людей только увеличивает сроки проекта. Так и происходит на реальных проектах. То же самое в индустрии в целом, понабилось всякой пидарасни, и сильно замедляет прогресс.
а после уроков физкультуры он в сборную команду обязательно попадает что ли?
Ну вот мне как пресловутому человеку в софтверной индустрии удобно, когда взаимодействующие со мной люди (дизайнеры, писальщики ТЗ) понимают, что такое программирование. Или там сисадмину проще взаимодействовать с компьютерно грамотными бухгалтерами. То есть эти люди не будут, конечно, писать программы, но их понимание компьютеров и программирования положительно скажется на индустрии в целом.
может тогда им преподавать компьютерную грамотность, а программирование оставить для старших классов?
да лучше сразу на старшие курсы, чо уж.
Ну вот мне как пресловутому человеку в софтверной индустрии удобно, когда взаимодействующие со мной люди (дизайнеры, писальщики ТЗ) понимают, что такое программирование.как говорил наш семинарист по математике, иллюзия понимания хуже непонимания
Только сначала научить английскому хотя бы в размере для чтения манов
Как вариант, ProcessingJS.как там Go To Definition? Если нет, то в топку.
И да, везде, где нет Go To Definition не подходят для обучения компьютеру, ибо противоречит самой сути компьютера.
везде, где нет Go To Definition не подходят для обучения компьютеру, ибо противоречит самой сути компьютера.Пост для сбора минусов?
Как вариант, ProcessingJS.Я в этом треде ссылался на статью Learnable Programming, которая как раз критикует ProcessingJS.
Какому языку учить в школе?Вот зародыш такого языка.
http://quorumlanguage.com/evidence.php
http://dx.doi.org/10.1145/2534973
Recent studies in the literature have shown that syntax remains a significant barrier to novice computer science students in the field. While this syntax barrier is known to exist, whether and how it varies across programming languages has not been carefully investigated. For this article, we conducted four empirical studies on programming language syntax as part of a larger analysis into the, so called, programming language wars. We first present two surveys conducted with students on the intuitiveness of syntax, which we used to garner formative clues on what words and symbols might be easy for novices to understand. We followed up with two studies on the accuracy rates of novices using a total of six programming languages: Ruby, Java, Perl, Python, Randomo, and Quorum. Randomo was designed by randomly choosing some keywords from the ASCII table (a metaphorical placebo). To our surprise, we found that languages using a more traditional C-style syntax (both Perl and Java) did not afford accuracy rates significantly higher than a language with randomly generated keywords, but that languages which deviate (Quorum, Python, and Ruby) did. These results, including the specifics of syntax that are particularly problematic for novices, may help teachers of introductory programming courses in choosing appropriate first languages and in helping students to overcome the challenges they face with syntax
> всяких сунцов, лицеев и спецшкол, олимпиадники бывшие.
> Но блин, речь о самых обычных школоло
Вообще-то, изначальный вопрос стоял про саратовский ФТЛ,
это уровень значительно повыше СУНЦа. По крайней мере, был.
---
"Юношеству занятий масса.
Грамматикам учим дурней и дур мы."
> Дети почти не знают слово 'надо', поэтому нужен хотя бы
> минимальный интерес к предмету, чтобы усвоить что-то.
> Значит, опять же, язык должен позволять относительно просто и
> безболезненно, без усвоения сложных концепций, писать программы,
> делающие интересные и красивые вещи
Я всё-таки повстречал людей, которые занимаются обучением
программированию десяти-двенадцатилетних. Они утверждают,
на основании своего опыта, что Scratch очень хорош.
---
"А я обучался азбуке с вывесок,
листая страницы железа и жести."
Оставить комментарий
uncle17
У нас в ФТЛ до сих пор учат паскалю. Правильно, нет?