LINUX.ORG.RU

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


1

7

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

★★★★

Последнее исправление: aptyp (всего исправлений: 2)

Лучше всего начинать с ассемблера, относительно прост в изучении, никогда не умрет, да и полезен для понимания «во что оно в итоге превращается». Сам с него начинал.

Deleted
()

Могу судить только по себе и по своим результатам. Начинал с бейсика. Потом начал искать что-то более серьезное, посмотрел на паскаль но выбрал 'C' за его лаконичность. А уже потом C++ т.к. понять объектно-ориентированный подход весьма не просто, из-за того, что выгода от его применения не очень хорошо видна без перестройки мышления. Ну а после можно выучить все, что угодно.

merlin-shadow
()
Ответ на: комментарий от marat2345

БГУ) Но первые два до универа были.

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

Когда то были же нужны, сейчас, да)

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

лучше уж хаскеллом рисовать

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

Тред не читал (многабукаф)

Сам преподаватель не-программистов. Если числодробилки, и это будущие учёные, то рекомендую такую цепочку: С - Fortran - Python - потом самые умные пусть плюсы осваивают и программирование в матлабе или в нужном пакете.

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

Stalin ★★★★★
()

ИМХО, все же им нужно сразу C давать, не вижу особого смысла забивать юный мозг «дарований» другими языками, тем более если надо "..соединять уже готовые вещи с C/C++..". Про R тут правильно сказали, нужная и интересная вещь.

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

рядом с коболом

Вспомнилось: http://www.opennet.ru/opennews/art.shtml?num=32529

Исследователи выявили, что наибольшее число проблем свойственно проектам на платформе Java-EE, а наименьшее - на языке Cobol. Расчетная стоимость исправления проблем для Java составила $5.42 на строку кода, а для Cobol - $1.26. При оценке безопасности кода, наихудшие показатели наблюдаются у платформы .NET, лучшие у программ на языке Cobol. По мнению исследователей наименьшее число проблем в программах на языке Cobol объясняется спецификой использования данного языка и богатым 30-летним опытом разработки. Проблемы в коде на языке Java связываются с тем, что много людей начинают создавать программы на данном языке не имея надлежащей теоретической подготовки по компьютерным наукам.

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

фортран фактически рипнулся уже.

ой да ладно. Пока не рипнулись сотни софта на нем написанного, он будет жить.

annulen ★★★★★
()

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

А вообще дать задачу и пускай сами решают как хотят.

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

ага, и принесут решение на брейнфаке? Мне раз принесли на ocaml. Пришлось сидеть ночь и ускорено разгребать мануал...

Математикам нужен фортран, немного си и питон. К плюсам долезут самые умные (неленивые), если им понадобятся.

terminat0r
()

какой язык посоветует ЛОР, помогающий развить мозг молодых учёных до уровня С/С++

азы цифровой схемотехники и ассемблер под дос

chg ★★★★★
()

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

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

С1Х или C99?

да любой я посмотрел вроде c1x полностью обратно совместим с c99 ,для обучению програмированию вообще не нужно всех наворотов языка нужны основы,а си как нельзя лучше подходит к этому благодаря малому кольчеству инструментов для лентяев если так можно сказать конструкции языка не имеют несколько уровней вложености абстракций а делают то что должны почти напрямую

Squeeze
()

Fortran: для решаемой задачи.

С++(Qt, Qwt): для GUI.

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

С1Х или C99?

C89 и C99, естественно.

Если, конечно, ты не планируешь всё программирование «на бумажке» делать.

LamerOk ★★★★★
()

Javascript node.js и задачу свою сделаете наура и в реальной жизни потом студентам эти навыки пригодятся. ИМХО яваскрипт на данный момент самый перспективный язык. Производительность лучше чем у питона, руби и прочего тому подобного. Переписать на С++ потом полностью или частично - проще чем с какого лиюл другого языка.

anonymous
()

haskell & fortran

не осилили? «прикладные математики?» вызвездить нах, лопата ждет!

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

С - Fortran - Python

После C изучать ФОРТРАН неинтересно, наверное. В целом присоединяюсь к такому набору языков, включая R.

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

ANSI C (K&R)... C1X не подходит, пока компиляторы полностью не начнут поддерживать спецификации.

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

Собственно, как и Delphi

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

annulen ★★★★★
()

Я бы выбрал питон. Достаточно практичен, прост. Разве что к отступам нужно привыкнуть)

Deleted
()

НЕТ!!!

Только не пасаль! Это я как студент говорю! Питон, плюсы, пхп, жава! Все что угодно, но только не паскаль!

SDSWanderer
()
Ответ на: НЕТ!!! от SDSWanderer

Доканали им в школе/универе?) Понимаю Но для обучения он неплох...но питон лучше!

Deleted
()
Ответ на: комментарий от annulen

Это-то понятно. ТС говорит же в посте об языке для обучения, а не для поддержки кучи уже созданного софта. Ну вот Лазарус вроде бы, как кросплатформенная среда подходит для этих целей. Плюс куча литературы по обучению программированию на O. Pascal и FreePascal.

ИМХО, как вариант, а не панацея.

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

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

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

И вот, столкнувшись с тем, что отданные под моё руководство студенты 3го курса не сильно способны

Сорри, мне лень читать 19 страниц треда, так что возможно на этот вопрос ты уже отвечал.

Что ты хочешь от студентов на «выходе»? Если все так печально, то почему бы вместо того чтобы через силу впихивать знания, которые после сдачи экзамена мгновенно забудутся, стоит заняться самой голимой фундаментальщиной уровня 11го класса - 1го курса?

Займись с ними алгоритмизацией: оценкой сложности, разбором типовых алгоритмов, структурами данных. А то я подозреваю, что они у тебя не знают чем массив от списка отличается. Обязательно познакомь их с иерархическими структурами на примере тех же XML и JSON.

Объясни им что такое ООП/ООД. Я сомневаюсь, что у них насчет этого есть целостное представление.

Обязательно познакомь их с системами контроля версий. Пусть свои творения на гитхабе публикуют.

Насчет языка я в последнее время очень и очень сильно склоняюсь к ява-скрипту, node.js, и вебу как среде. Например, проблема с GUI решается очень просто через тот же ExtJS (и массу других фреймворков), да и логика представления физически отделена. А это - большой плюс. Да и ява-скрипт сейчас занимает ту же нишу, которую по идее должен занимать лисп.

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

На «выходе» хочу, чтобы они умели решать задачи, пусть без гуя, без сети, на вход программке файл с исходными данными, на выходе - файл с исходными данными.
C системой контроля версиями начал знакомить, они на почту посылают файлы тем не менее
Да я уже начал изучать питон, в принципе нравится, удивиляющего при работе было мало, да и батареек тоже много.
Лисп должен занимать нишу скриптовых языков? Интересненько.

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

На «выходе» хочу, чтобы они умели решать задачи

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

Мотивация проста: студенчество - единственное время когда можно невозбранно заниматься голимой теорией. Потом - это будет намного сложнее.

А питон... Да питон за неделю освоит любой. Кроме того, питон - типичный пример тупиковой технологии. Да - здорово, да - хорошая реализация, да - занимает свою нишу. А перспективы? Никаких! И не будет никогда.

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

Лисп должен занимать нишу скриптовых языков?

JS давным-давно не скриптовый язык.

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