-
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
Następne wpisy z tego wątku
- 31.03.11 05:29 p...@p...onet.pl
- 31.03.11 05:45 p...@p...onet.pl
- 31.03.11 08:12 Maciej Sobczak
- 31.03.11 19:23 Wojciech Jaczewski
- 31.03.11 21:11 Paweł Kierski
- 31.03.11 21:26 Wojciech Muła
- 31.03.11 22:01 Wojciech Jaczewski
- 31.03.11 22:08 Michoo
- 31.03.11 22:18 Michoo
- 31.03.11 22:23 A.L.
- 31.03.11 22:29 A.L.
- 01.04.11 02:31 Mariusz Marszałkowski
- 01.04.11 07:24 Paweł Kierski
- 01.04.11 07:43 Paweł Kierski
- 01.04.11 08:14 Mariusz Kruk
Najnowsze wątki z tej grupy
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
Najnowsze wątki
- 2025-05-05 Warszawa => Team Lead Data Engineer (Snowflake) <=
- 2025-05-05 Warszawa => Spedytor Międzynarodowy <=
- 2025-05-05 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-05-05 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-05-03 gazowe kuchnie są znacznie bardziej szkodliwe dla zdrowia, niż dotychczas sądzono
- 2025-05-03 Czyli jednak elektryki są TANIE i powszechnie dostępne dla obywateli
- 2025-05-03 Elektryki do Morskiego Oka do utylizacji
- 2025-05-03 Crash testy na publicznej drodze - 4 BMW zderzone
- 2025-05-03 pojebane Google
- 2025-05-03 Brednie w wiki - hasło Dehomag
- 2025-05-03 gazowe kuchnie są znacznie bardziej szkodliwe dla zdrowia, niż dotychczas sądzono
- 2025-05-03 Chiny => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu <
- 2025-05-03 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-05-03 Warszawa => Frontend Developer (Angular13+) <=
- 2025-05-02 Gliwice => Business Development Manager - Network and Network Security