Jednym z powodów, dla których naprawdę warto pójść na uniwersytet, jest możliwość wyjścia poza prostą edukację zawodową i zamiast tego uchwycenie głębszych idei.

Porozmawiajmy przez chwilę na ten temat. Kilka lat temu wydziały Informatyki zaprosiły mnie do wygłoszenia wykładów w kilku uniwersytetach. Prawie przypadkowo zapytałem swoją pierwszą publiczność, składającą się z studentów ostatnich lat, doktorantów i profesorów, o ich definicję „Informatyki”. Wszyscy potrafili podać tylko definicję inżynieryjną. Powtarzałem to w każdym nowym miejscu i wszędzie otrzymywałem podobne wyniki.
Kolejnym pytaniem było: „Kim jest Douglas Engelbart?”. Kilka osób powiedziało: „czyż nie był jakoś związany z myszką komputerową?” (i to mnie bardzo rozczarowało, ponieważ moje środowisko naukowe włożyło wiele wysiłku, aby odpowiedź na to pytanie była możliwa po dwóch-trzech kliknięciach myszką i upewnić się, że Engelbart rzeczywiście był jakoś związany z myszką komputerową).
Częściowo problem polegał na braku ciekawości, częściowo na wąskich osobistych celach, które nie były związane z nauką, a częściowo na braku wyobrażenia o tym, czym jest ta dziedzina, i tak dalej.
Od kilku lat pracuję na pół etatu na Wydziale Informatyki Uniwersytetu Kalifornijskiego (w zasadzie jestem profesorem, ale nie muszę chodzić na zebrania wydziału). Od czasu do czasu prowadzę zajęcia, czasami dla studentów pierwszego roku. W ciągu tych lat już niski poziom ciekawości do Informatyki znacznie się obniżył (ale też wzrosła popularność, ponieważ informatyka jest postrzegana jako droga do dobrze płatnej pracy, jeśli potrafisz programować i zdobyłeś certyfikat w najlepszych 10 szkołach). W związku z tym żaden student jeszcze nie skarżył się, że pierwszym językiem na Uniwersytecie Kalifornijskim jest C++!
Wydaje mi się, że staliśmy przed sytuacją, w której obie wartości „Komputer” i „Nauka” zostały rozbite przez słabe, masowe koncepcje, aby stworzyć nowy termin — coś w rodzaju etykiety na dżinsach — który brzmi dobrze, ale jest wystarczająco pusty. Podobnie z tym terminem, który został w podobny sposób zrujnowany, „inżynieria oprogramowania”, który znowu nie wykorzystał najbardziej genialnych idei „programowania” i „inżynierii”, a jedynie je połączył (to było celowe w latach sześćdziesiątych, kiedy to termin został wymyślony).
Jednym z powodów, dla których tak naprawdę warto pójść na uniwersytet, jest wyjście poza prostą edukację zawodową i zamiast tego uchwycenie głębszych idei. Wydaje mi się całkiem rozsądne, aby na wstępie do specjalizacji spróbować — jeśli to możliwe, z przykładami — sprawić, by uczniowie angażowali się w rzeczywiste problemy i zaczęli rozumieć, co tak naprawdę jest interesujące, ważne i centralne w tej dziedzinie.
Uczniowie pierwszych klas cieszą się, gdy pokazuje się im, jak linijka nałożona na inną linijkę staje się arytmometrem, za pomocą którego mogą przegonić piątą klasę w dodawaniu ułamków. A potem będą szczęśliwi, biorąc udział w opracowywaniu ulepszonych arytmometrów. Mieli kontakt z prawdziwym komputerem — fizycznym i mentalnym narzędziem, które pomaga nam myśleć. Nauczyli się naprawdę efektywnego sposobu reprezentacji liczb — bardziej skutecznego niż uczy się w szkołach!
Udało im się połączyć ich zdrową ideę „dodawania” jako „gromadzenia” z czymś podobnym i nowymi, potężnymi właściwościami. Zaprogramowali to tak, aby mogło rozwiązywać różnorodne problemy.
Rozszerzyli go także. I tak dalej. To nie jest komputer cyfrowy. I nie jest to komputer z pamięcią programu. Ale to istota komputera. Tak samo jak to w ogóle istota komputera i obliczeń.

Mechanizm antikitheryjski
Jak daleko możemy zajść i ile możemy zrobić, zanim wszystko wymknie się spod kontroli i zgubimy się w abstrakcjach? Zawsze byłem wrażliwy na cechę — pierwszego laureata nagrody Turinga, który być może wymyślił termin „informatyka” — który w latach 60. powiedział: „Informatyka to nauka o procesach”. O wszystkich procesach.
Dla dobra firmy Quora nie będziemy próbować tego dalej rozwijać ani przekształcać w religijną dogmę. Po prostu cieszmy się ideą. , aby lepiej zastanowić się nad naszą dziedziną. I szczególnie nad tym, jak tego uczyć. Teraz musimy spojrzeć na współczesne znaczenie „nauki”, a Perlis był dość przekonany, że nie powinno być rozcieńczane starymi znaczeniami (np. takim jak „zbieranie wiedzy”) i zastosowaniami (na przykład „bibliotekoznawstwo” czy nawet „nauki społeczne”). Pod „nauką” próbował zrozumieć fenomen, tworząc modele/mapy, które próbują pokazać, „śledzić” i przewidywać zjawiska.

Dałem kilka wywiadów na temat tego, jak najlepsze mapy i modele mogą często pasować do koszulki, tak jak równania Maxwella i inne. Analogią jest to, że istnieje „nauka o mostach”, chociaż większość mostów to dzieła ludzi. Ale gdy tylko most jest zbudowany, odzwierciedla zjawiska, które naukowcy mogą badać; z mostów można stworzyć modele wielu rodzajów i formułować wszechstronne oraz użyteczne „teorie mostów”. Zabawne jest to, że można następnie zaprojektować i zbudować nowe mosty (już wspominałem, że niewiele jest rzeczy bardziej zabawnych niż współpraca naukowców i inżynierów w rozwiązywaniu dużych i ważnych problemów!).

