|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Какой язык программирования надо втюхивать в школе
Author |
Message |
forthuser
Senior
Joined: 12 Jan 2023 07:26 Posts: 165
|
Да, немного ошибся в написании слова и не исправил волюнтаристскийНо, если бы не этот оксюморон, то вряд ли бы Вы сколлапсировали своим откликом на выявленную ошибку словоуотребления? Дети ака школьники - это, полагаю, обобщённо или замечание на мой пост? (Лол
|
03 Feb 2023 13:40 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Интересно, что сейчас русский язык взялись преподавать на 1 курсе ВУЗов... Очевидно, что школа и дети с одним русским языком уже не справляются... И это при наличии умного Ворда! Да и интернет-средства сейчас проверяют грамотность!
_________________ iLavr
|
03 Feb 2023 16:02 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Ну т.е. мы плавно приходим к тому, что втюхивать в школе надо русский язык Язык программирования русскоговорящих мозгов
|
03 Feb 2023 18:13 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну... я считаю, что человек с образованием на родном-то языке должен эпистолярно выражаться грамотно... А то получится как в известном анекдоте:" Вы по-русски-то грамотно писать не научились, а уже рассуждать о языках высокого уровня лезете!"
_________________ iLavr
|
03 Feb 2023 18:59 |
|
|
Andnor
Fanat
Joined: 01 Jan 2023 11:37 Posts: 80
|
Мало. И у C тоже есть существенные недостатки по сравнению с Паскалем, которые я упоминал выше: - Нет строкового типа. Вместо него указатель на char и арифметика указателей, которая замаскирована синтаксическим сахаром в виде [ ].
- Нет массивов. Только указатели.
- Менее строгая типизация, например тип однобайтного целого не отличается от типа содержащего один символ.
- Даже самая простейшая программа Hello World уже содержит множество малопонятных начинающему конструкций. Чтобы их объяснить нужно сразу же погрузиться в указатели и прочие интимные детали машинного кода.
- Нет деления на функции и процедуры. На примере C очень трудно объяснить важнейшее в программирование понятие "побочного эффекта", поскольку фактически всё программирование на C состоит из побочных эффектов. Даже присваивание — это не оператор, а операция.
- Слишком легко написать совершенно нечитаемый код вроде i += i++ + ++i;
- Множество ситуаций где есть undefined behavior, в этом случае написанный и отлаженный на одной системе код внезапно не работает на другой.
- Обязательность ';' везде. Не знаю, как у вас, но у меня это самая частая причина, почему только что написанная программа не компилируется. Что мешало сделать перевод строки терминатор оператора, а ; использовать только как их разделитель если несколько операторов в одной строке совершенно непонятно. В том же бейсике так и сделано, хотя символ (:) выбран неподходящий. В паскале эту точку с запятой хотя бы перед end можно не писать.
Кстати, отсутствие строкового типа — это очень существенный недостаток в современном применении, когда любой символ кроме всего лишь 97 занимает несколько байт и соответсвенно любой символ это уже не char, а string. И строки с терминатором NUL не только служат источником множества уязвимостей, но ещё и не позволяют включить в состав стороки собственно нулевой символ, а это часто нужно. И ладно, программист-то как-то с этим может и справится, например введёт собственный тип состоящий из структуры с длиной строки и собственно областью памяти под char-ы, а что делать пользователю? Например, что если нужно передать строку, содержащую нулевой символ в параметре программы? В общем C — это язык, написанный хакерами для хакеров. Для хакерства он хорошо подходит, а вот для начального изучения программирования — очень плохо. | | | | Lavr wrote: В этом и есть его неудобство и удалённость от естественного языка. Это всё равно как говорить в стиле магистра Йоды: « Должен быть назван твой страх перед тем, как прогнать его». В машинном коде как раз всё можно делать более свободно. | | | | |
Так от естественного языка или от машинного? В естественном языке математическая функция, которая по значению аргументов возвращает результат и процедура, которая что-то делает — это разные вещи. Это ситхи всё возводят в абсолют. Структурное программирование — это хорошо, а когда для передачи управления в высокоуровневом языке есть только goto — не очень. С другой стороны, есть ситуации, когда без goto код получается более громоздким и менее понятным. Например, goto удобен для выхода из нескольких вложенных циклов и если перед завершением функции/процедуры, надо вначале освободить используемые ей ресурсы. Тогда код для освобождения ресурсов можно один раз написать после метки в конце процедуры и при необходимости её завершить из нескольких мест, переходить на него. А вот в других ситуациях лапша из goto трудночитаема. Не стоит стремиться к чистой структурности или чистой goto-ичности, главное — это читаемость и понятность кода. Обычно (почти всегда) goto её ухудшает, что собственно и заметил Дейкстра, доказав что goto не является обязательным. Но иногда в редких случаях улучшает — тогда почему бы и goto? Ну да, давай теперь сравнивать современный язык программирования общего назначения с древним скриптоязыком для MS-DOS, куда он был включен только от безысходности... Но ради интереса, всё же, что там конкретно так тебя восхитило? Может примеры кода покажешь? А то я хоть как-то на QBasic и писал, но уже забыл всё.
|
03 Feb 2023 22:31 |
|
|
Shigure
Fanat
Joined: 20 Jan 2015 03:52 Posts: 79
|
Вопрос, а что считать началом изучения программирования для школьников ? Минус кучи учебников в том, что сразу даётся огромное число справочного материала. Если рассказывают про типы переменных, то наверняка будет здоровая таблица из десятка и более названий. Но, при этом, можно по-началу обойтись только целыми и дробными числами. Как минимум, до конца изучения условий, циклов, функций, массивов.
Очень мало уделяют внимания изначальному рациональному наименованию переменных, функций, форматированию кода, разбития на логические блоки.
В итоге, куча школьников называет переменные в своих проектах а, а1, аа и считает, что так нормально, даже с комментарием. Появляются любители в одном блоке {} и обрабатывать массивы и печатать результат на экран.
Я щас скажу вообще крамольную мысль - изучение указателей и динамической памяти можно сильно отложить для школьников. Ибо алгоритмика, базовые конструкции языка и стиль написания прекрасно учатся и без них.
Нужно учить не только языку и егоконструкциям, а умению переводить мысли с родного языка в код. Выбор переменных, представление задачи в виде структур данных, заранее учитываемые возможные изменения в проекте - вот, что должно быть фундаментом, а не максимальный за учебное время охват возможностей языка.
_________________Коллекция советской ферритовой памяти www.mirebs.com
|
04 Feb 2023 01:13 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Вот и я о том-же. Понятно, что есть некие индивидуумы, которые и в школьные годы способны освоить практически любой язык программирования. Но таких очень мало и не следует втюхивать всем программирование. Мне пришлось однажды замещать своего хорошего знакомого в школе, который преподавал информатику в 9-х классах, и я на личном опыте убедился в том, что из 40 человек в классе лишь двое-трое имеют способности (и желание) к изучению этого предмета. Мы же не станем задаваться подобным вопросом, если возникнет прецедент освоения какого-либо языка программирования воспитанником детского сада.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
04 Feb 2023 06:07 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Мне кажется, что в школах не загоняются такими проблемами, а исходят из своих реальных возможностей. Что есть в наличии, тому и учат... Как-то я не наблюдаю очереди в школы талантливых программистов. Это только эксцентричный богатый человек Стив Возняк мог купить для школы своей дочери компьютерный класс своих же "Эпплов" и пойти работать в этот класс преподавателем... Кстати, за такой поступок я его вдвойне уважаю... А вот когда нам очень неожиданно решили втюхать Паскаль 3.0, как "язык будущего", ситуация прозрачно разрешилась, когда мы прослушали курс лекций и пришли на практику... Откуда-то неожиданно свалился компьютерный класс из 10 "Ямах" с этим самым Паскалем... Значит - если есть материальная база, очередной "язык будущего" надо учащимся втюхать!
_________________ iLavr
|
04 Feb 2023 08:37 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
У си недостатков нет - если тебе видятся недостатки в каком-то месте, то ты недостаточно изучил данный момент - учи дальше...
|
04 Feb 2023 09:38 |
|
|
Andnor
Fanat
Joined: 01 Jan 2023 11:37 Posts: 80
|
Ну да, вместо того, чтобы прочитать аргументы, что-то ответить по пунктам просто заявить, что недостатков нет? http://cmustdie.com/Вот один товарищ даже целый сайт сделал Речь идёт о школьниках, напомню.
|
04 Feb 2023 12:04 |
|
|
imsushka
Senior
Joined: 01 Jan 2022 04:34 Posts: 172 Location: USSR, Tashkent
|
гы гы гы у паскаля недостатков нет - если тебе видятся недостатки в каком-то месте, то ты недостаточно изучил данный момент - учи дальше...
|
04 Feb 2023 12:20 |
|
|
askfind
Doomed
Joined: 04 Jan 2016 09:15 Posts: 657 Location: Russia, S.- Peterburg
|
[1] Python (МФА: [ˈpʌɪθ(ə)n]; в русском языке встречаются названия пито́н[23] или па́йтон[24]) — высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью[25][26], ориентированный на повышение производительности разработчика, читаемости кода и его качества.
[2] Go (часто также Golang) — компилируемый многопоточный язык программирования.
_________________ "Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
|
04 Feb 2023 13:09 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Под "древним скриптоязыком для MS-DOS, куда он был включен только от безысходности", я так понимаю, вы учебный язык Паскаль имели в виду? Ну я бы не сказал, что от "безысходности", просто его конструировали именно как язык для обучения, не более того...
_________________ iLavr
|
04 Feb 2023 16:03 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ага. Вот если в языке надо всё это строго объявлять, то придётся для начала рассказать, что из себя в компьютере представляют эти "целые" и "дробные" числа. Тут-то у детей повянут уши и завянет весь интерес к программированию и алгоритмам.
_________________ iLavr
|
04 Feb 2023 16:18 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
ну если ещё вспомнить, что паскаль как язык для серьёзной работы давно помер...
|
04 Feb 2023 19:57 |
|
|
Who is online |
Users browsing this forum: No registered users and 74 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|