Изучение концепций языка программирования

Как учитель-ученик, меня очень интересует, как эффективные "мини-языки", такие как Scratch, Logo, Alice и Lego mindstorms, обучают ученика основным концепциям программирования, таким как переменные, функции и циклы.

Является ли один "мини-язык" лучше другого для обучения этим основным концепциям ядра?

Ответ 1

В зависимости от того, насколько малы дети, которых вы преподаете, я бы просто пошел с более простым языком, как python.

Вот бесплатная книга, которая учит всем основам и составляет всего около 200 страниц: http://www.greenteapress.com/thinkpython/thinkpython.html

Ответ 2

Это очень сложный вопрос. Логотип и Smalltalk (чтобы назвать только два очевидных примера) были первоначально разработаны специально для использования в обучении детей программированию. Однако вы быстро сталкиваетесь с проблемой: трудно определить язык, который достаточно прост для маленького ребенка, чтобы он полностью понял и до сих пор достаточно богат, чтобы избежать его быстрого становления ограничивающим и неуклюжим.

По крайней мере, из того, что я видел, большинство попыток плохо работало в обоих отношениях. Например, большинство попыток включить многословие, призванное сделать код более похожим на английский (например, "To:" в логотипе). У детей часто есть достаточно слабые навыки клавиатуры, что такая многословие расстраивает. Они также (по моему опыту) ожидают, что, если часть синтаксиса будет выглядеть как английский, язык должен принять и другой действующий английский язык (я бы ожидал, что то же самое относится к носителям других языков, но мой опыт в основном связан с Англоговорящие).

В то же время большинство детей (с которыми я работал) быстро доходят до того, что они находят ограничение на мини-язык. Некоторые из них, вероятно, связаны с разочарованиями, упомянутыми выше. Некоторые, вероятно, также проистекают из-за отсутствия воображения со стороны (по крайней мере некоторых из) их учителей, придумывая интересные и сложные упражнения. Я думаю, что это также намного сложнее сегодня, чем это было (скажем) 20 лет назад, хотя в то время дети были в восторге от того, что они могли рисовать с черепаховой графикой (на одном примере). Сегодня они привыкли к играм с фотореалистичной 3D-графикой, а рисование двумерной "розы" из прямых линий, похоже, намного больше из них, как в основном хромой.

Ответ 3

Я думаю, что неважно, какой именно "мини-язык" вы используете. Но я думаю, что вам лучше остаться с настоящим миниязыком, а не "настоящим" языком, если вы не планируете объяснять больше, чем основы. Когда я изучил основы (с Java), я был очень раздражен, что мне пришлось запомнить public static void main, не зная, что это все значит. Поэтому я бы выбрал язык с минимальными накладными расходами. Какой конкретный язык выбрать, действительно зависит от возраста ваших учеников.

Ответ 4

Существует довольно много возможностей, и в конечном итоге этот вопрос имеет много общего с "вкусом". Я действительно думаю, что схема действительно хороший выбор, хотя и по нескольким причинам. Во-первых, это очень минималистический язык, с очень небольшим синтаксисом для усложнения вещей. Другое дело, что я чувствую, что схема выражает что-то действительно фундаментальное в отношении вычислений и делает это очень четко. Другое заключается в том, что Scheme может использоваться очень "мультипарадигматически". Вы можете выполнять функциональное программирование на Схеме или по требованию программирования. Также очень легко создать объектную систему с нуля для Scheme. Вы можете перенести простой язык на менее чем 100 строк кода. Существуют также некоторые реализации Схемы, в которых много библиотек, поэтому вы можете делать такие вещи, как графическое программирование или веб-программирование.

И, наконец, большое внимание было уделено разработке хороших педагогических материалов на Схеме. "Структура и интерпретация компьютерных программ" по праву считается классикой, но многие материалы в ней были бы довольно жесткими для маленьких детей, я думаю (это было нацелено на новых первокурсников в Массачусетском технологическом институте). Но есть и гораздо более мягкие материалы, такие как "Как создавать программы": http://www.htdp.org/ Одна вещь, которую вы можете видеть наглядно в htdp, - это то, как минимальный синтаксис схемы позволяет вы получите право на важные идеи.

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