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

Programowanie 2

Informacje ogólne

Kod przedmiotu: WMI.II-P2-OL Kod Erasmus / ISCED: (brak danych) / (0613) Tworzenie i analiza oprogramowania i aplikacji
Nazwa przedmiotu: Programowanie 2
Jednostka: Instytut Informatyki i Matematyki Komputerowej
Grupy: Przedmioty dla programu WMI-0037-1SO
Punkty ECTS i inne: 6.00
zobacz reguły punktacji
Język prowadzenia: polski

Zajęcia w cyklu "Semestr letni 2020/2021" (jeszcze nie rozpoczęty)

















































Okres: 2021-02-24 - 2021-06-14
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 45 godzin, 10 miejsc więcej informacji
Wykład, 30 godzin, 50 miejsc więcej informacji
Koordynatorzy: Rafał Kawa
Prowadzący grup: (brak danych)
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Efekty kształcenia:

table border=1>

Symbol Efekty kształcenia Odniesienie do efektów kierunkowych
E1 zna zaawansowane techniki programowania obiektowego i obiektowo orientowanego oraz generycznego K_W06+++
E2 potrafi korzystać z debuggera, zintegrowanych środowisk programistycznych oraz dzielić program na moduły K_W05++, K_U09++
E3 potrafi poprawnie zaprojektować oprogramowanie zgodnie z metodyką obiektową oraz z wykorzystaniem typów generycznych K_U10+++, K_U14+
E4 zna biegle C++ oraz w stopniu zaawansowanym Java oraz C# K_W06++, K_U04++
E5 potrafi zaprojektować złożony model informatyczny na podstawie podanej specyfikacji K_U16+
E6 potrafi ustnie i pisemnie przedstawić rozwiązanie złożonego problemu informatycznego K_U20+, K_U21+
E7 rozumie i docenia znaczenie wartości intelektualnej w działaniach własnych oraz innych osób K_K06++
Wymagania wstępne:

Zaliczenie przedmiotu Programowanie I

Forma i warunki zaliczenia:

Student otrzymuje ocenę końcowa z ćwiczeń na podstawie punktów przyznawanych za systematycznie oddawane zadania domowe, oraz programy oceniane automatycznie przez system weryfikacji programów

Warunkiem otrzymania zaliczenia ćwiczeń jest uzyskanie łącznie co najmniej 50% możliwych do zdobycia punktów.

Ocena końcowa z kursu jest wyznaczana na podstawie średniej ważonej wyników procentowych z ćwiczeń oraz egzaminu. Wagi ustala wykładowca na początku kursu.


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


  • Programistyczne zadania domowe (E1, E2 E3,E4, E5)

  • Automatycznie weryfikowane programy zaliczeniowe (E1, E2, E3, E4, E5)

  • Egzamin (E1, E4, E6, E7)

  • Prezentowanie rozwiązań zadań domowych oraz ustna obrona rozwiązań zadań programistycznych wysłanych do serwera automatycznej weryfikacji (E6, E7)

  • Wykorzystanie systemu antyplagiatowego na serwerze weryfikującym zadania programistyczne (E7)


Metody dydaktyczne:


  • Wykład ilustrowany prezentacją komputerową

  • Ćwiczenia w laboratorium komputerowym, połączone z dyskusją przy tablicy

  • Samodzielne implementacja zadań programistycznych i automatyczne testowanie ich na serwerze zadaniowym



Bilans punktów ECTS:

Udział w wykładach - 30 godz.

Udział w zajęciach laboratoryjnych – 45 godz.

Samodzielna implementacja zadań programistycznych – 90 godz.

Przygotowanie do egzaminu, analiza programów do egzaminu oraz udział w egzaminie – 15 godz.

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


Wymiar, zasady i forma odbywania praktyk:

Nie dotyczy

Sylabus przedmiotu dla studentów rozpoczynających studia od roku akademickiego 19/20 lub później:

informatyka, rok 1

Skrócony opis:

Kurs obejmuje przegląd klasycznych i współczesnych technik programowania, w tym programowania obiektowo orientowanego, funkcjonalnego i generycznego ze szczególnym uwzględnieniem języka C/C++.

