Programowanie obiektowe (CSharp)
Informacje ogólne
Kod przedmiotu: | CIB2SP09CI |
Kod Erasmus / ISCED: | (brak danych) / (brak danych) |
Nazwa przedmiotu: | Programowanie obiektowe (CSharp) |
Jednostka: | Akademia Finansów i Biznesu Vistula |
Grupy: | |
Punkty ECTS i inne: |
7.00
|
Język prowadzenia: | polski |
Wymagania (lista przedmiotów): | Techniki internetowe TecInt-SLP-I |
Skrócony opis: |
Wiedza: • poznanie podstawowych pojęć i zasad projektowania programów zorientowanych obiektowo, • poznanie technik i narzędzi stosowanych w procesie tworzenia programów zorientowanych obiektowo, • poznanie podstawowych technik projektowania grafiki 2D w programach zorientowanych obiektowo z wizualizacją figur i brył geometrycznych. Umiejętności: • ukształtowanie umiejętności samodzielnego projektowania i implementacji wybranych programów według technik zorientowanych obiektowo w języku CSharp, • rozwinięcie umiejętności stosowania narzędzi środowiska VisulaStudio 2015/2017 w procesie tworzenia programów zorientowanych obiektowo, Kompetencje społeczne: • zapoznanie z elementarnymi zasadami pracy zespołowej w procesie tworzenia programów zorientowanych obiektowo, • uzupełnianie wiedzy w zakresie grafiki 2D dla potrzeb projektowania programów zorientowanych obiektowo z wizualizacją figur i brył geometrycznych. |
Pełny opis: |
WYKŁAD: 1) Wprowadzenie do projektowania zorientowanego obiektowo: • podstawowe pojęcia i zasady podejścia obiektowego • paradygmat programowania zorientowanego obiektowo: hermetyzacja (enkapsulacja), dziedziczenie, polimorfizm. 2) Techniki tworzenia grafiki 2D w projektowanych programach zorientowanych obiektowo (z wizualizacją figur geometrycznych): • interfejs API GDI+ (Application Programming Interface - Graphics Device Interface+), • przestrzenie nazw GDI+, • podstawowe klasy GDI+: Graphics, Pen, Brush, Bitmap, Font, Icon, Image, BufferedGraphics, itd., • modele barw: RGB (Red, Green, Blue) oraz HSV (HSB): Hue + Saturation + Value (lub Brightness w modelu HSB), • podstawowe typy danych przestrzeni nazw: System.Drawing: Color, Point, Rectangle, Size, itd., • układ współrzędnych powierzchni graficznej, • techniki i metody tworzenia egzemplarza powierzchni graficznej: CreateGraphics(), FromImage(. . .), • obsługa zdarzenia Paint i metody odświeżenia obrazu (Refresh(), Invalidate(), Update()), • tworzenie egzemplarzy narzędzi graficznych: pióro i pędzel, • metody kreślenie figur geometrycznych (prymitywów graficznych): metody typu „Draw” i metody typu „Fill”, • kreślenie (malowanie) tekstów przy użyciu metody DrawString (. . .): określanie długość tekstu przy użyciu metody MeasureString(. . .), ustalanie lokalizacji kreślonego tekstu (atrybuty: VisibleClipBounds.Width oraz VisibleClipBounds.Height) • kreślenie wybranych kompozycji (złożeń) figur geometrycznych, • kreślenie wybranych kompozycji (złożeń) figur geometrycznych przy użyciu myszy, obsługa zdarzeń: MouseDown, MouseMove, MouseUp, • zwalnianie zasobów graficznych (pióra, pędzla, egzemplarza powierzchni graficznej), 3) Projektowanie animacji komputerowych (według ścieżki ruchu): animacja fragmentu układu słonecznego, animację ruch obiektu po torze linii sinusoidy i cosinusoidy, 4) Klasy i ich właściwości: • właściwości (abstrakcja, enkapsulacja atrybutów klasy, dziedziczenie, interfejsy, polimorfizm), • modyfikatory dostępu, • konstruktory i destruktory, • instancje klasy, • metody klasy, • parametry metod, • klasy biblioteczne. 3) Klasy statyczne i wizualizacja wyników obliczeń w formie wykresu funkcji: • odwzorowanie powierzchni rzeczywistej na powierzchni graficznej formularza programu, • deklarowanie klasy dla odwzorowania powierzchni rzeczywistej wykresu na graficznej powierzchni formularza programu, • deklarowanie metod konwersji z rzeczywistego układu współrzędnych na układ współrzędnych powierzchni graficznej, • deklarowanie klasy dla odwzorowania powierzchni rzeczywistej wykresu na powierzchnię graficzną ekranu laptopa, • definiowanie metod konwersji z rzeczywistego układu współrzędnych na układ współrzędnych powierzchni graficznej, 4) Klasy dynamiczne i projektowanie klas dla płaskich figur geometrycznych: o tworzenie hierarchii klas: o deklaracja klasy nadrzędnej (bazowej): Punkt, o deklaracja klas pochodnych: Okrąg, Prostokąt, …, o mechanizm dziedziczenie, o metody wirtualne i mechanizm polimorfizmu, o ewidencja figur geometrycznych, o przesunięcia i zmiana atrybutów figur geometrycznych, o przekształcenia w geometrii 2D: przesunięcia, obroty, skalowanie, przekrzywienia, 6) Klasy abstrakcyjne i ich właściwości: • deklaracja klas abstrakcyjnych, • deklaracja metod abstrakcyjnych, • właściwości klas abstrakcyjnych. 8) Klasy biblioteczne: • projektowanie klas bibliotecznych, • zapisywanie klas bibliotecznych w plikach o rozszerzeniu .dll, • tworzenie referencji do klas bibliotecznych zapisanych w plikach o rozszerzeniu .dll, • folder Reference, • deklaracje klas generycznych. 9) Interfejsy • interfejsy podstawowe: IComparable i IComparer • Implementacja przykładowych interfejsów: • Idisposable, • Ienumerable, • Ienumerator, • blok instrukcji using, • składnia iteratorów (wzorzec projektowy iterator). 10) Delegacje i zdarzenia: • deklaracja delegatów i ich metod, • 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ń, 11) Refleksja i atrybuty: • mechanizm uzyskiwania informacji o typie w czasie działania programu, • dodawanie dodatkowych informacji (metadanych) do programu przy pomocy atrybutów, • definiowanie własnych atrybutów (klas reprezentujących atrybuty). 12) Serializacja: • rodzaje serializacji wspieranych przez .Net Framework, • tworzenie klas serializowalnych i ich używanie, • serializacja binarna oraz serializacja XML. 14) Testowanie programów zorientowanych obiektowo. LABORATORIUM: Zajęcia laboratoryjne są przeznaczone na rozwijanie umiejętności projektowania programów zorientowanych obiektowo: 1. Projektowanie programów dla wykreślania kompozycji figur geometrycznych: tworzenia egzemplarza powierzchni graficznej, tworzenie egzemplarzy narzędzi graficznych (pióro i pędzel), kreślenie (malowanie) tekstów przy użyciu metody DrawString (. . .), zwalnianie zasobów graficznych, 2. Projektowanie animacji komputerowych (według ścieżki ruchu): wykreślanie toru ścieżki animacji, sterowanie ruchem obiektów poruszających się po torze animacji, 3. Projektowanie programu typu PaintBrush: obsługa myszy, tworzenie egzemplarzy klas kreślonych figur geometrycznych 2D, ewidencja figur geometrycznych w liście jednokierunkowej, 4. Projektowanie programu formularzowego dla wykreślenie (przy użyciu metody DrawLine(. . .) i klas statycznych) przebiegu zmian wartości szeregu potęgowego (be użycia kontrolki Chart): deklaracja klasy stycznej dla wyznaczania współczynników skali osi X i Y przy odwzorowaniu powierzchni rzeczywistej wykresu w powierzchnie graficzną programu, kreślenie wykresu przy użyciu metody DrawLine(. . .), wykreślenie opisu legendy wykresu przy użyciu metody DrawString (. . .) , 5. Projektowanie programu formularzowego zorientowanego obiektowo dla: • (z obszaru grafiki komputerowej): wizualizacji wybranych figur geometrycznych, tworzenie hierarchii klas opisujących figury geometryczne; zastosowanie mechanizmu enkapsulacji, dziedziczenia i polimorfizmu), wywołanie konstruktora klasy bazowej, przesłanianie metod, definiowanie metod i operatorów przeciążonych, obsługa wyjątków, • (z obszaru baz danych): projekt programu formularzowego umożliwiającego przeglądanie, oraz zarządzanie zawartością tabeli (dopisywanie, usuwanie, aktualizacja) poprzez zapytania parametryczne: • utworzenie bazy danych, tabeli, zarządzanie zawartością tabeli z wykorzystaniem klienta wbudowanego w Visual Studio 2015/2017, • zaprojektowanie programu konsolowego realizującego: połączenie z utworzoną bazą danych (SqlConnection), pobranie zawartości tabeli (SqlCommand, SqlDataReader), wizualizację danych pobranych z bazy danych na ekranie monitora, • zastosowanie klas DataTable, DataSet i SqlDataAdapter w projektowanym programie, 6. Projektowanie programu formularzowego zorientowanego obiektowo dla: • (z obszaru grafiki komputerowej): wizualizacji wybranych brył geometrycznych (stożek, kula, ostrosłup, graniastosłup, …): projekt hierarchii klas opisujących wybrane bryły geometryczne, klasy i metody abstrakcyjne, mechanizm polimorfizmu, • (z obszaru baz danych): projekt programu formularzowego realizacja prostego klienta relacyjnej bazy danych wysyłającego polecenia SQL oraz prezentującego wyniki poleceń (prosty odpowiednik SqlDevelopera lub wbudowanego Visual studio klienta SQL), |
Literatura: |
Literatura podstawowa: • Leszek Jung, Materiały z wykładów udostępniane w formie elektronicznej. • Matulewski J., Visual Studio 2013. Podręcznik programowania w C# z zadaniami, Wydawnictwo Helion, 2014, • Farbaniec D., Visual Studio 2013 Tworzenie aplikacji desktopowych mobilnych i internetowych, Wydawnictwo Helion, 2015, Literatura uzupełniająca: • 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 • Rychlicki-Kicior Krzysztof, C#. Tworzenie aplikacji graficznych w .NET 3.0. Wydawnictwo Helion. • dokumentacja na stronach internetowych Microsoftu: https://msdn.microsoft.com/pl-pl/default.aspx • projekt Mono: http://www.mono-project.com |
Efekty uczenia się: |
WIEDZA: 1) Ma znajomość paradygmatów programowania zorientowanego obiektowo (hermetyzacja, dziedziczenie, polimorfizm) 2) Ma znajomość metod i narzędzi do tworzenia, kompilowania i testowania programów zorientowanych obiektowo w języku CSharp (C#) 3) Ma znajomość narzędzi GDI+ oraz podstaw projektowania programów zorientowanych obiektowo z wyjęciem graficznym UMIEJĘTNOŚCI: 1) Potrafi projektować programy zorientowane obiektowo z zastosowaniem paradygmatów programowania zorientowanego obiektowo (hermetyzacja, dziedziczenie, polimorfizm). 2) 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#). 3) Potrafi korzystać z dostępnych bibliotek oraz komponentów oprogramowania w procesie projektowania programów zorientowanych obiektowo w języku CSharp. 4) Potrafi opracować dokumentację zadania projektowego i przygotować prezentację sposobu jego implementacji. KOMPETENCJE SPOŁECZNE: 1) Potrafi zdekomponować problem na fragmenty, których realizacja prowadzi do rozwiązania postawionego zadania, 2) Rozumie konieczność ciągłego uaktualniania swojej wiedzy w zakresie: technik programowania, właściwości nowych wersji języków programowania, stosowania nowych fFrameworków, technik testowania programów zorientowanych obiektowo (w języku CSharp), 3) Używa legalnego oprogramowania i przestrzega praw autorskich do własności intelektualnej, |
Metody i kryteria oceniania: |
Wykład: • 4 indywidualne (lub zespołowe) projekty zorientowane obiektowo z obszaru grafiki 2D lub z obszaru baz danych, • pisemny sprawdzian wiedzy (2 sprawdziany). Laboratoria: • projektowy sprawdzian umiejętności (3 sprawdziany), • prezentacja wykonanych projektów prowadzącemu zajęcia. |
Zajęcia w cyklu "Semestr letni 2015/2016" (zakończony)
Okres: | 2016-02-16 - 2016-07-15 |
zobacz plan zajęć |
Typ zajęć: |
Ćwiczenia, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Leszek Jung | |
Prowadzący grup: | Leszek Jung, Sławomir Matusiak, Mariusz Zawadzki | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Zaliczenie na ocenę
Ćwiczenia - Zaliczenie na ocenę Wykład - Egzamin |
Właścicielem praw autorskich jest Akademia Finansów i Biznesu Vistula.