Programowanie obiektowe
Informacje ogólne
Kod przedmiotu: | CII2SP005CI |
Kod Erasmus / ISCED: |
(brak danych)
/
(0613) Tworzenie i analiza oprogramowania i aplikacji
|
Nazwa przedmiotu: | Programowanie obiektowe |
Jednostka: | Kierunek-Informatyka |
Grupy: |
Informatyka 2 sem. PL ST |
Punkty ECTS i inne: |
6.00
|
Język prowadzenia: | polski |
Rodzaj przedmiotu: | obowiązkowe |
Tryb prowadzenia: | zdalnie |
Wymagania (lista przedmiotów): | Introduction to Database CII1SE02 |
Założenia (lista przedmiotów): | Introduction to Database CII1SE02 |
Założenia (opisowo): | Umiejętność programowania w języku C#, analiza matematyczna |
Skrócony opis: |
1) będzie miał znajomość paradygmatów programowania zorientowanego obiektowo: hermetyzacja, dziedziczenie, polimorfizm, 2) potrafi projektować programy zorientowane obiektowo stosując paradygmaty programowania zorientowanego obiektowo (hermetyzacja, dziedziczenie, polimorfizm, przeciążanie operatorów i metod), 3) będzie miał znajomość narzędzi GDI+ oraz podstaw projektowania programów zorientowanych obiektowo w obszarze grafiki 2D, 4) potrafi opracować dokumentację zadania projektowego i przygotować prezentację sposobu jego implementacji, 5) potrafi posługiwać się narzędziami udostępnianymi przez środowisko narzędziowe Visual Studio dla potrzeb projektowania programów zorientowanych obiektowo w języku CSharp (C#). |
Pełny opis: |
Wykład: 1) Wprowadzenie do projektowania zorientowanego obiektowo: paradygmaty programowania zorientowanego obiektowo: hermetyzacja (enkapsulacja), dziedziczenie (inheritance), polimorfizm (wirtualizacja, abstrakcja), przeciążanie metod i operatorów (methods overloading, operators overloading), programowanie generyczne (generic programming). 2) Właściwości klas. tworzenie ich instancji (egzemplarzy, obiektów) oraz wywoływanie publicznych metod i właściwości klas, 2) Deklaracje klas (struktura): modyfikatory dostępu, deklaracje prywatne i publiczne klas, konstruktory klas, właściwości, 3) Deklaracje klas (c.d.): indeksatory, deklaracje metod, przeciążanie metod i operatorów, deklarowanie funkcji konwersji jawnych i niejawnych. 4) Tworzenie hierarchii klas (obiektów) z zastosowaniem paradygmatu programowania obiektowego: dziedziczenia (inheritance) i polimorfizmu (polymorphism). 5) Tworzenie hierarchicznej struktury klas figur geometrycznych 2D: Punkt, Linia, Elipsa, Okrąg, Prostokąt, Kwadrat, Wielokąt, ..., 6) Wprowadzenie do API GDI+ (Application Programming Interface - Graphics Device Interface+): • podstawowe klasy przestrzeni nazw GDI+: Graphics, Pen, Brush, Bitmap, Font, Icon, Image, BufferedGraphics, itd., • model barw: RGB (Red, Green, Blue), • podstawowe typy danych przestrzeni nazw System.Drawing: Color, Point, Rectangle, Size, itd., • układ współrzędnych powierzchni graficznej, • tworzenia egzemplarza powierzchni graficznej: CreateGraphics(), FromImage(. . .), • metody kreślenie prymitywów graficznych (metody typu „Draw” i metody typu „Fill”), tworzenie i zwalniania egzemplarzy zasobów graficznych (pióro, pędzel), kreślenie (malowanie) tekstów, • obsługa zdarzenia Paint i metody odświeżenia obrazu (Refresh(), Invalidate(), Update()), • kreślenie wybranych kompozycji (złożeń) figur geometrycznych. 7) Zastosowanie klas statycznych w projektowaniu programów (zorientowanych obiektowych) kreślenie wykresu zmian wartości szeregu potęgowego (bez korzystania z kontrolki Chart): • odwzorowanie rzeczywistej powierzchni wykresu na egzemplarzu powierzchni graficznej ekranu, • wyznaczenie współczynników skali i przesunięcia, • deklaracja klas statycznych: EkstremumFunkcji i PrzeliczanieWspółrzędnych, • deklaracja metod statycznych, 8) Animacje komputerowe (według ścieżki ruchu): wyznaczanie linii toru, animacja ruchu obiektu po torze linii krzywej (wyznaczonej przez szereg potęgowy). 9) Obsługa zdarzeń: MouseDown, MouseMove, MouseUp, …. w programach graficznych, 10) Wizualizacja brył geometrycznych ( z wykorzystaniem klas i metod abstrakcyjnych): • deklaracje i właściwości klas abstrakcyjnych, • deklaracje i właściwości metod abstrakcyjnych, • tworzenie hierarchicznej struktury klas brył geometrycznych: Walec, Stożek, Kula, Ostrosłup, Graniastosłup, itd., 11) Interfejsy: • zastosowanie interfejsów podstawowych (IComparable i IComparer) w porządkowaniu (sortowaniu) listy brył goemetrycznych, • włąściwości interfejsów systemowych: • Idisposable, • Ienumerable, • Ienumerator, • blok instrukcji using, • składnia iteratorów (wzorzec projektowy iterator). 12) Delegaty i zdarzenia: • dodawanie kontrolek (do formularza lub innych kontenerów) i obsługa wyzwalanych przez nich zdarzeń podczas działania programu, • mechanizm i właściwości delegatów, • użycie delegata EventHandler, • wywołanie instancji delegata, • publikator i subskrybent zdarzeń, • delegat parametrem metody: zapis i znaczenie (semantyka) • metoda anonimowa i wyrażenia lambda, • definiowanie własnych zdarzeń, Laboratoria (ćwiczenie): Zajęcia laboratoryjne są przeznaczone na rozwijanie umiejętności projektowania programów zorientowanych obiektowo: • projektowanie programów (zorientowanych obiektowo) wizualizacji figur geometrycznych: metody wirtualne i nadpisywanie metod • projektowanie programów (zorientowanych obiektowo) graficznych wymagających obsługi zdarzeń: MouseDown, MouseMove, MouseUp, • projektowanie programów (zorientowanego obiektowo) wizualizacji wybranych brył geometrycznych (Walec, Stożek, Kula, Ostrosłup, Graniastosłup, …): klasy i metody abstrakcyjne, nadpisywanie metod abstrakcyjnych, implementacja interfejsów, implementacja delegatów. |
Literatura: |
• Leszek Jung, Materiały z wykładów udostępniane w formie elektronicznej. PLATON AFiBV. • Matulewski J., Visual Studio 2013. Podręcznik programowania w C# z zadaniami, Wydawnictwo Helion, 2014, • Dawid Pośliński, Wstęp do grafiki 2D/3D, Strona internetowa Microsoftu: https://msdn.microsoft.com/pl-pl/library/wstep-do-grafiki-2d-3d.aspx, • dokumentacja na stronach internetowych Microsoftu: https://msdn.microsoft.com/pl-pl/default.aspx, • projekt Mono: http://www.mono-project.com |
Efekty uczenia się: |
• ma znajomość paradygmatów programowania zorientowanego obiektowo: hermetyzacja, dziedziczenie, polimorfizm (wirtualizacja, abstrakcja), przeciążanie operatorów, • ma znajomość narzędzi GDI+ oraz podstaw projektowania programów zorientowanych obiektowo w obszarze grafiki 2D, • potrafi projektować programy zorientowane obiektowo stosując paradygmaty programowania zorientowanego obiektowo. • potrafi posługiwać się narzędziami udostępnianymi przez środowisko narzędziowe Visual Studio dla potrzeb projektowania programów zorientowanych obiektowo w języku CSharp (C#), • potrafi opracować dokumentację zadania projektowego i przygotować prezentację sposobu jego implementacji. |
Metody i kryteria oceniania: |
Wykład: • 3 indywidualne projekty (P1, P2 i P3) zorientowane obiektowo z zastosowaniem grafiki 2D, • 3 sprawdziany pisemne (projektowe), • egzamin pisemny w sesji zasadniczej Laboratoria: • obecność na zajęciach i 3 ukończone projekty, które były realizowane na zajęciach laboratoryjnych. Obszary tematyczne projektów: Projekt Nr 1: przeciążanie metod i operatorów (klasa Macierz, klasa Liczby zespolone), Projekt Nr 2: animacja i wizualizacja figur geometrycznych (hermetyzacja, dziedziczenie, polimorfizm), Projekt Nr 3: wizualizacja dynamiczna (obroty, zmiana położenia) brył geometrycznych (klasy i metody abstrakcyjne). |
Zajęcia w cyklu "Semestr letni 2021/2022" (zakończony)
Okres: | 2022-02-19 - 2022-09-30 |
zobacz plan zajęć |
Typ zajęć: |
Ćwiczenia, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Leszek Jung | |
Prowadzący grup: | Leszek Jung | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin/zaliczenie na ocenę/zal w skali zal-std2
Ćwiczenia - Egzamin/zaliczenie na ocenę/zal w skali zal-std2 Wykład - Egzamin/zaliczenie na ocenę/zal w skali zal-std2 |
Zajęcia w cyklu "Semestr letni 2022/2023" (zakończony)
Okres: | 2023-02-18 - 2023-09-30 |
zobacz plan zajęć |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Leszek Jung | |
Prowadzący grup: | Piotr Bilski, Leszek Jung | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin/zaliczenie na ocenę/zal w skali zal-std2
Laboratorium - Egzamin/zaliczenie na ocenę/zal w skali zal-std2 Wykład - Egzamin/zaliczenie na ocenę/zal w skali zal-std2 |
Zajęcia w cyklu "Semestr zimowy 2023/2024" (zakończony)
Okres: | 2023-10-01 - 2024-02-18 |
zobacz plan zajęć |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Leszek Jung | |
Prowadzący grup: | Leszek Jung | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin/zaliczenie na ocenę/zal w skali zal-std2
Laboratorium - Egzamin/zaliczenie na ocenę/zal w skali zal-std2 Wykład - Egzamin/zaliczenie na ocenę/zal w skali zal-std2 |
Zajęcia w cyklu "Semestr letni 2023/2024" (w trakcie)
Okres: | 2024-02-19 - 2024-07-14 |
zobacz plan zajęć |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Bartosz Szmit | |
Prowadzący grup: | Bartosz Szmit | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin/zaliczenie na ocenę/zal w skali zal-std2
Laboratorium - Egzamin/zaliczenie na ocenę/zal w skali zal-std2 Wykład - Egzamin/zaliczenie na ocenę/zal w skali zal-std2 |
Właścicielem praw autorskich jest Akademia Finansów i Biznesu Vistula.