eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCarnegie-Mellon przestaje uczyc programowania obiektowegoRe: Carnegie-Mellon przestaje uczyc programowania obiektowego
  • Data: 2011-03-30 21:31:01
    Temat: Re: Carnegie-Mellon przestaje uczyc programowania obiektowego
    Od: "Wiktor Zychla" <w...@n...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    > oglosil ze pzrestaje uczyc programwoania obiektowego na wstepnych
    > kursach programwoania

    Jezeli celem "wstepnych kursów programowania" jest przeglad koncepcji
    programowania, to usuwanie z niego któregokolwiek z paradygmatów jest
    dyskusyjne. Mozna dyskutowac o "wyrównywaniu proporcji", jesli z jakiegos
    powodu nauczanie mialo charakter zbyt "inzynierski" i opieralo sie na
    przyklad wylacznie o jezyki obiektowe. Ale usuwac? To pachnie podejsciem
    dogmatycznym, zamiast oczekiwanym - praktycznym.

    Z wlasnego podwórka - w Instytucie Informatyki UWr, gdzie pracuje, od dawna
    programowania nie uczy sie na przykladzie zadnego konkretnego jezyka -
    zamiast tego studenci uczeszczaja na "Programowanie", gdzie

    "Celem zajec jest przedstawienie studentom mozliwie szerokiego kregu
    zagadnien zwiazanych z programowaniem komputerów, ze szczególnym
    uwzglednieniem podstawowych konstrukcji wystepujacych w jezykach
    programowania i zwiazanych z nimi technik tworzenia programów."

    Program obejmuje:

    Podstawy inzynierii oprogramowania. (3 godz.)
    Definicje indukcyjne, rekursja i dowody przez indukcje strukturalna. (1
    godz.)
    Gramatyki regularne i bezkontekstowe. Analiza leksykalna i skladniowa.
    Lekser. Parser. Konkretne i abstrakcyjne drzewa rozbioru. (3 godz.; Teoria
    informatyki)
    Metody opisu semantyki jezyków programowania. Strukturalna semantyka
    operacyjna. Semantyka denotacyjna. Definicje rekurencyjne i funkcje
    czesciowe. (5 godz.; Wstep do semantyki jezyków programowania)
    Logika Hoare'a i dowodzenie poprawnosci programów. Metoda niezmienników.
    Synteza programów metoda wstepujaca i zstepujaca. (5 godz.; Wstep do
    semantyki jezyków programowania)
    Struktura wspólczesnych jezyków programowania. Nazwy, komórki i wartosci,
    struktury sterujace, funkcje i procedury, dynamiczne struktury danych,
    wyjatki. Typy danych, mocna typizacja, rekonstrukcja typów. (7 godz.)
    Pojecie translatora. Zasieg zmiennych, wywolywanie funkcji i zarzadzanie
    pamiecia. Jezyki o strukturze blokowej, rekordy aktywacji, metody przydzialu
    pamieci dla zmiennych lokalnych i globalnych. Funkcje wyzszego rzedu, funarg
    problem. Automatyczne zarzadzanie pamiecia i odsmiecanie. (6 godz.;
    Translatory)
    Algebraiczne specyfikacje typów danych. Typy definiowane indukcyjnie (listy,
    drzewa, stosy, kolejki itd.) Indukcyjne dowody ich wlasnosci. (4 godz.;
    Algorytmy i struktury danych)
    Moduly, rodzajowosc i abstrakcja danych. Ukrywanie (encapsulation) danych.
    Rozwiazania w konkretnych jezykach (moduly, pakiety w Adzie, klastery w
    Clu). Rodzajowosc (funktory, pakiety rodzajowe, wzorce (templates) w C++).
    (6 godz.; Algorytmy i struktury danych)
    Programowanie funkcjonalne. Programowanie deklaratywne a imperatywne. Skutki
    uboczne. Porzadek wartosciowania. (4 godz.; Programowanie funkcjonalne)
    Programowanie obiektowe, metodologia OO, obiekty i klasy, abstrakcyjne typy
    danych a klasy, podtypowanie a dziedziczenie, jezyki bezklasowe, Smalltalk.
    Obiektowy styl programowania w C++. Java. (6 godz.; Programowanie obiektowe)
    Wspólbieznosc. Elementarne metody synchronizacji: semafory, monitory, rejony
    krytyczne. CSP. CCS. Model asynchroniczny. Programowanie rozproszone.
    Kanaly, watki, coroutines. Mechanizmy wspólbieznosci w Adzie i innych
    jezykach programowania. Pieciu filozofów itp. Obliczenia sterowane
    przeplywem danych. (6 godz.; Obliczenia równolegle i rozproszone, Systemy
    operacyjne)
    Programowanie w logice. Prolog. (4 godz.; Programowanie logiczne)

    Mozna spierac sie o szczególy, ale jest tu dokladnie to, co daje podstawe do
    studiowania wielu dalszych zagadnien zwiazanych z programowaniem.

    I gdyby mój Szanowny Kolega prowadzacy wyklad oglosil wszem i wobec, ze z
    programu nauczania usunal zagadnienia zwiazane z programowaniem obiektowym,
    bo "it is both anti-modular and anti-parallel by its very nature, and hence
    unsuitable for a modern CS curriculum" to - podobnie jak tam - zwyczajnie
    "zubozylby" ten wyklad.

    Jezyki funkcjonalne bronia sie same, nie trzeba im pomagac na sile usuwajac
    z programu nauczania Jave. Efekt moze byc odwrotny od zamierzonego. W
    kontekscie polskim nie mamy sie kompletnie czego wstydzic - zalaczony wyzej
    przyklad pokazuje, ze tam gdzie sie chce, tam mozna.

    pozdrawiam uprzejmie,
    Wiktor Zychla

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: