Uniwersytet Warszawski - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Języki i paradygmaty programowania

Informacje ogólne

Kod przedmiotu: 1000-216bJPP Kod Erasmus / ISCED: 11.303 / (0612) Database and network design and administration
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
Punkty ECTS i inne: 7.00
zobacz reguły punktacji
Język prowadzenia: polski
Rodzaj przedmiotu:

obowiązkowe

Wymagania (lista przedmiotów):

Języki, automaty i obliczenia 1000-214bJAO
Programowanie obiektowe 1000-212bPO
Wstęp do programowania (podejście imperatywne) 1000-211bWPI

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.

3. Programowanie imperatywne.

4. Typy, kontrola typów.

5. Semantyka języków programowania, interpretery i kompilatory.

6. Programowanie obiektowe.

7. Programowanie w logice.

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 2018/19" (zakończony)

Okres: 2019-02-16 - 2019-06-08
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 60 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Marcin Benke
Prowadzący grup: Marcin Benke, Jacek Chrząszcz, Tomasz Gogacz, Vincent Michielini, Julian Salamanca Tellez, Aleksy Schubert, Daria Walukiewicz-Chrząszcz, Artur Zaroda
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin

Zajęcia w cyklu "Semestr letni 2019/20" (jeszcze nie rozpoczęty)

Okres: 2020-02-17 - 2020-06-10
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 60 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Marcin Benke
Prowadzący grup: Marcin Benke, Jacek Chrząszcz, Henryk Michalewski, Vincent Michielini, Julian Salamanca Tellez, Rafał Stefański, Daria Walukiewicz-Chrząszcz, Artur Zaroda
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.