Pełny opis:

  1. Podstawy programowania obiektowo orientowanego: dziedziczenie, dziedziczenie wielopokoleniowe, hierarchia klas, dostęp do składników w kontekście dziedziczenia, konstrukcja obiektów w kontekście dziedziczenia, dziedziczenie wielokrotne
  2. Funkcje wirtualne: mechanizm wirtualności, pożytki i koszty wirtualności, wczesne i późne wiązanie, wirtualna konstrukcja i destrukcja obiektów, polimorfizm dynamiczny w kontekście funkcji wirtualnych
  3. Klasy abstrakcyjne: metody abstrakcyjne, cechy klasy abstrakcyjnej, pożytki z klasy abstrakcyjnej, interfejsy, siła klas abstrakcyjnych, istota programowania obiektowo orientowanego
  4. Identyfikacja typów w trakcie wykonania (RTTI): bezwzględne i relatywne RTTI, niebezpieczeństwa związane z RTTI, zastosowania RTTI, wielometody.
  5. Obsługa sytuacji wyjątkowych: sytuacje wyjątkowe, rzucanie wyjątków, łapanie wyjątków, informowanie o rzucanych wyjątkach, hierarchie klas do przechowywania informacji o wyjątkach, sprzątanie stosu, pozyskiwanie zasobów poprzez inicjalizację
  6. Wprowadzenie do programowania generycznego: szablony funkcji i klas, klasy i metody generyczne, polimorfizm statyczny
  7. Pojemniki: pojemniki sekwencyjne i asocjacyjne, typy pojemników, iteratory.
  8. Programowanie funkcjonalne: funkcjonały, currying, klasy i obiekty funkcyjne, zalety i wady programowania funkcjonalnego
  9. Programowanie orientowane zdarzeniami: pętla główna, zdarzenia, obsługa zdarzeń
  10. Programowanie wielowątkowe: wątki, współdzielenie zasobów, synchronizacja, komunikacja pomiędzy wątkami, klincz.
  11. Graficzny interfejs użytkownika: komponenty i kontenery, okna dialogowe, menedżery układu okien, systemy menu, komponenty tekstowe i graficzne
  12. Operacje wejścia-wyjścia: strumienie, operacje na strumieniach, manipulatory, formatowane i nieformatowane operacja wejścia-wyjścia, strumienie plikowe
Literatura:

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

  1. Christiansen, N. Torkington, Perl receptury, Wydawnictwo RM, Warszawa 1998
  2. P. Coad, J. Nicola, Object-oriented Programming, Yourdon Press, Prentice Hall, New Jersey, 1993
  3. D. Conway, Object Oriented Perl, Manning Publications Co., Greenwich, Connecticut, 2000.
  4. B. Eckel, Thinking in C++ T 1 i 2, Helion, Gliwice, 2002-2004
  5. B. Eckel, Thinking in Java, Helion, Gliwice, 2003
  6. J. Grębosz, Symfonia C++, Oficyna Kallimach, Kraków, 1996
  7. N.M. Josuttis, C++ Biblioteka Standardowa, Helion, Gliwice, 2003.
  8. A. Hejlsberg, S. Wiltamuth, P. Golde, The C# Programming Language, Addison-Wesley, Boston, 2006.
  9. W. Kernighan, D.M. Ritchie, Język C, WNT, Warszawa 1987
  10. J. Liberty, Programowanie C#, Helion, Gliwice, 2006.
  11. B.J. MacLean, Functional Programming, Addison Wesley, New York, 1990.
  12. P.Naughton, H. Schildt, The Complete Reference Java, Osborne, McGraw-Hill, Berkeley, California, 1997
  13. M.L. Scott, Programming Language Pragmatics, Elsevier, Boston, 2006.
  14. R.W. Sebesta, Concepts of Programming Languages, Addison Wesley, Boston, 2004
  15. B. Stroustrup, Język C++, WNT, Warszawa 2000
  16. D. Vandevoorde, N.M. Josuttis, C++ Szablony, Helion, Gliwice, 2003
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Jagielloński w Krakowie.