Какие функции важны на языке программирования для молодых новичков? [закрытый]

8
задан NoMoreZealots 23 August 2013 в 15:18
поделиться

14 ответов

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

2
ответ дан 5 December 2019 в 05:03
поделиться

Мой совет: начните с простой модели работы компьютера. Я особенно ценю стековые машины как хорошие инструменты для обучения вычислениям.

0
ответ дан 5 December 2019 в 05:03
поделиться

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

1
ответ дан 5 December 2019 в 05:03
поделиться

Хотя это не связано с программированием роботов, я думаю, что веб-программирование - отличное место для начала с детьми этого возраста. Именно так я начал в том же возрасте. Это легко переводится в то, что дети понимают, если они вообще пользуются Интернетом. Начните с HTML, добавьте Javascript, и вскоре они захотят выполнять функции, требующие сценариев на стороне сервера или чего-то еще, и с этого момента все будет развиваться.

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

0
ответ дан 5 December 2019 в 05:03
поделиться

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

  • Интерпретация или инкрементальная JIT-компиляция (что для пользователя выглядит как интерпретатор)
  • Нет шаблонов
  • Нет попыток навязать определенный стиль программирования (например, Java требует этого все должно быть в определении класса, или Haskell обеспечивает чисто функциональный дизайн)
  • Динамическая типизация
  • Неявное принуждение (возможно)
  • REPL
2
ответ дан 5 December 2019 в 05:03
поделиться

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

1
ответ дан 5 December 2019 в 05:03
поделиться

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

Стоит отметить, что Python вырос из проекта языка под названием ABC , ориентированного на начинающих. Например, обязательное двоеточие не строго требуется , но было обнаружено, что оно улучшает читаемость:

if some_condition:
  do_this()
0
ответ дан 5 December 2019 в 05:03
поделиться

Вы должны заставить их перестать думать как пользователь и начать думать как программист. Им нужно делать это шаг за шагом. Спросите их, о чем они должны думать, чтобы самостоятельно разобраться в проблеме, а затем запишите их в виде шагов. Если вы можете, тогда вы еще больше разбиваете каждый шаг в той же материи. Когда вы закончите, у вас будет программа на английском языке, что упростит программирование по-настоящему.

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

1
ответ дан 5 December 2019 в 05:03
поделиться

Несколько лет назад я видел презентацию на Ignite! Seattle одного из людей, работающих над проектом, известным сейчас как Kodu, который задумывался как язык программирования для детей. Он потратил время на обсуждение того, какие общие языковые функции можно просто выбросить из среды программирования, предназначенной для обучения основам.

Множество заветных императивных конструкций, таких как циклы for в стиле C, были просто отброшены в пользу простого подхода с использованием объектных сообщений. Объектно-ориентированное программирование нетрудно понять, если думать об "объектах" и "сообщениях"; трудность заключается в том, чтобы разобраться с вещами, которые волнуют программистов, но не детей, такими как наследование, контракты и огульные абстракции. У меня есть эта вещь (существительное), теперь действуйте с ней (глагол), таким образом (наречие типа быстро), когда вещь (увидит/натолкнется на) что-то (с каким-то атрибутом) (это ваше "если"). События на самом деле являются условиями и обладают всеми возможностями условий, но определение того, когда произойдут эти события, зависит от среды выполнения.

Такой подход, основанный на событиях и сообщениях, возможно, даже лучше подходит для роботов, чем процедурное программирование, так что это может быть хорошим способом взглянуть на проблему. Постарайтесь не думать о том, что вам "нужно" знать, чтобы программировать на C или Pascal или что-то еще; думайте о том, что вы хотите иметь возможность заставить что-то делать.

0
ответ дан 5 December 2019 в 05:03
поделиться

У меня есть 3 слова: Робот Карел. это действительно очень простой «язык», который предназначен для обучения людей основам программирования. :

Поищите в сети. Вы можете посмотреть на это, хотя я никогда не пробовал: http://karel.sourceforge.net/

0
ответ дан 5 December 2019 в 05:03
поделиться

Когда у вас есть дети, которые пытаются понять:

если X> 10, то <ДОЗЫВКИ>

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

Что необходимо для развития интереса к программирование?

Добиться успеха без особых усилий. Чтобы создать что-то работающее за считанные минуты. Его могут предложить многие языки программирования, в том числе страшный C ++.

Чтобы избежать осложнений с #includes, множеством исходных файлов, модуляризацией и компиляцией, почему бы не поискать в другом месте? Попробуйте написать несколько макросов Excel или использовать любое другое программное обеспечение с базовым встроенным языком сценариев для автоматизации определенных задач?

Еще одна идея - поиграть с веб-страницами. Это не совсем программирование, но, по крайней мере, легко чего-то добиться и с гордостью показать другим.

5
ответ дан 5 December 2019 в 05:03
поделиться

Самым важным является не так много шаблонов для выполнения простейшей программы.

Если вы начнете с группы

 import Supercalifragilistic from <expialidocious>
 public void inherited security model=<apartment>      
    public : main .....

и скажете им, что «не волнуйтесь, они не должны этого понимать» - вы отложите и самых умных, и самых глупых.

В python хорошо то, что при выводе «hello world» выводится «hello world»

11
ответ дан 5 December 2019 в 05:03
поделиться

Весело, быстрые результаты. Захватите внимание ребенка.

Интерпретирующие оболочки, как и большинство языков сценариев (командная строка), которые позволяют студенту просто набирать 1 или 2 строки, являются большим делом.

python:

>>> 1+1
2

Бум, мгновенная обратная связь, ребенок думает, что «компьютер отвечает». Детям это нравится. Помните Элизу , кто-нибудь?

Если они увязнут в установке IDE, создании проекта, bleh bleh bleh, иногда касательные уводят вас от основной темы.

BASIC тоже хорош.

Поищите в Интернете что-нибудь вроде "ПРОСТОЙ": http://www.simplecodeworks.com/website.html

7
ответ дан 5 December 2019 в 05:03
поделиться

Команда исследователей , начавшаяся в Райсе, затем распространившаяся до Брауна, Чикаго, Северо-Востока, Северо-Запада и Юты, была изучаю этот вопрос около 15 лет. Я не могу здесь обобщить все их открытия, но вот некоторые из наиболее важных открытий:

  • Неправильный синтаксис может быть препятствием для входа.

  • Язык следует разделить на концентрические подмножества, и вы должны выбрать подмножество, соответствующее уровню знаний учащегося.Например, их наименьшее подмножество называется языком «Начинающий студент».

  • Сообщения об ошибках компилятора должны соответствовать уровню знаний учащихся. Если вы используете подмножества, разные подмножества могут выдавать разные сообщения об одной и той же ошибке.

  • Новичкам трудно понять разделение фаз : отдельные фазы для проверки типов и времени выполнения с различными видами ошибок. По этой причине новичкам лучше подходит язык, в котором типы проверяются во время выполнения, то есть язык с динамической типизацией.

  • Новичкам трудно рассуждать об изменяемых переменных и изменяемых объектах. Напротив, если вы преподаете чисто функциональное программирование, вы можете использовать опыт учащихся в алгебре средней и средней школы.

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

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

    Что интересно, они получили очень хорошие результаты только с 2D-изображениями. Несмотря на то, что мы все окружены примерами трехмерной компьютерной графики, студенты, похоже, очень увлечены работой только с двухмерными изображениями.

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

5
ответ дан 5 December 2019 в 05:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: