Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N1)

Sylabus przedmiotu Język C#:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów charakterystyki PRK, kompetencje inżynierskie PRK
Profil ogólnoakademicki
Moduł
Przedmiot Język C#
Specjalność przedmiot wspólny
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Valery Rogoza <wrogoza@zut.edu.pl>
Inni nauczyciele Tomasz Hyla <Tomasz.Hyla@zut.edu.pl>, Valery Rogoza <wrogoza@zut.edu.pl>
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 1 Grupa obieralna 1

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL3 26 3,00,50zaliczenie
wykładyW3 10 1,00,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Wprowadzenie do informatyki
W-2Algorytmy 1
W-3Programowanie 1

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Znajomość podstawowych właściwości i oprogramowania platformy Visual Studio.
C-2Zdobycie umiejętności przetwarzania różnych typów danych, tworzenia klas i obiektów z wykorzystaniem języka C#
C-3Zdobycie wiedzy, umiejętności i nawyków posługiwania się technikami tworzenia skutecznych kodów w C#, w tym: przeciążaniem operatorów, zastosowaniem indeksatorów i właściwości, budową interfejsów, tworzeniem i wykorzystaniem wyjątków, tworzeniem delegatów i zdarzeń, oraz dynamiczną identyfikacją typów.

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Cechy platformy programowania wizualnego Visual Studio1
T-L-2Składnia języka C#. Tworzenie i analiza prostych kodów. Instrukcje warunkowe.1
T-L-3Typy danych, literały i zmienne języka C#. Operatory języka C#, techniki tworzenia klas, obiektów i metod.2
T-L-4Tablice, łańcuche znakowe2
T-L-5Przeciążanie operatorów i metod. Dziedziczenie klas.2
T-L-6Własciwości i indeksatory2
T-L-7Metody wirtualne. Klasy i metody abstrakcyjne.2
T-L-8Delegaty2
T-L-9Zdarzenia2
T-L-10Przestrzenie nazw2
T-L-11Niebezpieczny kod w C#, wskaźniki2
T-L-12Typy generyczne2
T-L-13Dynamiczna identyfikacja typów2
T-L-14Podstawy technologii LINQ dostępu do źródeł danych2
26
wykłady
T-W-1Cechy platformy programowania Microsoft.NET. Struktura kodów w C#.2
T-W-2Typy danych, literały i zmienne języka C#. Operatory języka C#, przeciążanie operatorów. Tworzenie klas, obiektów i metod.2
T-W-3Tablice i łańcuchi znakowe2
T-W-4Indeksatory i właściwości. Interfejsy, struktury i przeliczenia.2
T-W-5Dziedziczenie, hierarchia klas, metody wirtualne, klasy abstrakcyjne, zaawansowane techniki operacji z metodami i klasami.2
10

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w zajęciach26
A-L-2Zaliczenie6
A-L-3Uczestnictwo w konsultacjach13
A-L-4Przygotowanie do zajęć, napisanie sprawozdań po wykonaniu zadań30
75
wykłady
A-W-1Uczestnictwo w wykładach10
A-W-2Studia literatury, praca własna studenta9
A-W-3Przygotowanie do zaliczenia3
A-W-4Uczestnictwo w konsultacjach2
A-W-5Udział w zaliczeniu1
25

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykłady / slajdy
M-2Wykonanie zadań laboratoryjnych / konspekt przygotowany przez wykładowcę.
M-3Samodzielna znajomość niektórych tematów z danego przedmiotu / żródła literackie proponowane przez wykładowcę.

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Sprawozdania z wykonanych zadań laboratoryjnych.
S-2Ocena formująca: Odpowiedzi na pytania na zaliczeniu pismowym.