Herbert Simon — laureat nagrody Turinga i Nagrody Nobla — nazwał to wszystko „nauką o sztucznym” (i napisał wspaniałą książkę o tym samym tytule).

Pozwólcie, że podam przykład. W latach 50. firmy i uniwersytety budowały komputery z programem zapisywalnym i zaczynały je programować — był szczególny moment, kiedy w 1956 roku pojawił się Fortran — który nie był pierwszym językiem wysokiego poziomu, ale być może pierwszym, stworzonym na tyle dobrze, aby jego używać w wielu różnych dziedzinach, w tym w wielu, które wcześniej były realizowane tylko w języku maszynowym.
To wszystko wywołało „fenomeny”.

John McCarthy
Historia Lispa jest bardziej skomplikowana, ale John McCarthy był zafascynowany próbą znalezienia "matematycznej teorii obliczeń" i był zdeterminowany, aby wszystko działało doskonale. Funkcja eval, która interpretuje Lisp, z łatwością zmieści się na koszulce! W porównaniu do "systemu programowania" — to drobnostka. Co ważniejsze, ta "teoria obliczeń" miała potężniejszą koncepcję niż Fortran! To był najlepszy pomysł na most!
Minimalizm Lispa pozwala uchwycić całą ideę programowania za pomocą kilku kliknięć na głębszym poziomie i rozważyć ją na poziomie, który wydaje się zupełnie niemożliwy, gdy patrzy się na ogromne artefakty (to jedna z przyczyn, dla których naukowcy uwielbiają, gdy matematyka jest zwięzła i potężna). Matematyka użyta tutaj jest nową matematyką, ponieważ dopuszcza takie pojęcia jak "przed" i "po", co prowadzi do "logiki zmiennej wielkości", która pozwala zachować zarówno funkcjonalną zależność, jak i logiczny tok myślenia, jednocześnie dopuszczając stan i upływ czasu. (To wciąż nie jest zrozumiane w naszych czasach w brutalnym świecie programowania sytuacyjnego).
Lisp, będący potężnym językiem programowania i metajęzykiem zdolnym do przedstawienia własnej teorii, jest przykładem prawdziwej nauki komputerowej. Jeśli go opanujesz oraz inne podobne rzeczy, będziesz mógł myśleć głębiej i ponosić większą odpowiedzialność za swoją własną przyszłość, niż gdybyś po prostu nauczył się programować w Fortranie lub jego nowoczesnych odpowiednikach (… tak zbliżysz się do programistów!).
Dowiesz się znacznie więcej o specjalnych rodzajach projektowania, które są potrzebne w obliczeniach (na przykład zwykle nie docenia się, gdy obliczenia często wymagają wyjścia poza środowisko obliczeniowe: jedna z charakterystycznych cech przechowywanych programów obliczeniowych polega na tym, że to nie tylko materiał na program, ale materiał na zupełnie nowy komputer).
Inna przyczyna wyboru definicji Perlisa polega na tym, że ogólnie rzecz biorąc, obliczenia są bardziej związane z tworzeniem systemów różnego rodzaju niż z algorytmem, 'strukturami danych' czy nawet programowaniem jako takim. Na przykład komputer to system, obliczenia to systemy, sieć lokalna i internet to systemy, a większość programów powinna stanowić lepsze systemy niż te, którymi są (stary styl programowania z lat 50. przetrwał do momentu, w którym wydaje się, że programowanie powinno być takie — nie ma nic bardziej odległego od prawdy).
Internet jest dobrym przykładem — w przeciwieństwie do większości programów współczesnych czasów, nie trzeba go zatrzymywać, aby coś naprawić lub ulepszyć — bardziej przypomina system biologiczny — według naszego zamysłu, niż to, co większość ludzi uważa za system obliczeniowy. Jest znacznie bardziej skalowalny i niezawodny niż prawie wszystkie systemy programowe istniejące dzisiaj. To naprawdę warto przemyśleć, zanim zaczniemy uczyć początkujących w programowaniu mniej potężnych koncepcji!
Zatem, co musimy zrobić na pierwszym kursie informatyki, to wziąć pod uwagę, co studenci mogą faktycznie zrobić na początku, a następnie starać się pozostać w granicach ich 'obciążenia poznawczego', aby pomóc im dotrzeć do tego, co naprawdę ważne. Bardzo ważne jest, aby 'pozostać autentycznym' i znaleźć drogi, które będą intelektualnie uczciwe i odpowiednie dla tych, którzy dopiero zaczynają naukę. (Proszę, nie nauczajcie złych pomysłów tylko dlatego, że wydają się nieco prostsze — wiele złych pomysłów w rzeczywistości jest prostszych!).
Studenci powinni rozpocząć od stworzenia czegoś, co miałoby wiele ważnych cech, które omówiłem tutaj. Powinna to być system składający się z kilku dynamicznie współdziałających części itd. Dobrym sposobem na podjęcie decyzji, jaki język programowania zastosować, jest po prostu stworzenie czegoś, co ma tysiące współdziałających części! Jeśli nie, powinniście znaleźć coś takiego. Najgorsze, co można zrobić, to postawić studentów na ścieżkę zbyt słabej biegłości, która mocno ograniczałaby ich wielkie pomysły. To po prostu ich zabija — a my chcemy ich rozwijać, a nie zabijać.
O szkole GoTo

- 17-30 czerwca, 15-28 lipca, 12-25 sierpnia
Źródło: habr.com
