Języki i paradygmaty programowania
Informacje ogólne
Kod przedmiotu: | 1000-216bJPP |
Kod Erasmus / ISCED: |
11.303
|
Nazwa przedmiotu: | Języki i paradygmaty programowania |
Jednostka: | Wydział Matematyki, Informatyki i Mechaniki |
Grupy: |
Przedmioty obowiązkowe dla III roku informatyki Przedmioty obowiązkowe dla III roku JSIM - wariant 3I+4M Przedmioty obowiązkowe dla IV roku JSIM - wariant 3M+4I |
Punkty ECTS i inne: |
8.00
|
Język prowadzenia: | polski |
Rodzaj przedmiotu: | obowiązkowe |
Wymagania (lista przedmiotów): | Języki, automaty i obliczenia 1000-214bJAO |
Skrócony opis: |
Najistotniejsze paradygmaty pojawiające się we współczesnym programowaniu: programowanie funkcyjne, imperatywne, obiektowe, programowanie w logice. Kurs pozwala spojrzeć szerzej na programowanie, a w szczególności pogłębić znajomość języków programowania i zrozumieć podstawowe zagadnienia implementacyjne. |
Pełny opis: |
1. Modele obliczeń i paradygmaty programowania. 2. Programowanie funkcyjne. - podstawy paradygmatu funkcyjnego, rachunek lambda - język programowania Haskell - funkcje, typy, klasy typów - funkcje polimorficzne i wyższego rzędu - funktory 3. Programowanie imperatywne. - I/O i inne rodzaje efektów - funktory aplikatywne - monady - transformatory monad 4. Typy, kontrola typów. 5. Semantyka języków programowania, interpretery i kompilatory. 6. Programowanie w logice. - logika pierwszego rzędu: teorie i modele - klauzule Horna i rezolucja - język programowania Prolog 7. Programowanie obiektowe. - język programowania Smalltalk i jego biblioteka standardowa 8. Programowanie współbieżne i Erlang |
Literatura: |
1. R. Bird, Introduction to Functional Programming using Haskell, Prentice Hall, 1988 2. A. Goldberg, D. Robson. Smalltalk-80 : the language and its implementation, Addison-Wesley, 1983. 3. U. Nilsson, J. Małuszyński, Logic, Programming and Prolog, John Wiley & Sons, 1995 4. B. C. Pierce, Types and Programming Languages, The MIT Press 2002 5. J. Reynolds, Theories of Programming Languages, Cambridge University Press, 1998 6. R. Sebesta, Concepts of Programming Languages, Addison Wesley, 2005 |
Efekty uczenia się: |
Wiedza: absolwent zna i rozumie * ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie programowania, algorytmów i złożoności, architektury systemów komputerowych, systemów operacyjnych, technologii sieciowych, języków i paradygmatów programowania, baz danych, inżynierii oprogramowania [K_W02], * ogólną wiedzę na temat różnych paradygmatów programowania i języków programowania (imperatywny, obiektowy, funkcyjny, logiczny, skryptowy, maszyna wirtualna, podstawy translacji, deklaracje i typy, odśmiecanie, mechanizmy abstrakcji); szczegółowo zna metody projektowania i programowania obiektowego (kapsułkowanie i ukrywanie informacji, klasy i podklasy, dziedziczenie, polimorfizm, hierarchie klas) [K_W09]. Umiejętności: absolwent potrafi * pozyskiwać informacje z literatury, baz wiedzy, Internetu oraz innych wiarygodnych źródeł, integrować je, dokonywać ich interpretacji oraz wyciągać wnioski i formułować opinie [K_U02], * pisać, uruchamiać i testować programy w wybranym środowisku programistycznym [K_U05], * samodzielnie planować i realizować własne uczenie się przez całe życie [K_U09], * oceniać przydatność różnych paradygmatów i związanych z nimi środowisk programistycznych do rozwiązywania różnego typu problemów [K_U16], * umie stworzyć interpreter prostego języka programowania [K_U28], * planować i organizować pracę indywidualnie i w zespole, także o charakterze interdyscyplinarnym; zarządzać swoim czasem oraz podejmować zobowiązania i dotrzymywać terminów [K_U29]. Kompetencje społeczne: absolwent jest gotów do * pracy z zachowaniem uczciwości intelektualnej w działaniach własnych i innych osób; przestrzegania zasad etyki zawodowej i wymagania tego od innych oraz dbałości o dorobek i tradycje zawodu informatyka [K_K02], * uznawania znaczenia wiedzy w rozwiązywaniu problemów poznawczych i praktycznych oraz wyszukiwania informacji w literaturze oraz zasięgania opinii ekspertów [K_K03] |
Metody i kryteria oceniania: |
Ocena końcowa na podstawie punktów z egzaminu pisemnego i programów zaliczeniowych. Dla zaliczenia laboratorium trzeba oddać wszystkie programy w terminie i uzyskać z nich min 60% punktów. Zaliczenie jest wymagane do przystapienia do egzaminu w pierwszym terminie. Zaliczenie nie jest wymagane do przystapienia do egzaminu w drugim terminie, tym niemniej punkty uzyskane za laboratorium są wliczane do oceny końcowej. |
Zajęcia w cyklu "Semestr letni 2023/24" (zakończony)
Okres: | 2024-02-19 - 2024-06-16 |
Przejdź do planu
PN LAB
LAB
LAB
WYK
LAB
LAB
WT LAB
LAB
LAB
ŚR LAB
CZ LAB
LAB
LAB
LAB
PT LAB
LAB
LAB
|
Typ zajęć: |
Laboratorium, 60 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Marcin Benke | |
Prowadzący grup: | Marcin Benke, Jacek Chrząszcz, Tomasz Gogacz, Mirosława Miłkowska, Michał Skrzypczak, Daria Walukiewicz-Chrząszcz, Artur Zaroda | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Właścicielem praw autorskich jest Uniwersytet Warszawski, Wydział Nauk Ekonomicznych.