Re[10]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 12:57
Оценка:
NB>>> у тебя не получилось
ЭФ>>Твои доводы были неконкретны.
NB> в каком именно месте?

Не написано, что именно не получилось. Может быть сейчас уже получается.
Re[11]: Кто интересовался, как в 21 веке учить детей программированию?
От: night beast СССР  
Дата: 28.06.23 13:03
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

NB>>>> у тебя не получилось

ЭФ>>>Твои доводы были неконкретны.
NB>> в каком именно месте?

ЭФ>Не написано, что именно не получилось. Может быть сейчас уже получается.


на получилось понять написанное.
если у тебя не получилось, то у ребенка тоже может не получиться.
это вызовет расстройство, депрессию и нежелание изучать программирование.

ты так сильно не любишь детей?
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: m2user  
Дата: 28.06.23 13:13
Оценка:
scf>>Всё, как мы любим — рисование картинок кодом с минимальной обвязкой. Как старый бейсик, но javascript и в браузере.
O>javascript должен быть допустим только после 21 года и только в специальных огороженных местах за чертой города.

Processing поддерживает несколько вариантов синтаксиса, а не только JS.

Processing was initially released with a Java-based syntax, and with a lexicon of graphical primitives that took inspiration from OpenGL, Postscript, Design by Numbers, and other sources.
With the gradual addition of alternative progamming interfaces — including JavaScript, Python, and Ruby — it has become increasingly clear that Processing is not a single language, but rather, an arts-oriented approach to learning, teaching, and making things with code.

Re[7]: Кто интересовался, как в 21 веке учить детей программированию?
От: Osaka  
Дата: 28.06.23 13:15
Оценка: +1
vsb>1. Паскаль прост для старта. Конкуренты ему — в этом плане питон, бейсик. Все остальные языки сложны.
Чем сложнее вывод на консоль "хелловорлд" в C# по сравнению с паскалем? Вроде абсолютно одинаково (ну кроме изучения/забывания ненужных знаний устаревшего паскалевого IDE)
С каких конкретно задач C# становится менее "прост для старта"?
vsb>2. Паскаль очень компактный язык, если оставаться примерно в виртовском подмножестве. Питон улетает со свистом. Да и в принципе все промышленные языки. Изучить паскаль можно за месяц от начала до конца, питон не знают даже те, кто на нём за деньги пишет.
Зачем вообще ставится задача "знать язык весь"? Что мешает спокойно находиться рядом с неизвестными возможностями, и трогать их только по мере узнавания? Ведь в реале именно так.
vsb>4. Паскаль это типизированный язык. Это очень правильно, чтобы сразу не приучать к плохому. Поэтому тут уже бейсик улетает.
vsb>5. В паскале есть всё для преподавания алгоритмов и структур данных, что должно происходит сразу же после освоения основ языка. Потому, что основа программирования это и есть алгоритмы и структуры данных.
vsb>4. C.
И в C всё перечисленное есть, и не сложнее, а даже проще (меньше кнопок нажимать). Почему не сразу C, зачем промежуточное звено в виде паскаля?
Re[3]: Кто интересовался, как в 21 веке учить детей программированию?
От: rudzuk  
Дата: 28.06.23 13:16
Оценка:
Здравствуйте, scf, Вы писали:

scf> С 9 класса — да. А вот с 5 — уже не уверен, что неокрепший детский ум поймёт преимущества статической типизации.


С девятого уже поздно. Не нужно отравлять молодые мозги динамикой. Потом, после этой наркоты ломать будет нипадеццки.
avalon/3.0.2
Re[12]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 13:24
Оценка:
NB>если у тебя не получилось, то у ребенка тоже может не получиться.

Так это два дефекта — во мне и в методике обучения. Остался ли дефект во мне — неизвестно,
но если не осталось, это означает, что методику можно улучшить.

И в этом случае у ребёнка получится (потому что у него нет моих дефектов, и есть правильная методика).
Re[8]: Кто интересовался, как в 21 веке учить детей программированию?
От: rudzuk  
Дата: 28.06.23 13:32
Оценка:
Здравствуйте, Osaka, Вы писали:

O> Чем сложнее вывод на консоль "хелловорлд" в C# по сравнению с паскалем? Вроде абсолютно одинаково (ну кроме изучения/забывания ненужных знаний устаревшего паскалевого IDE)


Ничем. А все прочее сложнее. Например, концепция пространства имен значительно более сложна для понимания — тем более, что не имеет четких границ — чем модули.

O> С каких конкретно задач C# становится менее "прост для старта"?


С тех самых, когда для написания низкоуровневого кода приходится прибегать к абстракциям (оксюморон)

O> И в C всё перечисленное есть, и не сложнее, а даже проще (меньше кнопок нажимать). Почему не сразу C, зачем промежуточное звено в виде паскаля?


Потому что модульное программирование. Переиспользование кода должно быть правильным.
avalon/3.0.2
Re[13]: Кто интересовался, как в 21 веке учить детей программированию?
От: night beast СССР  
Дата: 28.06.23 13:32
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

NB>>если у тебя не получилось, то у ребенка тоже может не получиться.


