LINUX.ORG.RU

Язык для обучения программированию


1

7

Понятно, что Java - наверное самый мэйнстрим на текущий момент, ну с C#(Mono)(я не рассматриваю здесь пыхпых, джаваскрипт и прочий веб), но мне известна(как и большинству местных) статья, что изучение с Явы вредно для мозгов.
И вот, столкнувшись с тем, что отданные под моё руководство студенты 3го курса не сильно способны заниматься программированием на С++, задумался, как решить эту проблему, избегая 2х тупиков - делать всё за них, и выгнать их.
Допуская, что производительность языка не нужна(хотя, ввиду того, что делаем мы в основном числодробилки, это очень сильно допущение) и вообще у нас под рукой кластер, какой язык посоветует ЛОР, помогающий развить мозг молодых учёных до уровня С/С++? Да и вообще, список годных для обучения, и негодных соответственно. Думал было python, но тем не в нём производительность недостаточная, а самому реализовывать затратные вещи на С пока не хочется.
Update: vb и delphi не Ъ ввиду того, что я то под линуксом сижу. Update 2: всё, наработанное за время использование предложенного языка, не хочется терять, поэтому хорошо бы, если б можно было соединять уже готовые вещи с C/C++. Насчёт pascal я просто никогда такого не желал, там такое есть?

★★★★

Последнее исправление: aptyp (всего исправлений: 2)
Ответ на: комментарий от fluorite

вот кстати с Паскалем то студенты и работали, да.

aptyp ★★★★
() автор топика
Ответ на: комментарий от rigiy

Мои самые нелюбимые языки практически, правда может тогда autocompletion не было.

aptyp ★★★★
() автор топика
Ответ на: комментарий от dikiy

не буду оригинален: паскаль.

а если студенты - это будущие программисты, то можно уже через семестр начинать их щемить C.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

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

aptyp ★★★★
() автор топика
Ответ на: комментарий от aptyp

При смене языка не потеряю наработанный код? Слинковать можно будет?

Почти программисты - прикладные математики.

Эмм. Так они реальный проект должны делать?

Код не потеряешь. stdcall/cdecall директивы придут на помощь :)

dikiy ★★☆☆☆
()
Ответ на: комментарий от aptyp

Почти программисты - прикладные математики.

ну а если прикладники, то С++ они и сами осилить смогут, если понадобится.

А после паскаля можно сразу C вместе с octave начинать учить.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

Ну да, реальный. По научной работе, для собственного пользования большей частью
Ок)))

aptyp ★★★★
() автор топика
Ответ на: комментарий от Rzhepish

С, haskell и lisp-подобные не поймут же, даже на C++ мозгов не хватает.
а ocaml динамический или как? PhD как для хаскелла при его изучении требуется?

aptyp ★★★★
() автор топика

Выгнать студентов, не осиливших С с указателями и рекурсией.

Они пришли учиться или где?

r2d2
()
Ответ на: комментарий от silw

в каком месте? он еще не одно поколение закапывателей переживет.

в таком, что на нем уже практически никто не пишет. Использовать наработанное - используют (и это хорошо).

dikiy ★★☆☆☆
()
Ответ на: комментарий от r2d2

Выгнать студентов, не осиливших С с указателями и рекурсией.

зачем создавать самому себе трудности там, где их можно не создавать?

Они пришли учиться или где?

прикладники должны уметь думать и решать задачи. А программировать они должны лишь по мере надобности.

То есть ни Qt, ни Gtk, ни другой хренотени им вообще не надо. Да даже объектное программирование не особо надо, по большому счету. Достаточно того, чтобы мочь использовать данные библиотеки классов.

А тратить учебное время (а тем более в начале обучения) на борьбу с эпическими граблями C (а тем более C++) - это просто непростительно.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

Ну прикладнику приходится писать и гуи для бд(именно такое задание сейчас было), к тому же подрабатывать опять же, и Qt по использованию полегче GTK+

aptyp ★★★★
() автор топика
Ответ на: комментарий от dikiy

