Paradygmaty programowania: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Pitab (dyskusja | edycje)
Pitab (dyskusja | edycje)
Linia 66: Linia 66:


* [[Paradygmaty_programowania/Moduł 1| Co to jest paradygmat programowania?]] ([[Paradygmaty_programowania/Ćwiczenia 1|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 1| Co to jest paradygmat programowania?]] ([[Paradygmaty_programowania/Ćwiczenia 1|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 2| Semantyka zmiennych]] ([[Paradygmaty_programowania/Ćwiczenia Semantyka zmiennych|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 2| Semantyka zmiennych]] ([[Paradygmaty_programowania/Ćwiczenia 2|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 3| Typy, typy abstrakcyjne]] ([[Paradygmaty_programowania/Ćwiczenia Typy, typy abstrakcyjne|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 3| Typy, typy abstrakcyjne]] ([[Paradygmaty_programowania/Ćwiczenia 3|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 4| Podprogramy]] ([[Paradygmaty_programowania/Ćwiczenia Podprogramy|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 4| Podprogramy]] ([[Paradygmaty_programowania/Ćwiczenia 4|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 5| Programowanie obiektowe — przegląd]] ([[Paradygmaty_programowania/Ćwiczenia Programowanie obiektowe — przegląd|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 5| Programowanie obiektowe — przegląd]] ([[Paradygmaty_programowania/Ćwiczenia 5|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 6| Programowanie funkcyjne — przegląd]] ([[Paradygmaty_programowania/Ćwiczenia Programowanie funkcyjne — przegląd|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 6| Programowanie funkcyjne — przegląd]] ([[Paradygmaty_programowania/Ćwiczenia 6|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 7| Programowanie w logice - przegląd]] ([[Paradygmaty_programowania/Ćwiczenia Programowanie w logice - przegląd|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 7| Programowanie w logice - przegląd]] ([[Paradygmaty_programowania/Ćwiczenia 7|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 8| U podstaw programowania funkcyjnego— rachunek lambda]]([[Paradygmaty_programowania/Ćwiczenia U podstaw programowania funkcyjnego— rachunek lambda|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 8| U podstaw programowania funkcyjnego— rachunek lambda]]([[Paradygmaty_programowania/Ćwiczenia 8|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 9| U podstaw programowania obiektowego — rachunek sigma]] ([[Paradygmaty_programowania/Ćwiczenia U podstaw programowania obiektowego — rachunek sigma|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 9| U podstaw programowania obiektowego — rachunek sigma]] ([[Paradygmaty_programowania/Ćwiczenia 9|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 10| Programowanie funkcyjne w Haskellu (część pierwsza)]] ([[Paradygmaty_programowania/Ćwiczenia Programowanie funkcyjne w Haskellu (część pierwsza)|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 10| Programowanie funkcyjne w Haskellu (część pierwsza)]] ([[Paradygmaty_programowania/Ćwiczenia 10|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 11| Programowanie funkcyjne w Haskellu (część druga)]] ([[Paradygmaty_programowania/Ćwiczenia Programowanie funkcyjne w Haskellu (część druga)|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 11| Programowanie funkcyjne w Haskellu (część druga)]] ([[Paradygmaty_programowania/Ćwiczenia 11|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 12| Programowanie funkcyjne w Haskellu (część trzecia)]] ([[Paradygmaty_programowania/Ćwiczenia Programowanie funkcyjne w Haskellu (część trzecia)|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 12| Programowanie funkcyjne w Haskellu (część trzecia)]] ([[Paradygmaty_programowania/Ćwiczenia 12|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 13| Programowanie w logice w Prologu (część pierwsza)]] ([[Paradygmaty_programowania/Ćwiczenia Programowanie w logice w Prologu (część pierwsza)|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 13| Programowanie w logice w Prologu (część pierwsza)]] ([[Paradygmaty_programowania/Ćwiczenia 13|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 14| Programowanie w logice w Prologu (część druga)]] ([[Paradygmaty_programowania/Ćwiczenia Programowanie w logice w Prologu (część druga)|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 14| Programowanie w logice w Prologu (część druga)]] ([[Paradygmaty_programowania/Ćwiczenia 14|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 15| Inne paradygmaty warte wspomnienia]] ([[Paradygmaty_programowania/Ćwiczenia Inne paradygmaty warte wspomnienia|Ćwiczenia]])
* [[Paradygmaty_programowania/Moduł 15| Inne paradygmaty warte wspomnienia]] ([[Paradygmaty_programowania/Ćwiczenia 15|Ćwiczenia]])

Wersja z 10:33, 2 sie 2006

Forma zajęć

Wykład (30 godzin) + laboratorium (30 godzin)

Opis

Kurs omawia paradygmaty pojawiające się we współczesnych językach programowania: programowanie imperatywne, obiektowe, funkcyjne i programowanie w logice. Pozwala to pogłębić znajomość języków programowania, a także zrozumieć podstawowe zagadnienia implementacyjne.

Sylabus

Autor

  • Włodzimierz Moczurad

Wymagania wstępne

  • Logika i teoria mnogości
  • Wstęp do programowania
  • Algorytmy i struktury danych

Zawartość

  • Pojęcia ogólne
    • Opis składni i semantyki języków programowania
    • Typy
    • Przekazywanie parametrów do podprogramów
    • Abstrakcyjne typy danych
    • Przeładowywanie operatorów i podprogramów
    • Polimorfizm
  • Programowanie imperatywne
    • Zmienne
    • Struktura blokowa
    • Wiązanie statyczne i dynamiczne
    • Organizacja wywołań podprogramów
    • Przydział pamięci na stosie i na stercie
    • Przykłady z języków C, Fortran, Pascal
  • Programowanie obiektowe
    • Klasy jako abstrakcyjne typy danych
    • Dziedziczenie
    • Późne wiązanie wywołań
    • Polimorfizm
    • Szablony i klasy rodzajowe
    • Przykłady z języków C++, Java, C#, Ada 95, Smalltalk
  • Programowanie funkcyjne
    • Funkcje jako model programowania
    • Rachunek lambda
    • Dopasowywanie wzorca
    • Otypianie
    • Rekursja
    • Leniwa ewaluacja
    • Funkcje wyższego rzędu
    • Przykłady z języków Lisp, Scheme, ML, Haskell
  • Programowanie w logice
    • Rachunek predykatów w Prologu
    • Rezolucja
    • Listy

Literatura

  • Robert Sebesta: Concepts of Programming Languages. Addison Wesley, 2005
  • Peter Van Roy, Seif Haridi: Concepts, Techniques, and Models of Computer Programming. MIT Press, 2004
  • Ken Arnold, James Gosling: The Java Programming Language. Addison Wesley, 2005 / Java. Wydawnictwa Naukowo-Techniczne, 1999
  • Jeffrey Ullman: Elements of ML Programming. Prentice Hall, 1997

Moduły