ЭФ>Так это два дефекта — во мне и в методике обучения. Остался ли дефект во мне — неизвестно,

ЭФ>но если не осталось, это означает, что методику можно улучшить.

можно ли улучшить методику не известно, но известен как минимум один зафиксированный случай травмирующего применения хаскеля
поэтому у нас нет морального права рисковать и экспериментировать на детях
нужен безопасный язык
Re[14]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 13:40
Оценка:
NB> известен как минимум один зафиксированный случай травмирующего применения хаскеля
NB> поэтому у нас нет морального права рисковать и экспериментировать на детях

неправильное "поэтому". Известно, что и на уроках труда дети травмироваться могут,
если применяется неправильная методика обучения.

Уроки труда при этом вполне себе есть.
Re[5]: Кто интересовался, как в 21 веке учить детей программированию?
От: zx zpectrum  
Дата: 28.06.23 13:44
Оценка:
ЭФ>Склероз. Я забыл, почему разочаровался, и теперь он мне снова кажется притягательным.
И вот так у хаскеллистов во всём. Чтобы понять монады, надо сначала понять монады. Чтобы вспомнить, почему разочаровался, надо сначала вспомнить, почему разочаровался.
Re: Кто интересовался, как в 21 веке учить детей программированию?
От: zx zpectrum  
Дата: 28.06.23 13:49
Оценка:
scf>Всё, как мы любим — рисование картинок кодом с минимальной обвязкой. Как старый бейсик, но javascript и в браузере.
Подход давным давно имеет место быть. Lego Mindstorms NXT с усечённой детско-юношеской версией графического языка программирования LabVIEW появился, емнип, в 2006-м.
Re[7]: Кто интересовался, как в 21 веке учить детей программ
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.06.23 14:03
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Раньше я бы ещё добавил C++ и основы ООП, сейчас, думаю, что это лишнее, ООП это скорей антипаттерн и ему лучше вообще не обучать.

А что вместо ООП для наследования, переопределения, интерфейсов при работе с иерархий классов или реализацией интерфейсов?
Утиная типизация?
и солнце б утром не вставало, когда бы не было меня
Re[9]: Кто интересовался, как в 21 веке учить детей программированию?
От: Osaka  
Дата: 28.06.23 14:08
Оценка:
O>> С каких конкретно задач C# становится менее "прост для старта"?
R>С тех самых, когда для написания низкоуровневого кода приходится прибегать к абстракциям (оксюморон)
Можно пример, как формулируется прикладная задача на лабу, одновременно простая в паскале и сложная в C#?
Re[8]: Кто интересовался, как в 21 веке учить детей программ
От: vsb Казахстан  
Дата: 28.06.23 14:16
Оценка:
Здравствуйте, Serginio1, Вы писали:

vsb>>Раньше я бы ещё добавил C++ и основы ООП, сейчас, думаю, что это лишнее, ООП это скорей антипаттерн и ему лучше вообще не обучать.

S> А что вместо ООП для наследования, переопределения, интерфейсов при работе с иерархий классов или реализацией интерфейсов?
S> Утиная типизация?

В разных языках по-разному. Из новых языков ни в Go, ни в Rust нет ООП в том виде, в котором он есть в старинных языках. В JS он формально есть (хотя со своей спецификой), но в современном коде его обычно не используют. Обычно просто используют функциональное программирование.
Re[15]: Кто интересовался, как в 21 веке учить детей программированию?
От: night beast СССР  
Дата: 28.06.23 14:26
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>неправильное "поэтому". Известно, что и на уроках труда дети травмироваться могут,

ЭФ>если применяется неправильная методика обучения.

уроки труда есть, но там детям не дают сразу болгарку, а сперва приучают работать молотком/пилой
Re[9]: Кто интересовался, как в 21 веке учить детей программ
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.06.23 14:27
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>В разных языках по-разному. Из новых языков ни в Go, ни в Rust нет ООП в том виде, в котором он есть в старинных языках. В JS он формально есть (хотя со своей спецификой), но в современном коде его обычно не используют. Обычно просто используют функциональное программирование.


Ну вот в C# есть и ООП и функциональщина. И все это прекрасно уживается. Я уже не говорю про UI где иерархия огромная.
Я не представляю как туда функциональщину прикрутить. Потомок может переопределить только один метод родителя. При этом методов родителя может достигать сотен!
А в JS как и в 1С и прочих динамических языках используют утиную типизацию.
Функциональщина это про иммутабельность и кучей проблем из-за этого
и солнце б утром не вставало, когда бы не было меня
Re[8]: Кто интересовался, как в 21 веке учить детей программированию?
От: vsb Казахстан  
Дата: 28.06.23 14:28
Оценка: 1 (1) +1 -2
Здравствуйте, Osaka, Вы писали:

vsb>>1. Паскаль прост для старта. Конкуренты ему — в этом плане питон, бейсик. Все остальные языки сложны.

O>Чем сложнее вывод на консоль "хелловорлд" в C# по сравнению с паскалем? Вроде абсолютно одинаково (ну кроме изучения/забывания ненужных знаний устаревшего паскалевого IDE)

