2010-03-14 5 views
3

Я изучаю языки и IDE для проекта, в котором учатся ученики старших классов (около 11 класса). Он будет преподавать основы программирования как введение в информатику (например, в том числе, как представлены числа/строки/символы, используя процедуры и массивы, поток управления, немного алгоритмов, только очень простой ввод-вывод). Необоротные требования данного проекта являются:Язык + IDE для обучения старшеклассников?

  • бесплатной уточненного кросс-платформенной IDE (Win & Mac включая 64-бит.) С отлаживать
  • компилятора, где легко узнать из ваши ошибки
  • вместе с IDE, нежном установка + кривой обучения

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

Перспективные:

  • Pascal + FreePascal IDE (это кажется немного глючит, но активно развивается?)
  • Python + Затмение + PyDev (хорошо, но функции подавляющие/трудно ориентироваться)
  • Схема + DrScheme/PLTScheme (хорошо, но очень разные)
  • Python + IDLE (выглядит неестественно делать отладку, мне)
  • Boo + MonoDevelop

Не многообещающим:

  • Pascal + Lazarus IDE (подавляющим, например не очевидно, как «начать с нуля»)
  • Groovy + Затмение (режим отладки попадает в Java)

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

Я попробовал немного, чтобы увидеть, есть ли что-то в JavaScript или (не Visual Visual Basic) в соответствии с тем, что Я хочу, но ничего не нашел. Я бы сказал, что C/C++/C#, Java, Ruby, VB не соответствуют моим критериям для языков для этого проекта.

Повторить мои вопросы: есть ли какие-либо из этих вариантов, действительно удивительные или неудобные? Есть ли другие варианты, которые даже БОЛЬШЕ здоровы? Что-нибудь для Basic или JavaScript, которое соответствует всем критериям? Благодаря!

Редактировать: Полезно, чтобы люди говорили, рекомендуют ли они инструменты, которые они фактически использовали; Кроме того, я редактировал список выше, основываясь на первом раунде ответов.

+0

Что такое C# и VB.NET, которые не соответствуют вашим критериям? Выпуски Visual Studio Express бесплатны. Также проверьте, помогает ли вам http://msdn.microsoft.com/beginner/. –

+0

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

+0

Ну, его первое «необоротное» требование - кросс-платформенный, включая Mac. Visual Studio - только Windows. – itowlson

ответ

5

Есть ли другие варианты, которые даже БОЛЬШЕ удивительны?

Да: PLT Схема. Проект TeachScheme разработан ровно, чтобы научить информатике и программированию старшеклассникам (даже средним школьникам), и они имели более чем 15-летний опыт разработки превосходной среды и педагогики. Если вы не страдаете иррациональным отвращением к круглым скобкам, или если вы предпочитаете наступать на чужие пальцы ног вместо того, чтобы стоять на их плечах, это то, чему вы должны учить.

(Есть и другие хорошие варианты для начинающих, но ни сравнимого с альтернативами вы перечисляете выше.)

+0

Это очень полезный ответ, особенно для ваших комментариев по перечисленным выше. Проект TeachScheme несколько похож на проект, который я хотел бы сделать. IDE DrScheme/PLTScheme, по-видимому, хорош для основных операций и отладки и делает целесообразным добавить Scheme обратно в мой короткий список, прежде чем устанавливать язык. – daveagp

1