Zamierzone efekty uczenia się - wiedza

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_C09.3_W01
Tworzy i opisuje projekt programu w terminach zasobów C# (klas, obiektów, delegatów, indeksatorów, interfejsów itd.), wybiera metody z biblioteki klas podstawowych C# dla realizacji projektu, tworzy kod w C#, zna strukturę platformy programowania komponentowego .NET Framework i skutecznie korzysta z funkcjonalności tej platformy.
I_1A_W04, I_1A_W02C-1, C-2, C-3T-W-1, T-W-5, T-W-3, T-W-2, T-W-4M-1, M-2, M-3S-1, S-2

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_C09.3_U01
Analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykłądach; skutecznie korzysta z debugera i systemu wyjątków do wyjawienia błędów w kodzie; strukturyzuje projekt programu w postaci klas i obiektów; realizuje projekt programu w języku C# na podstawie sformulowanego zadania.
I_1A_U06, I_1A_U09C-2, C-3T-L-1, T-L-2, T-L-4, T-L-3, T-L-5, T-L-6, T-L-7, T-L-8, T-L-9, T-L-10, T-L-11, T-L-12, T-L-13M-2, M-3S-1

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium oceny
I_1A_C09.3_W01
Tworzy i opisuje projekt programu w terminach zasobów C# (klas, obiektów, delegatów, indeksatorów, interfejsów itd.), wybiera metody z biblioteki klas podstawowych C# dla realizacji projektu, tworzy kod w C#, zna strukturę platformy programowania komponentowego .NET Framework i skutecznie korzysta z funkcjonalności tej platformy.
2,0Student nie w stanie przeanalizować postawione zadanie, wybrać jeżykowe zasoby jego realizacji w postaci kodu w C# i napisać kod realizujcy te zadanie.
3,0Student może opisać projekt w terminach zasobów C# (klas, obiektów, komponentów itd.), może napisać proste kody, ale słabo się orientuje w zaawansowanych metodach tworzenia kodów (wykorzystanie klas biblioteki podstawowej C#, debugowanie kodów, obsługiwanie wyjątków itd.).
3,5Student może opisać projekt programu w terminach zasobów C# (klas, obiektów, komponentów itd.), może wybrać zasoby języka C# do realizacji projektu programu i tworzy proste kody w C#, ale ma trudności w ocenie optymalności proponowanego przez niego rozwiązania i słabo zna możliwości biblioteki podsatwowej C#.
4,0Student może opisać projekt programu w terminach zasobów C# (klas, obiektów, komponentów itd.), wybiera zasoby języka C# do realizacji projektu programu, tworzy kod programu w C#, posługiwując się standardowymi zasobami języka C# do realizacji programu, ale napotyka się na trudności co do posługiwania się zaawansowanymi zasobami języka C# do realizacji optymalnego i skutecznego kodu.
4,5Student opisuje projekt programu w terminach zasobów C# (klas, obiektów, komponentów itd.), wybiera skuteczne zasoby języka C# do realizacji projektu programu, tworzy kod programu w C#, skutecznie posługiwuje się standardowymi zasobami języka C# do realizacji programu, a także zaawansowanymi zasobami przedstawionymi w Bibliotece klas podstawowych środowiska Visual Studio, ale slabo zna ogólną strukturę platformy programowania komponentowego .NET Framework.
5,0Student opisuje projekt programu w terminach zasobów C# (klas, obiektów, komponentów itd.), wybiera skuteczne zasoby języka C# do realizacji projektu programu, tworzy kod programu w C#, skutecznie posługiwuje się standardowymi zasobami języka C# do realizacji programu, a także zaawansowanymi zasobami przedstawionymi w Bibliotece klas podstawowych środowiska Visual Studio, zna strukturę platformy programowania komponentowego .NET Framewoek i skutecznie korzysta z funkcjonalności tej platformy.

Kryterium oceny - umiejętności

Efekt uczenia sięOcenaKryterium oceny
I_1A_C09.3_U01
Analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykłądach; skutecznie korzysta z debugera i systemu wyjątków do wyjawienia błędów w kodzie; strukturyzuje projekt programu w postaci klas i obiektów; realizuje projekt programu w języku C# na podstawie sformulowanego zadania.
2,0Student nie w stanie przeanalizować postawione zadanie, wybrać jeżykowe zasoby jego realizacji w postaci kodu w C# i napisać kod realizujcy te zadanie.
3,0Student może przeanalizować poprawność działania tworzonego kodu w C# oraz weryfikać wyniki działania kodu na testowych przykładach, ale napotyka się na trudności formułuwania zadania na projekt programu w języku C# w kategoriach klas i obiektów, a także ma trudności z oceną optymalności wykorzystania standardowych i zaawansowanych zasobów języka C#.
3,5Student analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykładach, formułuje zadanie na projekt programu w języku C# na podstawie określonego przez eksperta problemu, ale ma trudności z oceną poprawności strukturyzacji programu w postaci klas i obiektów i modyfikacji programu do rozwiązania konkretnych problemów.
4,0Student analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykładach, formułuje zadanie na projekt programu w języku C# na podstawie określonego przez eksperta problemu, opracowuje projekt programu w języku C# na podstawie sformulowanego zadania, strukturyzuje projekt programu w postaci klas i obiektów/ ale ma trudności z modyfikacją kodu i jego optymalizacją w crlu przystosowania programu do rozwiązania poszczególnych problemów.
4,5Student analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykładach, formułuje zadanie na projekt programu w języku C# na podstawie określonego przez eksperta problemu, opracowuje projekt programu w języku C# na podstawie sformulowanego zadania, strukturyzuje projekt programu w postaci klas i obiektów, modyfikuje kod w celu jego optymalizacji (w razie potrzeby), ale napotyka się na trudności posługiwania się zaawansowanymi technikami programowania wC#, w tym Biblioteką klas standardowych środowiska .NET Framework.
5,0Student analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykładach, formułuje zadanie na projekt programu w języku C# na podstawie określonego przez niego lub innego eksperta problemu, opracowuje projekt programu w języku C# na podstawie sformulowanego zadania, strukturyzuje projekt programu w postaci klas i obiektów, modyfikuje kod w celu jego optymalizacji (w razie potrzeby), posługiwując się w razie potrzeby zaawansowanymi technikami programowania wC#, w tym Biblioteką klas standardowych środowiska .NET Framework.

