Я знакомился с LISP в целях самосовершенствования. Одна из вещей, которые я заметил, состоит в том, что LISP гораздо больше входит в парадигму математики, чем, скажем, C. Синтаксис и структура проекта, кажется, отражают непосредственно фактическую математическую модель алгоритма. Мне не имеет смысла, почему даже хорошие математические CS-программы изучают C вместо LISP. Я думаю, что LISP более непосредственно использует более высокие математические концепции, чем C. Я не говорю, что вы не можете моделировать математические структуры в C. Я просто замечаю, что LISP, кажется, запрограммирован для математиков.
Я читал многие из беспорядков Джоэла Спольски в школах JAVA, а что нет - и я согласен с его оценкой - но моя школа не преподавала JAVA именно по этой причине. Они были строгими в обучении фундаментальным понятиям, таким как указатели, разработка алгоритмов, рекурсия и даже инструкции по сборке. Тем не менее, они сделали все это на C и C ++. Кто-нибудь знает причины этого и / или его историю?
источник
Ответы:
OK. Итак, скучный ответ заключается в том, что, в конце концов, большинство школ преподают то, с чем профессора чувствуют себя комфортно, и большинство преподавателей не выросли, взламывая Лисп; они провели свои первые годы в области с основанными на Алголе языками. Из-за этого, спустя годы, когда они создают учебную программу, вы попадаете в школы, которые преподают CS с основами на Pascal, затем C, затем C ++, а затем Java.
Тогда у вас есть школы, которые находятся на более низком уровне и на несколько лет моложе. И они смотрят на планку, которую установили ведущие школы, и видят, что ученики покидают эти школы, зная C, и видят, что их собственные ученики ожидают того же - поэтому они начинают преподавать C, затем C ++, затем Джава.
Наконец, у вас есть несколько технических или «младших» учебных заведений, которые просто обучают тому, какой набор технологий будет соответствовать ключевым словам, которые студенты хотят найти в своих резюме - так что вы в значительной степени просто получаете Java.
Это , как говорится, некоторые школы делают диспут Lisp, хотя это может быть более выборным , а не основополагающий языком. И даже школы, которые не преподают Лисп как самостоятельный язык, широко используют его на курсах ИИ, поэтому курсы ИИ для начинающих действительно концентрируются в начале программирования на Лисп.
источник
Это действительно зависит от университета. Scheme (диалект lisp) был языком для вводного курса по информатике в Массачусетском технологическом институте целую вечность, хотя недавно он был заменен на python. Я получил степень бакалавра в области CS в инженерной школе, где я познакомился с C, Scheme, Prolog и C ++ в течение первого года обучения. Я думаю, что это было хорошее сочетание.
Я твердо верю, что язык, с которого вы начинаете, гораздо менее важен, чем раннее воздействие множества парадигм, прежде чем ваш мозг замерзнет, чтобы взглянуть на мир.
источник
По сути, теория информатики является математической. Программной инженерии, однако, нет. Непосредственное моделирование математических понятий не является неотъемлемым преимуществом - я бы сказал, что это часто может быть недостатком.
Хорошие теории и хорошие программы не обязательно связаны.
источник