Uniwersytet Jagielloński w Krakowie - Punkt LogowaniaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Programowanie abstrakcyjne

Informacje ogólne

Kod przedmiotu: WMI.II-PAB-MK Kod Erasmus / ISCED: (brak danych) / (0613) Tworzenie i analiza oprogramowania i aplikacji
Nazwa przedmiotu: Programowanie abstrakcyjne
Jednostka: Instytut Informatyki i Matematyki Komputerowej
Grupy: Przedmioty dla programu WMI-118-0-UD-4
Przedmioty dla programu WMI-118-0-ZD-6
Przedmioty dla programu WMI-n037-0-UD-4
Punkty ECTS i inne: 6.00
zobacz reguły punktacji
Język prowadzenia: polski

Zajęcia w cyklu "Semestr zimowy 2018/2019" (w trakcie)

Okres: 2018-10-01 - 2019-01-27
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 30 godzin, 20 miejsc więcej informacji
Wykład, 30 godzin, 120 miejsc więcej informacji
Koordynatorzy: Marcin Żelawski
Prowadzący grup: Sylwester Arabas, Maciej Szymczak, Marcin Żelawski
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Efekty kształcenia:
















Symbol Efekty kształcenia Odniesienie do efektów kierunkowych
E1 zna zaawansowane techniki programowania wykorzystujące polimorfizm, szablony i generyki oraz metaprogramowanie K_W06+++, K_W04++, K_W05+
E2 potrafi projektować i implementować oprogramowanie separując uniwersalną konstrukcję algorytmów od ich szczegółów implementacyjnych bez istotnej utraty efektywności i bez konieczności modyfikacji dla nowych zastosowań
K_U09+++, K_U06+



Wymagania wstępne:

Zaliczone kursy: Programowanie I, Programowanie II

Forma i warunki zaliczenia:

Student otrzymuje zaliczenie z ćwiczeń na podstawie zadań realizowanych na ćwiczeniach oraz zadań domowych.

Ocena końcowa z kursu jest wyznaczana na podstawie średniej ważonej wyników z ćwiczeń oraz egzaminu. Wagi ustala wykładowca na początku kursu. Pozytywne zaliczenie z ćwiczeń nie jest wymagane do zaliczenia całego kursu.

Metody sprawdzania i kryteria oceny efektów kształcenia uzyskanych przez studentów:


  • Samodzielnie implementowane zadania programistyczne (E1, E2)

  • Egzamin (E1, E2)


Metody dydaktyczne:


  • Wykład

  • Ćwiczenia w laboratorium komputerowym

  • Samodzielna implementacja zadań programistycznych





Bilans punktów ECTS:

Udział w wykładach - 30 godz.

Udział w zajęciach laboratoryjnych – 30 godz.

Samodzielna implementacja zadań programistycznych – 90 godz.

Przygotowanie do egzaminu oraz udział w egzaminie – 30 godz.

Łączny nakład pracy studenta: 180 godzin , co odpowiada 6 punktom ECTS

Wymiar, zasady i forma odbywania praktyk:

Nie dotyczy

Skrócony opis:

Celem kursu "Programowanie Abstrakcyjne" jest zapoznanie studentów z zaawansowanymi technikami programowania wykorzystującymi polimorfizm, szablony i generyki oraz metaprogramowanie.

Pełny opis:

Treści programowe:

  • Wprowadzenie do programowanie abstrakcyjnego
    • Funkcje wirtualne i metody abstrakcyjne
    • Klasy abstrakcyjne i polimorfizm dynamiczny
    • Polimorfizm statyczny w oparciu o szablony
    • Porównanie różnych podejść do programowania abstrakcyjnego
  • Podstawy generyków
    • Funkcje generyczne i szablony funkcji
    • Klasy generyczne i szablony klas
    • Definiowanie i stosowanie generyków
    • Rodzaje parametrów generyków
    • Wartości domyślne parametrów
    • Metody realizacji generyków i związane z tym ograniczenia
    • Ograniczenia na parametry generyków, koncepty
    • Konkretyzacje
    • Specjalizacje
    • Generyki i dziedziczenie
  • Standard Template Library
    • Kontenery
    • Iteratory
    • Algorytmy
    • Obiekty funkcyjne
  • Metody programowania generycznego
    • Klasy cech i wytycznych
    • CRTP
    • Funktory
    • Inteligentne wskaźniki
    • Listy parametrów
  • Metaprogramowanie
    • Kompilator w roli interpretera
    • Konkretyzacja rekurencyjna
    • Zupełność obliczeniowa
    • Optymalizacja rozwijania pętli
    • Szablony wyrażeń
  • Wybrane elementy biblioteki Boost
Literatura:

Moduł ma charakter autorski, obowiązuje przede wszystkim materiał wyłożony, literatura ma charakter pomocniczy.

  • Nicolai M. Josuttis, C++ Biblioteka standardowa, Podręcznik programisty, Helion, Gliwice, 2003
  • D. Vandevoorde, Nicolai M. Josuttis, C++ szablony: Vademecum profesjonalisty, Helion, Gliwice, 2003
  • Andreas Hejlsberg, Scott Wiltamuth, Peter Golde, The C# Programming Language, 2nd Ed., Pearson Education, Inc., Boston, 2006
  • J. Grębosz, Pasja C++, Oficyna Kallimach, Kraków, 1997
  • Bruce Eckel, Chuck Allison, Thinking in C++ Edycja polska, T. 2, Helion, Gliwice, 2004.
  • K. Czarnecki, U.W. Eisenecker, Generative Programming, Addison-Wesley, 2000.
  • Bjorn Karlsson, Więcej niż C++, Wprowadzenie do bibliotek Bost, Helion, Gliwice, 2006.
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Jagielloński w Krakowie.