Zaawansowane programowanie obiektowe
0800-ZAPROB
Program zajęć:
* Metodologia budowania dużych projektów}, budowa bibliotek dla .Net i wymiana informacji pomiędzy bibliotekami
* Interfejsy i klasy ogólne, uniwersalne implementacje poznanych wcześniej algorytmów
* Metody rozszerzające
* Delegaty, zdarzenia, metody anonimowe
* Wielowątkowość aplikacji, mechanizmy synchronizacji
* Programowanie asynchroniczne w .NET 4.5
* Zrównoleglanie algorytmów na przykładzie sortowania przez łączenie
* Interfejs graficzny, tworzenie kontrolek dla Windows Forms
* Strumienie, Serializacja, .NET remoting
* Sposoby ochrony procesu, wykorzystanie domen aplikacji
* Mechanizmy meta-danych, reflection, atrybuty i ich zastosowanie,
generowanie kodu on-line (dodawanie kodu w czasie wykonywania programu)
* Jak robić automatyczne pluginy do programu - przeszukiwanie zestawów
* MEF & SimpleCalculator3 example
* Metodyka budowania testów tworzonego kodu dla środowiska .Net
* Klasy Debug i Trace, TraceSwitch
* Różne ciekawe technologie (wyrażenia regularne, LINQ, XML, bazy danych i inne)
* Programowanie dynamiczne
* Integracja kodu C# z językami dynamicznymi
* Wzorce projektowe, wzorzec MVC w wydaniu Microsoftu, mapowanie obiektowo-relacyjne (ORM, EntityFramework)
* Zaawansowane struktury danych i algorytmy w .Net
|
W cyklu 2025/26L:
Program zajęć: * Metodologia budowania dużych projektów}, budowa bibliotek dla .Net i wymiana informacji pomiędzy bibliotekami * Interfejsy i klasy ogólne, uniwersalne implementacje poznanych wcześniej algorytmów * Metody rozszerzające * Delegaty, zdarzenia, metody anonimowe * Wielowątkowość aplikacji, mechanizmy synchronizacji * Programowanie asynchroniczne w .NET 10 * Zrównoleglanie algorytmów na przykładzie sortowania przez łączenie * Interfejs graficzny, tworzenie kontrolek dla Windows Forms * Strumienie, Serializacja, .NET * Sposoby ochrony procesu, wykorzystanie domen aplikacji * Mechanizmy meta-danych, reflection, atrybuty i ich zastosowanie, generowanie kodu on-line (dodawanie kodu w czasie wykonywania programu) * Jak robić automatyczne pluginy do programu - przeszukiwanie zestawów * MEF & SimpleCalculator3 example * Metodyka budowania testów tworzonego kodu dla środowiska .Net * Klasy Debug i Trace, TraceSwitch * Różne ciekawe technologie (wyrażenia regularne, LINQ, XML, bazy danych i inne) * Programowanie dynamiczne * Integracja kodu C# z językami dynamicznymi * Wzorce projektowe, wzorzec MVC w wydaniu Microsoftu, mapowanie obiektowo-relacyjne (ORM, EntityFramework) * Zaawansowane struktury danych i algorytmy w .Net
|
Całkowity nakład pracy studenta
Godziny realizowane z udziałem nauczycieli (45 godz.):
- udział w wykładach – 15 godz.
- udział w laboratorium – 30 godz.
Czas poświęcony na pracę indywidualną studenta (45 godz.):
- przygotowanie do laboratorium – 20 godz.
- pisanie prac, projektów oraz przygotowanie do kolokwium – 25 godz.
Łącznie: 90 godz. (3 punkty ECTS)
Efekty uczenia się - wiedza
W01: posiada rozszerzoną wiedzę w zakresie zaawansowanej konstrukcji i analizy obiektowo zorientowanych programów, zna zasady i techniki projektowania i programowania obiektowego,
W02: posiada rozbudowaną wiedzę w zakresie zaawansowanych aspektów języków programowania (głównie C#, ewentualnie C++), zaawansowanych konstrukcji (takich jak zapytania LINQ czy narzędzia korzystania z wyrażeń regularnych),
W03: posiada wiedzę o przydatnych narzędziach oraz bibliotekach ułatwiających m.in. budowanie aplikacji wielowątkowych czy graficznych interfejsów użytkownika.
Efekty przedmiotowe W01-W03 realizują efekty kierunkowe: K_W02, K_W04, K_W05.
Efekty uczenia się - umiejętności
U01: potrafi wykorzystać posiadaną wiedzę do tworzenia obiektowo zorientowanych projektów i ich implementacji, formułować i testować hipotezy związane z efektywnością projektowanych i implementowanych systemów,
U02: potrafi stworzyć plan dużych projektów informatycznych w paradygmacie projektowania obiektowego,
U03: potrafi krytycznie ocenić nowe technologie i narzędzia programistyczne i diagnostyczne, potrafi dokonać ich wyboru do realizacji zadanych problemów,
U04: potrafi zaprojektować i zaimplementować rozszerzenia lub ulepszenia do istniejących systemów zorientowanych obiektowo,
U05: potrafi wykorzystywać zaawansowane narzędzia programistyczne wspomagające projektowanie i programowanie obiektowe.
Efekty przedmiotowe U01-U05 realizują efekty kierunkowe: K_U04, K_U06, K_U08, K_U09, K_U11.
Koordynatorzy przedmiotu
Metody dydaktyczne
Wykład ilustrowany jest licznymi przykładami. Materiały są udostępniane w formie elektronicznej.
Problemy projektowe i implementacyjne są dyskutowane i rozwiązywane w trakcie wykładu i w ramach laboratorium.
Metody dydaktyczne podające:
- wykład informacyjny (konwencjonalny)
Metody dydaktyczne poszukujące:
- klasyczna metoda problemowa
- laboratoryjna
- projektu
Metody dydaktyczne podające
- wykład informacyjny (konwencjonalny)
Metody dydaktyczne poszukujące
- laboratoryjna
- klasyczna metoda problemowa
- projektu
Wymagania wstępne
Programowanie obiektowe.
Kryteria oceniania
Metody oceniania:
kolokwium/praca w ramach laboratorium sprawdzają efekty kształcenia W01-W03.
projekty i praca bieżąca w ramach laboratorium sprawdzają efekty kształcenia U01-U05.
Kryteria oceniania:
Wykład jest pomyślany jako przygotowanie do laboratorium polegające na przekazaniu studentom ogólnych treści, niezbędnych do realizacji zadań laboratoryjnych. Zaliczenie wykładu jest skorelowane z zaliczeniem laboratorium.
Laboratorium – zaliczenie na ocenę na podstawie oceny przygotowanych projektów i pracy bieżącej (ewentualnie również wyników kolokwium):
ndst < 50%
dst >= 50%
dst plus >= 57,5%
db >= 65%
db plus >= 72,5%
bdb >= 80%
Literatura
1. Krzysztof Grąbczewski, Slajdy do wykładu, http://www.is.umk.pl/~kg/zajecia/ZPO/ZPO.pdf.
2. https://docs.microsoft.com/
3. Jesse Liberty i in. ,,C#. Programowanie'', wiele wydań
4. https://dl.ebooksworld.ir/books/CSharp.12.in.a.Nutshell.The.Definitive.Reference.9781098147440.pdf
5. Joseph Albahari, Ben Albahari, ,,C# 5.0 in a Nutshell'', O'Reilly Media, 2012, wydanie V
6. Ben Albahari, Joseph Albahari, ,,C# 5.0. Leksykon kieszonkowy''
7. C# language specification, Microsoft
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i
terminach zajęć) mogą być dostępne w serwisie USOSweb: