Paradygmaty programowania: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Linia 67: | Linia 67: | ||
# [[Paradygmaty programowania/Wykład 1: Co to jest paradygmat programowania?|Co to jest paradygmat programowania?]] ([[Paradygmaty programowania/Ćwiczenia 1: Co to jest paradygmat programowania?|ćwiczenia]]) | # [[Paradygmaty programowania/Wykład 1: Co to jest paradygmat programowania?|Co to jest paradygmat programowania?]] ([[Paradygmaty programowania/Ćwiczenia 1: Co to jest paradygmat programowania?|ćwiczenia]]) | ||
# [[Paradygmaty programowania/Wykład 2: Semantyka zmiennych|Semantyka zmiennych]] ([[Paradygmaty programowania/Ćwiczenia 2: Semantyka zmiennych|ćwiczenia]]) | # [[Paradygmaty programowania/Wykład 2: Semantyka zmiennych|Semantyka zmiennych]] ([[Paradygmaty programowania/Ćwiczenia 2: Semantyka zmiennych|ćwiczenia]]) | ||
# [[ | # [[Paradygmaty programowania/Wykład 3: Typy, typy abstrakcyjne|Typy, typy abstrakcyjne]] ([[Paradygmaty programowania/Ćwiczenia 3: Typy, typy abstrakcyjne|ćwiczenia]]) | ||
# [[Paradygmaty_programowania/Moduł 4| Podprogramy]] ([[Paradygmaty_programowania/Ćwiczenia 4|ćwiczenia]]) | # [[Paradygmaty_programowania/Moduł 4| Podprogramy]] ([[Paradygmaty_programowania/Ćwiczenia 4|ćwiczenia]]) | ||
# [[Paradygmaty_programowania/Moduł 5| Programowanie obiektowe — przegląd]] ([[Paradygmaty_programowania/Ćwiczenia 5|ćwiczenia]]) | # [[Paradygmaty_programowania/Moduł 5| Programowanie obiektowe — przegląd]] ([[Paradygmaty_programowania/Ćwiczenia 5|ćwiczenia]]) | ||
Linia 77: | Linia 77: | ||
[[Paradygmaty programowania/Wykład 4: Podprogramy|Podprogramy]] ([[Paradygmaty programowania/Ćwiczenia 4: Podprogramy|ćwiczenia]]) | [[Paradygmaty programowania/Wykład 4: Podprogramy|Podprogramy]] ([[Paradygmaty programowania/Ćwiczenia 4: Podprogramy|ćwiczenia]]) | ||
[[Paradygmaty programowania/Wykład 5: Programowanie obiektowe — przegląd|Programowanie obiektowe — przegląd]] ([[Paradygmaty programowania/Ćwiczenia 5: Programowanie obiektowe — przegląd|ćwiczenia]]) | [[Paradygmaty programowania/Wykład 5: Programowanie obiektowe — przegląd|Programowanie obiektowe — przegląd]] ([[Paradygmaty programowania/Ćwiczenia 5: Programowanie obiektowe — przegląd|ćwiczenia]]) |
Wersja z 14:22, 6 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
- Co to jest paradygmat programowania? (ćwiczenia)
- Semantyka zmiennych (ćwiczenia)
- Typy, typy abstrakcyjne (ćwiczenia)
- Podprogramy (ćwiczenia)
- Programowanie obiektowe — przegląd (ćwiczenia)
- Programowanie funkcyjne — przegląd (ćwiczenia)
- Programowanie w logice - przegląd (ćwiczenia)
- U podstaw programowania funkcyjnego — rachunek lambda(ćwiczenia)
- U podstaw programowania obiektowego — rachunek sigma (ćwiczenia)
- Programowanie funkcyjne w Haskellu (część pierwsza) (ćwiczenia)
Podprogramy (ćwiczenia) Programowanie obiektowe — przegląd (ćwiczenia) Programowanie funkcyjne — przegląd (ćwiczenia) Programowanie w logice - przegląd (ćwiczenia) U podstaw programowania funkcyjnego — rachunek lambda(ćwiczenia) U podstaw programowania obiektowego — rachunek sigma (ćwiczenia) Programowanie funkcyjne w Haskellu I (ćwiczenia)