Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

Paradygmaty programowania

Informacje ogólne

Kod przedmiotu: 103A-INxxx-ISP-PARP
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Paradygmaty programowania
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Metody wytwarzania oprogramowania )-Informatyka-inż.-EITI
( Przedmioty techniczne )---EITI
Punkty ECTS i inne: 3.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

PARP

Numer wersji:

1

Skrócony opis:

Celem przedmiotu jest przedstawienie podstawowych paradygmatów programowania oraz pokazanie w jaki sposób mogą być one wykorzystane przy tworzeniu oprogramowania. Wskazane zostaną kluczowe różnice pomiędzy paradygmatami, obszary ich zastosowań oraz wspierające je języki programowania. Szczególna uwaga poświęcona zostanie programowaniu funkcyjnemu jako tematowi nie poruszanemu na wcześniejszym etapie studiów. Wiedza uzyskana podczas przedmiotu pozwoli studentom na dobór paradygmatu do rozwiązywanego problemu programistycznego oraz ułatwi efektywne posługiwanie się współczesnymi językami programowania.

Pełny opis:

Celem przedmiotu jest przedstawienie podstawowych paradygmatów programowania oraz pokazanie w jaki sposób mogą być one wykorzystane przy tworzeniu oprogramowania. Wskazane zostaną kluczowe różnice pomiędzy paradygmatami, obszary ich zastosowań oraz wspierające je języki programowania. Szczególna uwaga poświęcona zostanie programowaniu funkcyjnemu jako tematowi nie poruszanemu na wcześniejszym etapie studiów. Wiedza uzyskana podczas przedmiotu pozwoli studentom na dobór paradygmatu do rozwiązywanego problemu programistycznego oraz ułatwi efektywne posługiwanie się współczesnymi językami programowania.



Treść wykładu

  1. Wprowadzenie (2 godz.)
    Informacje o przedmiocie. Regulamin przedmiotu. Ogólna klasyfikacja paradygmatów i języków programowania. Programowanie imperatywne a programowanie deklaratywne.
  2. Programowanie obiektowe (2 godz.)
    Programowanie obiektowe na przykładzie języka Smalltalk: klasy i obiekty, klasy jako obiekty, przekazywanie komunikatów, dziedziczenie i polimorfizm, bloki kodu, refleksja, wzorzec MVC, obrazy i maszyna wirtualna.
  3. Programowanie funkcyjne (6 godz.)
    Programowanie funkcyjne na przykładzie języka Haskell: funkcje czyste, funkcje rekurencyjne, funkcje wyższego rzędu, dopasowanie wzorca, funkcje anonimowe, klasy typów, funktory i monady, proste programy interaktywne, leniwe wartościowanie, wnioskowanie na temat programów.
  4. Programowanie w logice (2 godz.)
    Programowanie w logice na przykładzie języka Prolog: fakty i reguły, zmienne i ich ukonkretnianie, wykonywanie zapytań, listy, proste programy interaktywne.
  5. Pozostałe paradygmaty (2 godz.)
    Programowanie zdarzeniowe, programowanie reaktywne, programowanie aspektowe, programowanie agentowe, model aktorów.



Zakres laboratorium

W trakcie zajęć laboratoryjnych studenci nabywają praktycznych umiejętności rozwiązywania problemów przy użyciu omawianych na wykładzie paradygmatów programowania. Realizują kilka mniejszych zadań w językach Smalltalk, Haskell i Prolog oraz jedno większe zadanie projektowe, w ramach którego implementują rozwiązanie korzystając z kilku paradygmatów i poznając w praktyce ich zalety i wady.

Literatura:

  • M. Gabrielli, S. Martini, Programming Languages: Principles and Paradigms, Springer-Verlag (2010).
  • M. L. Scott, Programming Language Pragmatics (fourth edition), Morgan Kaufmann (2015).
  • G. Hutton, Programming in Haskell (second edition), Cambridge University Press (2016).
Metody i kryteria oceniania:

Sprawdzanie założonych efektów kształcenia realizowane jest przez:

  • ocenę wiedzy i umiejętności związanych z realizacją zadań laboratoryjnych – ocena z wybranych zadań laboratoryjnych oraz zadania projektowego;
  • ocenę wiedzy wykazanej na kolokwium pisemnym.

Zajęcia w cyklu "rok akademicki 2023/2024 - sem. letni" (w trakcie)

Okres: 2024-02-19 - 2024-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 100 miejsc więcej informacji
Wykład, 15 godzin, 100 miejsc więcej informacji
Koordynatorzy: Marcin Szlenk
Prowadzący grup: Rajmund Kożuszek, Łukasz Skonieczny, Marcin Szlenk
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

Zajęcia w cyklu "rok akademicki 2023/2024 - sem. zimowy" (zakończony)

Okres: 2023-10-01 - 2024-02-18
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 100 miejsc więcej informacji
Wykład, 15 godzin, 100 miejsc więcej informacji
Koordynatorzy: Marcin Szlenk
Prowadzący grup: Rajmund Kożuszek, Łukasz Skonieczny, Marcin Szlenk
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. letni" (zakończony)

Okres: 2023-02-20 - 2023-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 100 miejsc więcej informacji
Wykład, 15 godzin, 100 miejsc więcej informacji
Koordynatorzy: Marcin Szlenk
Prowadzący grup: Rajmund Kożuszek, Łukasz Skonieczny, Marcin Szlenk
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. zimowy" (zakończony)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 100 miejsc więcej informacji
Wykład, 15 godzin, 100 miejsc więcej informacji
Koordynatorzy: Marcin Szlenk
Prowadzący grup: Rajmund Kożuszek, Łukasz Skonieczny, Marcin Szlenk
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. letni" (zakończony)

Okres: 2022-02-23 - 2022-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 100 miejsc więcej informacji
Wykład, 15 godzin, 100 miejsc więcej informacji
Koordynatorzy: Marcin Szlenk
Prowadzący grup: Rajmund Kożuszek, Łukasz Skonieczny, Marcin Szlenk
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.
pl. Politechniki 1, 00-661 Warszawa tel: (22) 234 7211 https://pw.edu.pl kontakt deklaracja dostępności USOSweb 7.0.0.0-7 (2024-03-18)