Вы прокомментировали, что вы исключили Лиспа, но не сказали, почему. Я понимаю, что Common Lisp очень большой, но вы можете еще раз взглянуть на диалект Схемы, который намного меньше и проще, и часто используется в качестве учебного языка даже для не-CS-типов (Fellisen et al.'s Как разработать программы специально предназначается для не-программистов).Для загрузки доступны различные пакеты «Lisp in a Box» IDE-esque.

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

+0

Ваша точка зрения о бизнесе верна, но не моя главная проблема ... просто все эти круглые скобки кажутся немного ненужными? Я думаю, что важно научить области и грамматике, но не думайте, что Lisp делает это намного лучше, чем другие. Я бы тоже сказал, что он слишком абстрагирован от реальной машины. С другой стороны, мне нравится возможность иметь интерпретатор «hit-enter-get-result», но я не чувствую, что этого достаточно, чтобы его выкупить. Я знаю, что MIT учил на Схеме и даже представлял Scheme-оценщик, написанный на Схеме, так что это правда, что это потрясающий язык для других вещей. – daveagp

+1

@daveagp Вы учите программированию, но не понимаете основную теорию PL? Без обид. «... скобки кажутся немного ненужными?» Собственно, синтаксис Lisp является абсолютным-простейшим, который вы можете получить. Разве вы не думаете, что пробел Python немного лишний? «... scope & grammar, но не думайте, что Lisp делает это намного лучше ...» Схема, вероятно, является наиболее логичной и последовательной из всех языков с простым статическим охватом и передачей по значению. «... слишком отвлечен от реальной машины». и все же вы рассматриваете Groovy и Python. Просто говорю'. – erjiang

+0

Я обернул свою партенофобию на основе комментария Нормана выше. Но чтобы понять смысл моего источника страха, я думаю, что пошаговое выполнение программы по-разному является более простым с другими языками (например, Pascal). – daveagp

3

Посмотрите на Boo и MonoDevelop.

Кроме того, Microsoft Small Basic предназначен для новых/молодых программистов. IDE (если его можно так назвать) прост в использовании и язык основан на традиционном BASIC, поэтому для большинства людей это должно быть довольно легко. Если вам действительно нужно запустить его на Mac, почему бы не использовать VirtualBox или VMWare Player?

+0

Чем больше я вижу Бу, тем больше я думаю, что это потрясающий язык. С MonoDevelop для решения кросс-платформенных требований это отличное предложение. – itowlson

+0

Я провел некоторое время сегодня, установив MonoDevelop, но не могу найти онлайн-инструкции для добавления Boo. Я могу быть очень плотным здесь, но может ли кто-нибудь указать указатель на то, как это сделать? Я пробовал SmallBasic сегодня. Это очень аккуратная концепция, но, похоже, не отладка, и ошибки компилятора были не очень полезны, на мой взгляд. Спасибо! Замечание о VirtualBox и VMWare также полезно. – daveagp

+0

@ daveagp: Извините за поздний ответ, я только что заметил ваш комментарий. Если вы посмотрите раздел «Исходный код Тарбола» на странице загрузки [MonoDevelop] [1], вы найдете его для добавления поддержки Boo (пятый элемент в таблице). Существует ссылка на инструкции по ее использованию непосредственно под таблицей. Что касается Small Basic, я не смотрел на него, так как он был на devlabs и не понимал, что поддержки отладки нет, извините. Радует предложение виртуализации. [1]: http://monodevelop.com/Download – Rory

0

Это похоже на то, что вам нужно будет написать собственный язык. Хотя я бы хотел сказать, что существуют открытые и бесплатные версии редакторов для C# (как для Windows, так и для Linux), и этот язык является хорошим поперечным сечением различных других языков (java, C++ и т. Д.). Импорт языков и модули (например, System.Console) могут быть легко устранены с помощью псевдонимов и частичных классов, которые могут быть предоставлены в «новом проекте» по умолчанию, так что все работает так, как вы указали выше.

Вне этого вы можете посмотреть языки сценариев (Python, Powershell и т. Д.), Есть несколько вариантов IDE, но отладчик может быть более серьезной проблемой.

+0

Я ничего не знаю об этом подходе псевдонима/частичного класса. Можете ли вы быть явным или указать указатель на дополнительную информацию? – daveagp

0

Посмотрите freebasic, который является 32-битный базовый компилятор и является открытым исходным кодом, который может соответствовать законопроект, смотрите здесь phatcode.net ... цитировать с их сайта (первая ссылка):

 
FreeBASIC is a completely free, open-source, 32-bit BASIC compiler, with 
syntax similar to MS-QuickBASIC, that adds new features such as pointers, 
unsigned data types, inline assembly, object orientation, and many others. 

Говоря о которых, вы хотели 64-битную версию на BASIC, как синтаксис, взгляните на этот QB64 ..on вики-страницы своего сайта here, цитировать их страницы here:

 
QB64 is a compiler with an editor(IDE) that strives for 100% Qbasic and 
QuickBasic 4.5 compatibility. Galleon is the author of QB64 and has decided 
to work alone on the compiler for the time being to keep it on the right track, 
but open-source has been implied in the future. 


QB64 not only strives for 100% QB 4.5 compatibility but also strives to extend 
the capabilities of QBasic to fit modern needs without changing the 
BASIC philosophy. New statements often begin with _ to keep it compatible 
with old QB source. 
+0

«Я думаю о рекламе компании« Мысль Процессоры »или колледже, притворяющемся, что обучение BASIC достаточно или, по крайней мере, помогает, тогда как преподавание BASIC должно оцениваться как уголовное преступление: оно искажает ум без восстановления». --- Edsger W. Djikstra – erjiang

+0

@mazin: * предлагает свои запястья, чтобы получить наручники * .... – t0mm13b

+0

mazin: быть справедливым, это был Основной из дней славы, '10305 GOTO 2070' и $ для строки переменные. Современные основы - это полностью структурированные языки, более общие с Алголом и Паскалем, чем с старым Басиком 1960-х и 70-х годов. Я предполагаю (не глядя), что базовые ссылки tommieb - это такие современные диалекты. – itowlson

2

F # звучит как самый лучший вариант, потому что вы не должны делать OO, или функциональным, но вы можете смешайте их вместе, как вам будет угодно. Он имеет интерактивную оболочку, но он также полностью безопасен по типу. Он интегрируется со всеми библиотеками .NET и построен специально, чтобы упростить интеграцию с другими языками и библиотеками, обеспечивая крючки и т. Д.

Для студентов это дает им возможность интерактивно проектировать программы, но также использовать Visual Studio для создания приложений F # с полным intellisense и т. д ....

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

Заканчивать Дон Сайм (создатель F #) дает 3 части лекции на F #, где он говорит о том, что интерактивный, Interative, экспериментальным путем разработки с F #, его функции и так далее: http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Don-Syme-Introduction-to-F-1-of-3/

0

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

Я преподаю Java в своем классе средней школы, используя JCreator в качестве среды IDE. В следующем году мы перейдем к AP Computer Science, которая также преподает Java. Это не идеально, но это хороший выбор, принимая во внимание: - Java имеет C подобный синтаксис - Java делает большой объект преподавательскую работу ориентированное программирование - Это бесплатно - Он широко используется

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

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

+0

Java не плох, это один из двух моих любимых языков (вместе с Maple), но я исключил его из-за того, что (например, C#, VB) я бы предпочел вообще не говорить об объектах или «статических» или «System.out». в начале, если я смогу избежать этого. Для немного более продвинутого курса, когда у кого-то есть некоторые отбивные, это кажется более разумным. Я нахожу, что это действительно очень распространено для людей, которые программируют для жизни (среди тех, кого я просил), чтобы начать учиться на языке, таком как Basic или Pascal, который они ничего не используют, и ему понравилось. Благодарю вас за предложение. – daveagp

0

Что касается Modula2 как старого школьного языка процедуры и XDS в качестве IDE для использования. Modula2 очень похож на Паскаль и действительно сфокусирован. Это был мой первый язык программирования ...

+0

Спасибо! но мы уже выбрали Python (и комбинацию IDLE и пользовательской среды онлайн-оценки) – daveagp

Смежные вопросы