| Comments: |
>т) Если ты переводишь книгу, то нужно быть скучным, как традиционно переводят >на русский книги по программированию. То есть тупо "условный тип данных" и >сноску из лучших побуждений: "в миру это обычно называется так". Кстати, автор >имеет в виду не совсем "условный тип данных", а "условные данные", но это ещё >корявей. Об том и речь, что «условный» выглядит неудачно. >р) Нахрена, вообще, книги переводить? Дети ли, взрослые, всем учить >английский, койне современного мира. Кто не знает, учить на предмете этих же >вот книг, а по программированию - это самые простые для изучения языка книги. >Кто не выучит, останется провинциалом, а в программировании, вообще, работать >не сможет. Прекрасно, ага. Значит ли это, что вся учёба должна быть за пределами школы и универа? Потому что в школе я точно не могу от них требовать читать книги на английском. В моём личном случае на первом курсе нам препод советовал книги на английском, но говорил, что у него нет права строить программу курса на английских книжках, поэтому основной книгой была выбрана какая-то дебильная переведённая из серии head first. Я им конечно постоянно говорю, что без английского вам дальше делать нечего, и читать надо именно самим, а не целиком скармливать яндекс/гугл переводчику целые страницы. Но это так себе работает, по-моему. >Современная же тенденция отойти от схемы и прийти к питону, начиная с МИТ, и >кончая вот этой книгой с "пиретом", не радует. Насаждает бардак уже в головах >учащихся. Ну надо сказать, что Шрирам сам ругает Python и не считает его пригодным для обучения программированию, насколько я знаю. И от Scheme он сам не отходит, есть версии курсов Bootstrap для школьников как с Pyret, так и с WeScheme[1]. >т) Вообще, тот тип называется обычно ADT = algebraic data type = >алгебраический тип данных. Можно начать со статьи: > https://en.wikipedia.org/wiki/Algebraic_data_type и там по ссылкам. Но кто как >называет его и частные случаи... Также переводить ли "условный тип данных" или >"условные данные" зависит от взглядов автора и переводчика на типизацию и >вывод типов. Есть нюансы, и хорошо бы в них разбираться при переводе: часто >путают динамическую типизацию и нетипизированность (я уж молчу про "слабую" >типизацию). Про ADT я в курсе конечно, да. >р) Область молодая, терминология неустоявшаяся. Да если даже если и устоялась, >что с того. Найди свои названия, и не бойся быть непонятым. Особенно если не с >кем говорить на эту тему. Если цель не перевести книгу для кого-то, а самому >разобраться, то своя терминология будет "наиболее правильной". Я у самого Шрирама спрашивал например про название одной из глав[2], выяснилось, например, что «Sub-Domains» у него это ограничение областей функций. Типа есть `max :: List -> A`, так вот у неё область ограничена в том смысле, что на пустом списке функция смысла не имеет, поэтому не определена.
Надо мб и про conditional спросить у него же, чтобы подробнее расписал.
Я это и для себя читаю/учу и школьникам пересказываю, но я считаю, что проблем у них быть в дальнейшем не должно, если они увидят те же самые вещи, но названные по-другому.
[1] https://bootstrapworld.org/materials/spring2021/en-us/courses/algebra-wescheme/ [2] https://papl.cs.brown.edu/2016/processing-lists.html#%28part._struct-prob-sub-dom%29
Так спроси, раз он отвечает. Интернет ведь не только для качалова, а и средство коммуникации. Даже с оригинальными авторами, кто ещё жив. Какова цель школьного образования? Привить человеку "ядро культуры". Можно ли усвоить современное "ядро" без английского? Нет. Значит, нужно научить английскому в дошкольном и начальном школьном образовании, чтобы к середине школы, и уж точно к университету, он читал техлитературу без словаря. Я, вот, осилил к универу, и это было непросто, помнится. Как сейчас, не знаю, надеюсь, эта идея пробивается в РОНО и получает поддержку, или кто там рулит сейчас. Как учить эффективно языку - другой вопрос. Я бы использовал естественную лёгкость освоения второго языка "как родного" в самом юном возрасте (дошкольном). Программирование нужно осваивать, упражняясь. С упором на практику, язык учебника не так важен, учебник вторичен. Да и язык программирования не так важен. Но чтобы проводить параллели между ЯП, нужно освоить второй ЯП, а может, и третий. Тогда и вещи узнаваться будут, и может, тяга к расширению горизонта появится. Сам я начинал с бейсика, традиция, освящённая веками. Это ещё хуже питона засоряет мозг. Долгие годы чистил сознание, выработка стройной системы была затруднена этим самым бейсиком. И это общее мнение, что с бейсика начинать - программистов будущих портить. Значит, важен первый язык. Я бы начал с самых чистых языков. И если это физматшкола, то лучше всего - функциональный ЯП. И чем чище, тем лучше. Даже схема недостаточно чиста, там императивные конструкции допускаются. Хаскелл, может быть? В некоторых университетах его как первый язык учат: https://wiki.haskell.org/Haskell_in_education#Haskell_as_a_first_languageТут я также утверждаю, что освоить "чистые" варианты, "грязные" сам уже студенто освоит... В общем, я против "практичного" подхода плодить "быдлокодеров" со школьной скамьи.
>Какова цель школьного образования? Школа, армия, тюрьма. Ну ты понял. И я в своё время так и воспринимал её, а всем интересным занимался сам в свободное время за пределами школы. >Можно ли усвоить современное "ядро" без английского? Нет. Значит, нужно >научить английскому в дошкольном и начальном школьном образовании, чтобы к >середине школы, и уж точно к университету, он читал техлитературу без словаря. >Я, вот, осилил к универу, и это было непросто, помнится. Да всё понятно, я ж только за. У них вот, по их же словам, английский со 2 класса, а что толку-то, если они даже кейворды типа else читают неправильно. Есть подозрение, что это потому, что у них вместе с этим ещё пытаются немецкий преподавать (поэтому каша в голове), но нахуя, спрашивается, если русский толком ещё не доучили. И вот то же else они читают так, как будто это немецкое слово. >Как сейчас, не знаю, надеюсь, эта идея пробивается в РОНО и получает >поддержку, или кто там рулит сейчас. Ага, конечно. Сейчас модно soft skills, вся вот эта убогая болтология ни о чём, рассчитанная на дебилов, видимо. Единственное, что радует, --- это свобода. Могу в поурочном планировании писать одно (по утверждённым учебникам), а в реальности заниматься совсем другим. >Но чтобы проводить параллели между ЯП, нужно освоить второй ЯП, а может, и >третий. Тогда и вещи узнаваться будут, и может, тяга к расширению горизонта >появится. Да, после Pyret будет точно Python, потому что неизбежно, потому что удобный язык для быстрого скриптования каких-то вещей, для ЕГЭ им пригодится (можешь глянуть, как оно будет в 2021 году, всё на компьютере). Для сравнения ещё можно показать например Haskell, который будет многим похож кстати на Pyret, ADT например или pattern matching они должны опознать. Ну и основное --- не инструкции, а выражения, которые редуцируются. Это типа в первой же главе книжки описывается подробно. И типа вот, есть два подхода: Python и Haskell. Возможно, ещё Prolog какой-нибудь, но его я сам не трогал, и не знаю, стоит ли. Параллельно с этим ещё дал им задание в прошлой четверти поставить Линукс какой-нибудь на виртуалку, и там научиться базовым вещам в терминале. Мотивация была озвучена такая: оно (а) нужно более-менее всем людям, чья работа связана с IT сейчас; и (б) посмотрите на учебный план топовых факультетов типа ФКН ВШЭ или ФМКН СПбГУ и заметьте, что в 1 или максимум 2 семестре есть предмет, посвящённый Линуксу, и лучше эти вещи выучить заранее, т. к. ничего сложно в них нет. Ну и предполагается, что они должны также заметить, что многие вещи проще намного делать в терминале. Всяческая обработка текста например (отсюда вытекает важность представления информации в plain text везде, где это можно). >Я бы начал с самых чистых языков. И если это физматшкола, то лучше всего - >функциональный ЯП. И чем чище, тем лучше. Даже схема недостаточно чиста, там >императивные конструкции допускаются. Хаскелл, может быть? В некоторых >университетах его как первый язык учат: А ты посмотри на Pyret-то, там чисто функциональщина же, выражения и значения как результат их вычисления. Функции для повторяющихся выражений, тесты(!) для функций пишутся до написания тела функции, выглядит так: fun f(a, b):
a + b
where:
f(1, 2) is 3
f(-1, 1) is 0
f(0.1, 0.2) is 0.3
end Есть сопоставление с образцом: fun my-len(l):
cases (List) l:
| empty => 0
| link(f, r) => 1 + my-len(r)
end
endЗа две четверти дошли до главы про списки https://papl.cs.brown.edu/2019/processing-lists.html
Не, вообще, всё замечательно, и главный компонент - это ты. В школьном возрасте учитель-энтузиаст - это счастье ученика.
Помню, как мне повезло в последние годы школы с учителем физики, и насколько резкий был поворот. До того - в физике непонятно ни хрена, вообще. С ним - стало всё ясно в пределах школьной программы, и самое главное, - воодушевил он меня на всю жизнь. До серьёзного изучения физики руки за все эти годы так и не дошли, но авось, доберутся ещё. Впрочем, сам я тяготею к абсолютно нефизичному, так что всё норм.
Насчёт soft skills, это, боюсь, не болтовня, а проза жизни. Как питон. Если идёт чел наниматься быдлокодером, его, в первую очередь, оценят как "коммуникатора", "тим-плеера" и пр., потом спросят за питон и "веб". А уж знание ФП только минусом будет. Мне кажется, это два противоположных направления - учить практиков-прагматиков-питонистов, и учить лисперов-адептов-брахманов.
Я пролистнул книгу, неплохая с виду. И Кришнамурти и схемерам можно доверять в плане ФП и квалифицированности.
Я даже, помню, как-то пробовал, кажется, онлайн курс по ЯП брать у него. Кажется, по его книге или по EoPL. Только быстро забил, домашние задания не понравились, и я понял, как мне самому двигаться к совершенству, альтернативным способом.
Да, ещё для детей, мотивации и развлечения, я бы посоветовал geogebra-у попробовать, для обучения геометрии по-новому. Впрочем, ты, кажется, под влиянием, Вербицкого и ко., а он геометрию школьную за предмет не держит, и учебник Погорелова презирает, как оказывается.
Geogebra можно, да, но я математику у них не веду. И их училка про существование Геогебры знает вроде. Я со своей стороны хочу им подсунуть например такое --- https://math.ru/lib/files/pdf/rasomn.pdf --- этого точно у них на математике нет и не будет, а знать надо, на первом курсе легче будет. >Впрочем, ты, кажется, под влиянием, Вербицкого и ко., а он геометрию школьную >за предмет не держит, и учебник Погорелова презирает, как оказывается. Я не то чтобы под влиянем, я классе в 7 помню как не понимал, зачем заучивать наизусть какую-то «теорему», какое-то и без того очевидное предложение --- это был один из первых уроков геометрии, заучить формулировку теоремы было домашкой. С тех пор у меня с планиметрией как-то не очень. Хотя в 11 классе конечно мы решали много задач, и по стереометрии тоже, для ЕГЭ, и я их успешно на экзамене решил, но осадок остался. А тут же --- про функции/множества --- всякие шокирующие факты типа того, что в квадрате столько же точек, сколько и в отрезке. Мне кажется, такое больше должно внимания привлечь.
Да уж, ЕГЭ и Болонская система - это дегуманизация, механизация образования, не поддерживаю.
Теоремы не заучивать надо, а доказывать. Обычно это доступно только в университете, к сожалению (не в смысле, что не хватит ума, а в смысле "нематематичности" школы, ориентации на заучивание).
Должно привлечь, по-любому. Но я бы посоветовал "школу Опойцева", по-моему, это то, что надо. Его книга "Интуиция и математика" (под псеводнимом Босс) на меня произвела неизгладимое впечатление. По школьной программе его не продвинулся, но кажется, это то, что доктор прописал. | |