Zajęcia, rok akademicki 2015/2016, semestr 2
Programowanie pod Windows
Regulamin pracowni i zasady zaliczania
Regulamin pracowni:
- warunkiem uzyskania zaliczenia przedmiotu jest uzyskanie odpowiedniej liczby punktów
    za rozwiązywanie zadań ogłoszonych w zeszycie zaadń
 - na kolejnych zajęciach, studenci na specjalnych formularzach deklarują numery rozwiązanych zadań; 
    prowadzący sprawdza w czasie zajęć minimum jedno zadanie każdemu studentowi
 
Uwagi:
- zeszyt zadań zawiera zadania, których suma to 100 punktów - wartość referencyjną dla
    limitów punktowych (patrz niżej). 
 - brak rozwiązania lub rozwiązanie niekompletne, w przypadku gdy 
zadanie to zostanie
    wybrane przez prowadzącego do wglądu, oznacza utratę co najmniej połowy zgromadzonych
    do danej chwili punktów
 - zadania można deklarować i oddawać w czasie trwania całych zajęć;
    można więc ewentualne wątpliwości skonsultować z prowadzącym i dopiero wtedy zadeklarować
    zadanie jako rozwiązane
 
Zasady zaliczania:
	| punkty | 
        ocena | 
	| < 25 | 
        ndst | 
	| 25-50 | 
        dst | 
	| 50-75 | 
        db | 
	| > 75 | 
        bdb | 
Notatki do wykładu
Windows oczami programisty
Wydawnictwo Mikom, Warszawa 2003
Wersja akademicka Programowanie pod Windows
	
Materiały do pobrania
Kody źródłowe programów z podręcznika (komplet)
Zeszyt zadań
Pobierz zeszyt zadań, wersja 2014.01.01
Obowiązujące zadania
| Do kiedy | Zestaw zadań | Uwagi | 
| 15.03.2016 | 1.1, 1.2 |   | 
| 05.04.2016 | 1.3 |   | 
| 12.04.2016 | 2.1 |   | 
| 19.04.2016 | 2.2 |   | 
| 26.04.2016 | 2.3 |   | 
| 10.05.2016 | 2.4,2.5 |   | 
| 17.05.2016 | 3.2 |   | 
| 31.05.2016 | 3.1 |   | 
| 07.06.2016 | 3.3 |   | 
| 14.06.2016 | 3.4 |   | 
| 14.06.2016 | 3.5 |   | 
Uwaga! Po terminie z kolumny "Do kiedy" zadania ze wskazanych rozdziałów nie będą przyjmowane.
Uwaga! Data obowiązywania dotyczy pracowni wtorkowych. Dla pracowni odbywających się w inne dni tygodnia terminem
obowiązującym jest dzień tygodnia w tym samym tygodniu co podany wtorek.
Punktowe rankinigi cząstkowe (grupa WZY)
Punktacja na 2016-05-24
Wykłady
 
 
- 2016.02.22, choroba wykładowcy
 - 2016.03.01
	
	- Wykład organizacyjny
	
 - Omówienie środowiska i narzędzi programowania
	
 - Wprowadzenie do Win32 - okna, uchwyty, komunikaty
	
 - Obsługa komunikatów
	
 
	
 - 2016.03.08
    
	- Tworzenie okien potomnych
	
 - Komunikacja między oknami
	
 - GDI
	
 - Procesy, wątki, synchronizacja
	
 - Biblioteki natywne
	
 
	
 - 2016.03.15
    
	- Biblioteki COM
		
		- Tworzenie biblioteki COM w C++
		
 - Konsumowanie biblioteki COM w VBA
		
 
	 - Środowisko uruchomieniowe .NET - wprowadzenie
	
 - Środowisko uruchomieniowe .NET - historia
	
 
	
 - 2016.03.22
	
	- CIL, JIT
	
 - Dekompilacja
	
 - Weryfikacja
	
 - C#1 - model obiektowy, system typów
	
 - Pola, metody, konstruktory, polimorfizm, przeciążanie metod
	
 
 - 2016.04.05
	
	- Propercje (właściwości)
	
 - Indeksery
	
 - Delegacje (funkcje jako first-class citizens
	    
		- Nazwane delegacje
		
 - Anonimowe delegacje
		
 - Lambda wyrażenia
		
 
	 - Zdarzenia (events)
	
 - Refleksja
	
 - Atrybuty
	
 
 - 2016.04.12
	
	- Dynamiczne tworzenie kodu
	
 - Enumeratory
	
 - Yield (enumeracje przez kontynuacje)
	
 - C#2 Typy generyczne, ograniczenia typowe
	
 - Typy generyczne w C++ vs C# vs Java - specyfika implementacji, plusy/minusy
	
 
	
 - 2016.04.19
	
	- C#3 rozszerzenia języka - metody rozszerzające, obiekty anonimowe, niejawne typowanie (var, tablice)
    
 - C#3 LINQ - uniwersalne, funkcyjne podejście do dostępu do danych	
	
 - LINQ - Linq2Objects vs Linq2SQL, delegacje vs drzewa wyrażeń
	
 - C#4, DLR, współpraca z COM early vs late binding vs dynamic
	
 
	
 - 2016.04.26
	
	- System.Windows.Forms - przegląd materiału
	
 - Model zdarzeniowy
	
 - Jednowątkowość i wyzwania asynchroniczne - async/await
	
 - Layout - kontenery, kotwice, dokowanie
	
 
 - 2016.05.10
	
	- System.Windows.Forms - ciąg dalszy
	
 - Podstawowe formanty interfejsu użytkownika 
	
 - Formanty do reprezentacji zbiorów elementów - ComboBox/ListBox vs ListView/TreeView
	
 - Zarządzanie layoutem aplikacji - kotwice/dokowanie
	
 - Leniwe ładowanie dużych zbiorów danych do formantu TreeView
	
 
 - 2016.05.17
	
	- System.Windows.Forms - tworzenie własnych formantów	
	    
		- dziedziczenie istniejącego formantu
		
 - formant z własnym rysowaniem zawartości (dziedziczący z Control)
		
 - formant kompozytowy (dziedziczący z UserControl)
		
 
	 - Interfejs użytkownika oparty na powiadomieniach
	
 - WPF - omówienie głównych pojęc
	
 
	
 - 2016.05.24
	
	- System.Windows.Forms - tworzenie własnych formantów	
	
 - WPF - omówienie głównych pojęc
	
 - WPF - dwukierunkowy data-binding, interfejs INotifyPropertyChanged
	
 
	
 - 2016.05.31
	
	
	- System.Data - podsystem dostępu do danych
	
 - SELECT, INSERT, UPDATE, obsługa relacji jeden-wiele
	
 - kwerendy parametryczne, zagrożenie SQL Injection
	
 - Dapper.NET - przykład lekkiej technologii automatyzującej typowe operacje bazodanowe
	
 
	
 - 2016.06.07
	
	
	- Linq2SQL jako przykład technologii ORM w podejściu Database First
	
 - Entity Framework jako przykład technologii w podejściu Code First
	
 - Entity Framework Code First Migrations
	
 
	
 - 2016.06.14
	
	
	- Xml - przegląd 
	
 - Xml - model DOM, język XPath
	
 - Xml - strumieniowanie
	
 - Xml + Xsd, modele, serializacja
	
 
				
 
	
Literatura
- Charles Petzold, Programming Windows 5th Edition
 - Mark Russinovich, David Solomon, Windows Internals
 - Bruce Eckel, Thinking in C#
 - Andrew Troelsen, Język C# i Platforma .NET
 - Daniel Solis, Illustrated C#