В C# очень много лишнего. Что такое namespace? Что такое класс? Что такое static? Что такое void? Что такое string? Что такое []? Что такое args? Почему все эти скобки? Что такое System? Что означает точка? Что такое Console? Почему тут скобки круглые, тут квадратные, а тут фигурные?

И ответ "так надо" неправильный, потому, что у всех этих элементов есть своя функция. Которую объяснить на этом этапе невозможно. Это плохой подход для обучения. Обучать надо с нуля.

В первой программе на паскале ничего этого нет. Всё, что там есть это элементы базового синтаксиса, которые можно объяснить с нуля.

Я бы сказал, что идеален тут питон. print("Hello") и всё. В паскале всё же некая церемония есть, которую надо запомнить, но она минимальна и не несёт никаких скрытых смыслов.

vsb>>2. Паскаль очень компактный язык, если оставаться примерно в виртовском подмножестве. Питон улетает со свистом. Да и в принципе все промышленные языки. Изучить паскаль можно за месяц от начала до конца, питон не знают даже те, кто на нём за деньги пишет.

O>Зачем вообще ставится задача "знать язык весь"? Что мешает спокойно находиться рядом с неизвестными возможностями, и трогать их только по мере узнавания? Ведь в реале именно так.

Если язык специально сдизайнен для этого, может и так. На практике я таких языков не знаю. Ты просто зайдёшь в любой библиотечный код и ничего не поймёшь. Особенно этим C++ грешит.

O>И в C всё перечисленное есть, и не сложнее, а даже проще (меньше кнопок нажимать). Почему не сразу C, зачем промежуточное звено в виде паскаля?


С без ассемблера понять практически невозможно. Там сразу со старта бьют по голове указателями. А указатели это адски сложная концепция для человека, который даже концепцию условного оператора не понимает. С сразу учить могут только очень одарённые люди. Остальным лучше этого не делать.
Re[10]: Кто интересовался, как в 21 веке учить детей програм
От: vsb Казахстан  
Дата: 28.06.23 14:32
Оценка:
Здравствуйте, Serginio1, Вы писали:

vsb>>В разных языках по-разному. Из новых языков ни в Go, ни в Rust нет ООП в том виде, в котором он есть в старинных языках. В JS он формально есть (хотя со своей спецификой), но в современном коде его обычно не используют. Обычно просто используют функциональное программирование.


S>Ну вот в C# есть и ООП и функциональщина. И все это прекрасно уживается. Я уже не говорю про UI где иерархия огромная.


Ну если человек будет писать на C# или на Java — безусловно ООП выучить придётся. А если на Go — зачем?

S>Я не представляю как туда функциональщину прикрутить. Потомок может переопределить только один метод родителя. При этом методов родителя может достигать сотен!


Не очень понимаю тебя. Возможно лучше на конкретном примере.

S>А в JS как и в 1С и прочих динамических языках используют утиную типизацию.


Ну в Rust не используют утиную типизацию и живут как-то.

S> Функциональщина это про иммутабельность и кучей проблем из-за этого


Когда я говорю про функциональное программирование, я имею в виду стиль, когда функция является объектом первого класса и её можно передавать параметром в другую функцию. Иммутабельность это отдельная концепция, хотя её часто с функциональным программированием вместе используют, но я не считаю это корректным обобщением. Можно писать иммутабельные программы без ФП, можно использовать ФП без иммутабельности.
Отредактировано 28.06.2023 14:35 vsb . Предыдущая версия .
Re[16]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 14:51
Оценка:
NB> уроки труда есть, но там детям не дают сразу болгарку, а сперва приучают работать молотком/пилой

От молотка можно перейти к (кузнечному?) прессу.
От пилы можно прийти к двуручной пиле.

К болгарке так не прийти никак.
Re[11]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.06.23 15:01
Оценка:
Здравствуйте, vsb, Вы писали:


S>>Ну вот в C# есть и ООП и функциональщина. И все это прекрасно уживается. Я уже не говорю про UI где иерархия огромная.


vsb>Ну если человек будет писать на C# или на Java — безусловно ООП выучить придётся. А если на Go — зачем?


S>>Я не представляю как туда функциональщину прикрутить. Потомок может переопределить только один метод родителя. При этом методов родителя может достигать сотен!


vsb>Не очень понимаю тебя. Возможно лучше на конкретном примере.


Ты видел иерархию классов в том же WinForms или WPF?
Там ООП на полную катушку.
В Паскале тоже не было ООП. Его заменил Delphi и стал одним из популярнейших языков на постсоветском пространстве.
По сути Хейлсберг продолжил эволюцию delphi на си подобном C#, поработав еще и с Java.
Но он и работу с Winforms перенес из Delphi.
Опять же тот же TypeScript набирает популярность. А там ООП есть https://itnan.ru/post.php?c=1&p=667156
Мы же про обучение говорим. То большинство как раз выберут TS, Java, Kotlin, C#
и солнце б утром не вставало, когда бы не было меня
Отредактировано 28.06.2023 15:10 Serginio1 . Предыдущая версия . Еще …
Отредактировано 28.06.2023 15:05 Serginio1 . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.