Zapoznałem się z LISP do celów samodoskonalenia. Jedną z rzeczy, które zauważyłem, jest to, że LISP jest o wiele bardziej zgodny z paradygmatem matematyki niż powiedzmy C. Składnia i struktura projektu wydają się bezpośrednio odzwierciedlać rzeczywisty model matematyczny algorytmu. Nie ma dla mnie sensu, dlaczego nawet dobre programy CS oparte na matematyce uczą się C zamiast LISP. Myślę, że LISP bardziej bezpośrednio stosuje wyższe pojęcia matematyczne niż C. Nie twierdzę, że nie można modelować struktur matematycznych w C. Po prostu zauważam, że LISP wydaje się być sztywno powiązany z matematykami.
Czytałem wiele z wypowiedzi Joela Spolsky'ego w szkołach JAVA i co nie - i zgadzam się z jego oceną - ale moja szkoła nie uczyła JAVA z tego właśnie powodu. Byli surowi w nauczaniu podstawowych pojęć, takich jak wskaźniki, projektowanie algorytmów, rekurencja, a nawet instrukcje asemblacyjne. Jednak zrobili to wszystko w C i c ++. Czy ktoś zna przyczyny tego i / lub jego historii?
źródło
Odpowiedzi:
DOBRZE. Nudną odpowiedzią jest to, że ostatecznie większość szkół uczy tego, co profesorom jest wygodne, a większość profesorów nie dorastała, hakując Lisp; swoje wczesne lata spędzili w terenie z językami opartymi na Algolu. Z tego powodu, lata później, kiedy budują program nauczania, kończysz na szkołach, które uczą CS z podstawami w Pascal, potem w C, potem w C ++, a potem w Javie.
Potem masz szkoły, które są niżej i kilka lat młodsze. Spoglądają w górę na poprzeczkę wyznaczoną przez szkoły prowadzące i widzą, że uczniowie opuszczają szkoły znając C, i widzą, że ich uczniowie oczekują tego samego - więc zaczynają uczyć C, potem C ++, a potem Jawa.
Wreszcie, masz kilka instytucji technicznych lub „niższej klasy”, które po prostu uczą każdego zestawu technologii, który będzie pasował do słów kluczowych, których uczniowie chcą w swoich życiorysach - więc w zasadzie otrzymujesz Javę.
Mimo to, niektóre szkoły zrobić uczyć Lisp, chociaż może to być więcej niż fakultatywne języka fundamentalnej. Nawet szkoły, które nie uczą Lisp jako samodzielnego języka, używają go intensywnie w kursach AI, więc początkujące kursy AI mają koncentrację na początku programowania Lisp.
źródło
To naprawdę zależy od uniwersytetu. Schemat (dialekt seplenienia) od wieków był językiem wstępnego kursu informatyki na MIT, chociaż ostatnio został zastąpiony pythonem. Mam BS w CS w szkole inżynierskiej, gdzie byłem narażony na C, Scheme, Prolog i C ++ podczas pierwszego roku. Myślę, że to była dobra mieszanka.
Mocno wierzę, że język, od którego zaczynasz, jest o wiele mniej ważny niż bycie wcześniej wystawionym na wiele paradygmatów, zanim twój mózg zamrozi się w jeden sposób patrzenia na świat.
źródło
Zasadniczo teoria informatyki jest matematyczna. Inżynieria oprogramowania jednak nie jest. Bezpośrednie modelowanie pojęć matematycznych nie jest nieodłączną zaletą - twierdzę, że często może być wadą.
Dobre teorie i dobre programy niekoniecznie są ze sobą powiązane.
źródło