Игры — это круто, но от силы до 7-8 класса. И мне это представляется наиболее подходящим методом обучения в младших классах — планирование выполнения, аналогии с переменными (положить что-то в миску, добавить в эту миску еще что-то, перемешать, положить в тарелку) все в игровом формате. Затем прописывание явных наборов команд. Потом уже и к собственно современным программам переходить.
Эта цель универсальна для любого предмета — чтобы детям понравилось, захотелось еще и еще изучать. Если бы все педагоги старались ее придерживаться, страшно подумать насколько бы мы обошли по уровню образования всех. Однако преподавателям приходится балансировать на границе между «это скучно, но зато все верно» и «это весело, но слишком поверхностно и далеко от полного понимания».
Но чем в таком случае JS лучше псевдокода или паскаля или питона? Выходит, что если хороший учитель, то разницы на чем он будет учить детей программировать — нет. Если же он плохой, то никакой даже самый адаптированный для школьников язык не спасет ситуацию.
Мне вот сейчас стало интересно — а с какой целью автор поста устроил этот опрос?
Нет, конечно. Я ведь изначально выразил мнение, что JS не очень удачный выбор.
Выше много говорили про потребность в том, чтобы с ранних лет прививать аккуратность. JS позволяет не задавать тип переменных. Если привыкнут, потом тяжело будет объяснять, что в с++ нельзя просто написать var x=2, да и вообще концепция типов многим возможно будет непонятна.
Все верно. Я лишь отметил, что предложенный вариант языка (на мой не совсем опытный взгляд) в большей степени может привести к риску появления неверных представлений о программировании и информатике у школьников.
И снова — раз уж речь зашла о преподавателях. Почему исключается вариант, что вполне адекватный преподаватель научит нормально алгоритмически мыслить на паскале, придумывать алгоритмические решения для задач, при этом постоянно напоминая, что язык — не более чем инструмент. А затем, ближе к концу школы покажет как перейти с одного языка на другой. С этой позиции как раз таки было бы разумно не останавливаться на каком-то одном языке (для тех, кому хочется стать программистом). Но начинать азы с сишника — жестоко.
Сказать про #include что он «подключает файл» — это как-то напоминает магические действия «просто скажи сим-салабим и программируй». Так ли это хорошо в преподавании?
Следует полагать, что работает такая логика «если бы нам в школе стали сразу преподавать этот сложный сишник, я бы в вузе его сразу осилил»? А вариант «если бы в школе стали преподавать этот сложный сишник, я бы возненавидел информатику и пошел на хирурга» почему-то незаслуженно исключается.
Простота — это хорошо. Как бы потом горе-программисты не стали думать, что все программы в браузере запускаются. Кроме того, если я верно себе представляю, с помощью исключительно JS не используюя хтмл тяжело организовать ввод-вывод данных.
Трудное детство — это не аргумент при выборе языка. Здесь никто не говорит про язык, который жизненно будет необходим школьнику в дальнейшем. Больше половины все равно больше никогда на компьютере ничего кроме браузера, пасьянса и ворда не откроют.
Меня в детстве учили на бейсике. В первом ВУЗе учили на паскале. Учили плохо. Я не понимал для чего эта ерунда, добросовестно писал примитивные программки, считавшие частичную сумму ряда, рисовавшую что-то на экране. В другом универе мы на паскале реализовывали алгоритмы из соответствующего курса, а еще через пару лет стало ясно, что это самый подходящий язык для начального обучения людей, которые ничего раньше не имели общего с программированием. Достаточно строгая типизация, жесткая структура программы не заставляют изучающих думать о том, о чем им думать пока не нужно.
Попытайтесь объяснить школьнику или новообразовавшемуся студенту работу программы, которая на сишнике считывает два числа и выводит сумму. И при этом избежать шаблонных отмазок «это вы потом пройдете, это вам пока не нужно знать» и т.д. И посмотрите насколько он понял все это. А то что можно char целочисленной переменной присвоить, что в си bool вообще нет, а в с++ любое ненулевое число означает true, многим сразу не понятно и вызывает кучу ошибок на первых этапах. Я уж молчу про хакерские приемы вроде копирования строк с помощью одного while.
Какой бы язык не брать, все равно его придётся сокращать, урезать. Для этих целей функциональные языки вообще не подходят. А уж многочисленные споры выше про среды разработки, досы и прочие воспоминания о тяжелом детстве вобще не к месту. Вопрос был не об этом. Для любого языка при большом желании можно найти или разработать школьник-фрэндли среду.
Какие, простите, у сайта МинОбороны сто тысяч посетителей? Это не твиттер, не фейсбук и даже не Вконтакте. Поэтому аргументы относительно надежности серверов за такие деньги выглядят смешно.
Смешанное ощущение от статьи. Вроде как очевидно все, и даже верно. Но ничего нового. В большинстве языков есть средства для реализации обязательного возврата занятого ресурса (выше уже упоминались). Делать еще более навороченные бессмысленно — тогда уж лучше на уровне операционнной системы вынуждать процессы освобождать ресурсы.
Не любую функцию можно обратить, усложнять семантику языка ряди нескольких случаев, на мой взгляд, нерационально. А уж как ухудшится читабельность подобного кода, если вместо sqrt будут писать &.:*.
| Что самое занятное, и поныне находятся люди, готовые с пеной у рта утверждать: «Эволюция — ложь!» Ваша программа, несмотря на её простоту, прекрасно демонстрирует базовые принципы естественного отбора.
Аргумент на самом деле с двойным дном. Программа-то да, действительно демонстрирует естественный отбор и многие фичи теории Дарвина. Но у нее есть создатель, который ее написал, ее отладил, придал нужные значения параметрам. Чем не креационизм в чистом виде?
Но чем в таком случае JS лучше псевдокода или паскаля или питона? Выходит, что если хороший учитель, то разницы на чем он будет учить детей программировать — нет. Если же он плохой, то никакой даже самый адаптированный для школьников язык не спасет ситуацию.
Мне вот сейчас стало интересно — а с какой целью автор поста устроил этот опрос?
Выше много говорили про потребность в том, чтобы с ранних лет прививать аккуратность. JS позволяет не задавать тип переменных. Если привыкнут, потом тяжело будет объяснять, что в с++ нельзя просто написать var x=2, да и вообще концепция типов многим возможно будет непонятна.
Меня в детстве учили на бейсике. В первом ВУЗе учили на паскале. Учили плохо. Я не понимал для чего эта ерунда, добросовестно писал примитивные программки, считавшие частичную сумму ряда, рисовавшую что-то на экране. В другом универе мы на паскале реализовывали алгоритмы из соответствующего курса, а еще через пару лет стало ясно, что это самый подходящий язык для начального обучения людей, которые ничего раньше не имели общего с программированием. Достаточно строгая типизация, жесткая структура программы не заставляют изучающих думать о том, о чем им думать пока не нужно.
Попытайтесь объяснить школьнику или новообразовавшемуся студенту работу программы, которая на сишнике считывает два числа и выводит сумму. И при этом избежать шаблонных отмазок «это вы потом пройдете, это вам пока не нужно знать» и т.д. И посмотрите насколько он понял все это. А то что можно char целочисленной переменной присвоить, что в си bool вообще нет, а в с++ любое ненулевое число означает true, многим сразу не понятно и вызывает кучу ошибок на первых этапах. Я уж молчу про хакерские приемы вроде копирования строк с помощью одного while.
Какой бы язык не брать, все равно его придётся сокращать, урезать. Для этих целей функциональные языки вообще не подходят. А уж многочисленные споры выше про среды разработки, досы и прочие воспоминания о тяжелом детстве вобще не к месту. Вопрос был не об этом. Для любого языка при большом желании можно найти или разработать школьник-фрэндли среду.
А вообще, холиварная тема.
http://www.class-central.com/
Там же в новостях было указано, что профессор Дж. Ульман тоже хочет курс по теории автоматов к весне.
Не любую функцию можно обратить, усложнять семантику языка ряди нескольких случаев, на мой взгляд, нерационально. А уж как ухудшится читабельность подобного кода, если вместо sqrt будут писать &.:*.
Всего лишь хотел сказать, что подобный пример не убедит тех, кто "готов с пеной у рта утверждать: «Эволюция — ложь!»"
Аргумент на самом деле с двойным дном. Программа-то да, действительно демонстрирует естественный отбор и многие фичи теории Дарвина. Но у нее есть создатель, который ее написал, ее отладил, придал нужные значения параметрам. Чем не креационизм в чистом виде?