Плюсую, опять же кроме qt и gtk - все любят баззворд «программный комплекс», к сожалению. И вдобавок это просто удобнее на гуе определенный repl - запустить окошко, выбрать задачу, посчитать, отрисовать, заново запустить(если код менять, то перекомпилировать, да).

По мере этой надобности приходится программировать числодробилки, а их лучше на С же

aptyp ★★★★
() автор топика

помогающий разрушить мозг молодых учёных до уровня С/С++?

починил.

anonymous
()

aptyp

Язык для обучения программированию

Pascal. Хотя Рэймонд рекомендует python. А Lazarus хорошо понимает проекты Delphi 7.

stolz
()
Ответ на: комментарий от aptyp

Ну прикладнику приходится писать и гуи для бд(именно такое задание сейчас было),

бедные студенты :(

к тому же подрабатывать опять же, и Qt по использованию полегче GTK+

это да.

dikiy ★★☆☆☆
()
Ответ на: комментарий от aptyp

По мере этой надобности приходится программировать числодробилки, а их лучше на С же

с учетом того, что GSL на C - да. Но вообще я лично предпочитаю числодробилки программировать на octave.

dikiy ★★☆☆☆
()
Ответ на: комментарий от aptyp

aptyp

Эрик Рэймонд?

Ага. Он самый. Считает, что python лучше для начинающих, в силу своей академичности. А уже потом можно C, C++, Lisp и всё остальное. Но если не нравится python - я бы посоветовал pascal, потому что он прост, понятен и весьма формализован.

stolz
()

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

anonymous
()

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

Jetty ★★★★★
()

Matlab или Mathematica.

anonymous
()
Ответ на: комментарий от schizoid

Готов услышать твои обоснования против.

Qt сильно специфичный. одни slot/signal чего стоят. Да и чтобы его понимать, надо _уже_ иметь представление, что такое ООП. И непонятно на чем же собсно тогда в Qt4 учиться.

Вместо реализации алгоритма буду одни наступания на грабли.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

Qt сильно специфичный.

Фреймворк общего назначения, созданный на основе нескольких техник и даже языков. Гуй/сеть/графика/БД; пицот контейнеров с подробной документацией (в т.ч. алгоритмическая сложность); движок сообщений, метаобъектная система, blah, blah..

одни slot/signal чего стоят.

Ничего необычного и обязательным не является. Есть даже такая же нативная фича линукса.

Да и чтобы его понимать, надо _уже_ иметь представление, что такое ООП.

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

И непонятно на чем же собсно тогда в Qt4 учиться.

Не понял этой фразы. Не обязательно уметь проектировать классы, для того, чтобы пользоваться Qt. C++ императивный стиль тоже поддерживает.

schizoid ★★★
()
Ответ на: комментарий от aptyp

Всякие лиспы значительно проще C++. С вообще самый простой язык, если грамотно подойти к вопросу. А вообще есть пыхтон, а для пыхтона есть numpy итд .. :]

vasily_pupkin ★★★★★
()
Ответ на: комментарий от schizoid

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

ТС спрашивал на чем учить студентов _программированию_. При чем тут ООП?

Qt сильно специфичный.

Фреймворк общего назначения, созданный на основе нескольких техник и даже языков. Гуй/сеть/графика/БД; пицот контейнеров с подробной документацией (в т.ч. алгоритмическая сложность); движок сообщений, метаобъектная система, blah, blah..

вот этим он и является сильно специфичным. Сборник велосипедов.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

ТС спрашивал на чем учить студентов _программированию_. При чем тут ООП?

Не ко мне вопрос. Твои слова:

Да и чтобы его понимать, надо _уже_ иметь представление, что такое ООП.

Ответ: не надо.

Сборник велосипедов

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

schizoid ★★★
()
Ответ на: комментарий от vasily_pupkin

Чувак. Думать алгоритмами ты и так умеешь, А вот думать компьютерными алгоритмами надо учиться.

Jetty ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.