ScrollLock писал(а):
Иван Кузьмицкий писал(а):
Программирование - это не совсем и не только язык.
Я понимаю, что оно ещё является и стилем мышления, и ещё много чем, без чего сложно построить более-менее серьёзную программу. Но далеко не все школьники являются математиками по складу ума и способны усвоить концепции вне языка. Часть народа будет жаждать действа, а не теории. Почему же на английском концепции сразу отрабатываются на конкретном языке?
Действа, а не теории? Это уже было. Хлеба и зрелищ! Я не понял, мы в цирке?
А концепции английского уже в голове. Человек с рождения учится эти самые концепции получать и выражать в языке. В отличие от программирования. Так что сравнение c английским некорректное.
ScrollLock писал(а):
Иван Кузьмицкий писал(а):
Это всё же инженерная дисциплина, а инженер начинается с сопромата.
Не думаю, что обычным школьникам можно преподавать его как инженерную дисциплину. Важнее теории будет понимание, что программа выполняется по строчкам, принципы работы циклов и ветвления (без выхода за конкретный язык, обязательно на примерах). Прежде чем учиться на инженера, нужно уметь держать в руках хотя бы молоток и знать арифметику.
Не всегда нужно использовать при начальном обучении строгое теоретическое обоснование: например, для понимания сути производной достаточно "интуитивного" представления о пределе.
А почему именно по строчкам? Зачем вообще нужны циклы и ветвления? Обосновывать можно и не сухими многостраничными выкладками, а живым, образным языком. Всё равно надо объяснять, что программирование - это не просто "подошёл к компу, натыцкал формочку и оно замигало".
ScrollLock писал(а):
Иван Кузьмицкий писал(а):
Visual Basic, имхо, очень некультурный инструмент, его просто нельзя школьникам показывать.
Я начинал учиться с GW-BASIC, QBASIC и Visual Basic, что не помешало в дальнейшем изучать Паскаль и Си. В том возрасте ощущение конкретного результата было очень важным.
Сейчас школьникам, бывает, дают на профиле Macromedia Flash. Ой, там такие красявости, а результат - просто мега. Дико нравится. Правда, язык, несмотря на объектно-ориентированность, дозволяет неаккуратности и ошибки. Сложный и запутанный.
Но я и себя прекрасно помню, и мне был важен сиюминутный результат - как же, креаторство на кончиках пальцев. Создать реальность, не сходя с места. Было, было...
ScrollLock писал(а):
Иван Кузьмицкий писал(а):
Для изучения тонкостей есть техникумы, а в школе, как мне кажется, надо давать общее представление, на фундаменте которого уже делается натаскивание, наработка конкретных навыков.
Что значит "общее представление" - работа с каким-то учебным языком или теории и прочая математика?
Работа с учебным языком в каких целях? Просто поплясать с бубном или же изучить грамотное конструирование? Если второе, так надо ж сперва дать понять, что есть конструирование. На примерах из того же языка. И тут мы придём к тому, что говорят все адепты Оберона - этот язык является лучшим среди учебных.
ScrollLock писал(а):
Иван Кузьмицкий писал(а):
С точки зрения человека, идеал наглядности - это понятный текст.
Это кому как. Например, в современных операционных системах командную строку закрывают графическими оболочками. Рисовать формочки с помощью текста - не наглядно и муторно, особенно с помощью WinAPI.
Иван Кузьмицкий писал(а):
Визуальное программирование даёт возможность из кирпичиков построить нечто "читаемое", но вот как именно устроены эти кирпичики, как они взаимодействуют, и почему именно так - поди объясни начинающему
А разве нужно знать, как они устроены - это уже экскурс в WinAPI-программирование получится.
Текст - это не всегда то, что буквами напечатано
Для определения понятия текста надо подтягивать семиотику, но кратко сказать можно так - вся окружающая нас реальность может являться текстом. А может, и нет. Понимаешь знаковую систему - значит, можешь прочесть текст.
Отсюда и популярность графической среды. Этот текст понятен большинству. Насчёт объяснения устройства кнопок, я имел в виду такой момент. В том же Visual Basic, если бросить кнопку на форму и дважды по ней кликнуть, автоматически сгенерируется текст обработчика, куда можно вписать свой текст. Вы понимаете, если человек впервые в жизни видит такое, то для него это как откровение. И он воспринимает это как данность. Что так и должно быть. Это и есть программирование.
А вот в том же Ящике, связывание логики приложения и интерфейса "несколько" другое. И гораздо более, на мой взгляд, правильное.
Но объяснять это надо другим языком.
Так чему учить? Инженерии или "бистро"? Я думаю, что начинать надо не с завлекалова, а делать упор на то, что программирование - серьёзная дисциплина. Абстракции, используемые в программировании, на самом деле, очень тяжелые для новичка, несмотря на кажущуюся лёгкость первого шага (программа "Hello, world"
), ну, по крайне мере, мне так кажется
. А если учесть, что людей, способных воспринять программирование, реально - не больше 15 процентов, то картина и вовсе получается интересной.