Akademia Finansów i Biznesu Vistula - Centralny System Uwierzytelniania
Strona główna

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 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
Wymagania (lista przedmiotów):

Techniki internetowe TecInt-SLP-I
Wprowadzenie do programowania CII1SP17CI-Z17

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
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć:
Ćwiczenia, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
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
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Akademia Finansów i Biznesu Vistula.
ul. Stokłosy 3
02-787 Warszawa
tel: +48 22 45 72 300 https://vistula.edu.pl/
kontakt deklaracja dostępności USOSweb 7.0.0.0-1 (2023-09-06)