MIMINF:Paradygmaty programowania: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Janusz (dyskusja | edycje)
Nie podano opisu zmian
 
Diks (dyskusja | edycje)
 
Linia 12: Linia 12:


=== Wymagania wstępne ===
=== Wymagania wstępne ===
* Logika i teoria mnogości
* Podstawy matematyki
* Wstęp do programowania
* Wstęp do programowania
* Algorytmy i struktury danych
* Algorytmy i struktury danych

Aktualna wersja na dzień 09:37, 18 paź 2006

Forma zajęć

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

Opis

Kurs omawia cztery najistotniejsze paradygmaty pojawiające się we współczesnym programowaniu: programowanie imperatywne, obiektowe, funkcyjne i programowanie w logice. Skrótowo wspomniane są również inne paradygmaty. Kurs pozwala spojrzeć szerzej na programowanie, a w szczególności pogłębić znajomość języków programowania i zrozumieć podstawowe zagadnienia implementacyjne.

Sylabus

Autor

  • Małgorzata Moczurad — Uniwersytet Jagielloński
  • Włodzimierz Moczurad — Uniwersytet Jagielloński

Wymagania wstępne

  • Podstawy matematyki
  • 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
    • przeciążanie 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 Ada, C, Pascal
  • Programowanie obiektowe:
    • klasy jako abstrakcyjne typy danych
    • dziedziczenie
    • późne (dynamiczne) 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
    • nadawanie typów
    • 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

  1. R. Sebesta, Concepts of Programming Languages, Addison Wesley, 2005
  2. P. Van Roy, S. Haridi, Concepts, Techniques, and Models of Computer Programming, MIT Press, 2004
  3. K. Arnold, J. Gosling, The Java Programming Language Addison Wesley, 2005
  4. R. Bird, Introduction to Functional Programming using Haskell, Prentice Hall, 1988
  5. M. Moczurad, Wybrane zagadnienia z teorii rekursji, Wydawnictwo UJ, 2002
  6. M. Abadi, L. Cardelli, A Theory of Objects, Springer, 1996.
  7. J. Reynolds, Theories of Programming Languages, Cambridge University Press, 1998
  8. F. Kluźniak, S. Szpakowicz, Prolog, Wydawnictwa Naukowo-Techniczne, 1983
  9. U. Nilsson, J. Małuszyński, Logic, Programming and Prolog, John Wiley & Sons, 1995