Literatura podstawowa

  1. John Sharp, C# 2010. Krok po kroku, Edycja Polska Microsoft Press, Warszawa, 2010
  2. Stephen C.Perry, C# i .NET, Helion, Gliwice, 2006
  3. Klaus Michelsen, Szkoła programowania. Język C#, Helion, Gliwice, 2007

Literatura dodatkowa

  1. Jesse Liberty, Brian McDonalds, Wprowadzenie do C# 2005, Helion, Gliwice, 2006
  2. Andrew Troelsen, Język C# i platforma .NET, MIKOM, Warszawa, 2006

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Cechy platformy programowania wizualnego Visual Studio1
T-L-2Składnia języka C#. Tworzenie i analiza prostych kodów. Instrukcje warunkowe.1
T-L-3Typy danych, literały i zmienne języka C#. Operatory języka C#, techniki tworzenia klas, obiektów i metod.2
T-L-4Tablice, łańcuche znakowe2
T-L-5Przeciążanie operatorów i metod. Dziedziczenie klas.2
T-L-6Własciwości i indeksatory2
T-L-7Metody wirtualne. Klasy i metody abstrakcyjne.2
T-L-8Delegaty2
T-L-9Zdarzenia2
T-L-10Przestrzenie nazw2
T-L-11Niebezpieczny kod w C#, wskaźniki2
T-L-12Typy generyczne2
T-L-13Dynamiczna identyfikacja typów2
T-L-14Podstawy technologii LINQ dostępu do źródeł danych2
26

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Cechy platformy programowania Microsoft.NET. Struktura kodów w C#.2
T-W-2Typy danych, literały i zmienne języka C#. Operatory języka C#, przeciążanie operatorów. Tworzenie klas, obiektów i metod.2
T-W-3Tablice i łańcuchi znakowe2
T-W-4Indeksatory i właściwości. Interfejsy, struktury i przeliczenia.2
T-W-5Dziedziczenie, hierarchia klas, metody wirtualne, klasy abstrakcyjne, zaawansowane techniki operacji z metodami i klasami.2
10

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w zajęciach26
A-L-2Zaliczenie6
A-L-3Uczestnictwo w konsultacjach13
A-L-4Przygotowanie do zajęć, napisanie sprawozdań po wykonaniu zadań30
75
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Uczestnictwo w wykładach10
A-W-2Studia literatury, praca własna studenta9
A-W-3Przygotowanie do zaliczenia3
A-W-4Uczestnictwo w konsultacjach2
A-W-5Udział w zaliczeniu1
25
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_1A_C09.3_W01Tworzy i opisuje projekt programu w terminach zasobów C# (klas, obiektów, delegatów, indeksatorów, interfejsów itd.), wybiera metody z biblioteki klas podstawowych C# dla realizacji projektu, tworzy kod w C#, zna strukturę platformy programowania komponentowego .NET Framework i skutecznie korzysta z funkcjonalności tej platformy.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W04Ma wiedzę w zakresie programowania systemów komputerowych, zna podstawowe paradygmaty programowania i wiodące języki programowania.
I_1A_W02Posiada wiedzę w zakresie projektowania, analizy i implementacji algorytmów, struktur danych oraz konstrukcji programistycznych, zna podstawowe problemy algorytmiczne występujące w obszarze informatyki.
Cel przedmiotuC-1Znajomość podstawowych właściwości i oprogramowania platformy Visual Studio.
C-2Zdobycie umiejętności przetwarzania różnych typów danych, tworzenia klas i obiektów z wykorzystaniem języka C#
C-3Zdobycie wiedzy, umiejętności i nawyków posługiwania się technikami tworzenia skutecznych kodów w C#, w tym: przeciążaniem operatorów, zastosowaniem indeksatorów i właściwości, budową interfejsów, tworzeniem i wykorzystaniem wyjątków, tworzeniem delegatów i zdarzeń, oraz dynamiczną identyfikacją typów.
Treści programoweT-W-1Cechy platformy programowania Microsoft.NET. Struktura kodów w C#.
T-W-5Dziedziczenie, hierarchia klas, metody wirtualne, klasy abstrakcyjne, zaawansowane techniki operacji z metodami i klasami.
T-W-3Tablice i łańcuchi znakowe
T-W-2Typy danych, literały i zmienne języka C#. Operatory języka C#, przeciążanie operatorów. Tworzenie klas, obiektów i metod.
T-W-4Indeksatory i właściwości. Interfejsy, struktury i przeliczenia.
Metody nauczaniaM-1Wykłady / slajdy
M-2Wykonanie zadań laboratoryjnych / konspekt przygotowany przez wykładowcę.
M-3Samodzielna znajomość niektórych tematów z danego przedmiotu / żródła literackie proponowane przez wykładowcę.
Sposób ocenyS-1Ocena formująca: Sprawozdania z wykonanych zadań laboratoryjnych.
S-2Ocena formująca: Odpowiedzi na pytania na zaliczeniu pismowym.
Kryteria ocenyOcenaKryterium oceny
2,0Student nie w stanie przeanalizować postawione zadanie, wybrać jeżykowe zasoby jego realizacji w postaci kodu w C# i napisać kod realizujcy te zadanie.
3,0Student może opisać projekt w terminach zasobów C# (klas, obiektów, komponentów itd.), może napisać proste kody, ale słabo się orientuje w zaawansowanych metodach tworzenia kodów (wykorzystanie klas biblioteki podstawowej C#, debugowanie kodów, obsługiwanie wyjątków itd.).
3,5Student może opisać projekt programu w terminach zasobów C# (klas, obiektów, komponentów itd.), może wybrać zasoby języka C# do realizacji projektu programu i tworzy proste kody w C#, ale ma trudności w ocenie optymalności proponowanego przez niego rozwiązania i słabo zna możliwości biblioteki podsatwowej C#.
4,0Student może opisać projekt programu w terminach zasobów C# (klas, obiektów, komponentów itd.), wybiera zasoby języka C# do realizacji projektu programu, tworzy kod programu w C#, posługiwując się standardowymi zasobami języka C# do realizacji programu, ale napotyka się na trudności co do posługiwania się zaawansowanymi zasobami języka C# do realizacji optymalnego i skutecznego kodu.
4,5Student opisuje projekt programu w terminach zasobów C# (klas, obiektów, komponentów itd.), wybiera skuteczne zasoby języka C# do realizacji projektu programu, tworzy kod programu w C#, skutecznie posługiwuje się standardowymi zasobami języka C# do realizacji programu, a także zaawansowanymi zasobami przedstawionymi w Bibliotece klas podstawowych środowiska Visual Studio, ale slabo zna ogólną strukturę platformy programowania komponentowego .NET Framework.
5,0Student opisuje projekt programu w terminach zasobów C# (klas, obiektów, komponentów itd.), wybiera skuteczne zasoby języka C# do realizacji projektu programu, tworzy kod programu w C#, skutecznie posługiwuje się standardowymi zasobami języka C# do realizacji programu, a także zaawansowanymi zasobami przedstawionymi w Bibliotece klas podstawowych środowiska Visual Studio, zna strukturę platformy programowania komponentowego .NET Framewoek i skutecznie korzysta z funkcjonalności tej platformy.
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_1A_C09.3_U01Analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykłądach; skutecznie korzysta z debugera i systemu wyjątków do wyjawienia błędów w kodzie; strukturyzuje projekt programu w postaci klas i obiektów; realizuje projekt programu w języku C# na podstawie sformulowanego zadania.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U06Potrafi rozwiązywać podstawowe problemy algorytmiczne z uwzględnieniem ich złożoności posługując się kluczowymi językami programowania.
I_1A_U09Potrafi analizować i oceniać przydatność języków, platform programistycznych i narzędzi informatycznych do rozwiązywania wybranych problemów inżynierskich w dziedzinie informatyki.
Cel przedmiotuC-2Zdobycie umiejętności przetwarzania różnych typów danych, tworzenia klas i obiektów z wykorzystaniem języka C#
C-3Zdobycie wiedzy, umiejętności i nawyków posługiwania się technikami tworzenia skutecznych kodów w C#, w tym: przeciążaniem operatorów, zastosowaniem indeksatorów i właściwości, budową interfejsów, tworzeniem i wykorzystaniem wyjątków, tworzeniem delegatów i zdarzeń, oraz dynamiczną identyfikacją typów.
Treści programoweT-L-1Cechy platformy programowania wizualnego Visual Studio
T-L-2Składnia języka C#. Tworzenie i analiza prostych kodów. Instrukcje warunkowe.
T-L-4Tablice, łańcuche znakowe
T-L-3Typy danych, literały i zmienne języka C#. Operatory języka C#, techniki tworzenia klas, obiektów i metod.
T-L-5Przeciążanie operatorów i metod. Dziedziczenie klas.
T-L-6Własciwości i indeksatory
T-L-7Metody wirtualne. Klasy i metody abstrakcyjne.
T-L-8Delegaty
T-L-9Zdarzenia
T-L-10Przestrzenie nazw
T-L-11Niebezpieczny kod w C#, wskaźniki
T-L-12Typy generyczne
T-L-13Dynamiczna identyfikacja typów
Metody nauczaniaM-2Wykonanie zadań laboratoryjnych / konspekt przygotowany przez wykładowcę.
M-3Samodzielna znajomość niektórych tematów z danego przedmiotu / żródła literackie proponowane przez wykładowcę.
Sposób ocenyS-1Ocena formująca: Sprawozdania z wykonanych zadań laboratoryjnych.
Kryteria ocenyOcenaKryterium oceny
2,0Student nie w stanie przeanalizować postawione zadanie, wybrać jeżykowe zasoby jego realizacji w postaci kodu w C# i napisać kod realizujcy te zadanie.
3,0Student może przeanalizować poprawność działania tworzonego kodu w C# oraz weryfikać wyniki działania kodu na testowych przykładach, ale napotyka się na trudności formułuwania zadania na projekt programu w języku C# w kategoriach klas i obiektów, a także ma trudności z oceną optymalności wykorzystania standardowych i zaawansowanych zasobów języka C#.
3,5Student analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykładach, formułuje zadanie na projekt programu w języku C# na podstawie określonego przez eksperta problemu, ale ma trudności z oceną poprawności strukturyzacji programu w postaci klas i obiektów i modyfikacji programu do rozwiązania konkretnych problemów.
4,0Student analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykładach, formułuje zadanie na projekt programu w języku C# na podstawie określonego przez eksperta problemu, opracowuje projekt programu w języku C# na podstawie sformulowanego zadania, strukturyzuje projekt programu w postaci klas i obiektów/ ale ma trudności z modyfikacją kodu i jego optymalizacją w crlu przystosowania programu do rozwiązania poszczególnych problemów.
4,5Student analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykładach, formułuje zadanie na projekt programu w języku C# na podstawie określonego przez eksperta problemu, opracowuje projekt programu w języku C# na podstawie sformulowanego zadania, strukturyzuje projekt programu w postaci klas i obiektów, modyfikuje kod w celu jego optymalizacji (w razie potrzeby), ale napotyka się na trudności posługiwania się zaawansowanymi technikami programowania wC#, w tym Biblioteką klas standardowych środowiska .NET Framework.
5,0Student analizuje poprawność działania tworzonego kodu w C# oraz weryfikuje wyniki działania kodu na testowych przykładach, formułuje zadanie na projekt programu w języku C# na podstawie określonego przez niego lub innego eksperta problemu, opracowuje projekt programu w języku C# na podstawie sformulowanego zadania, strukturyzuje projekt programu w postaci klas i obiektów, modyfikuje kod w celu jego optymalizacji (w razie potrzeby), posługiwując się w razie potrzeby zaawansowanymi technikami programowania wC#, w tym Biblioteką klas standardowych środowiska .NET Framework.