A tantárgy adatlapja
1. A képzési program adatai
1.1 Felsőoktatási intézmény	Babeș-Bolyai Tudományegyetem	
1.2 Kar 	Matematika és Informatika	
1.3  Intézet	Magyar Matematika és Informatika	
1.4 Szakterület	informatika	
1.5 Képzési szint	alap	
1.6 Szak / Képesítés	Informatika, Matematika-informatika és Információmérnöki	

2. A tantárgy adatai
2.1 A tantárgy neve	Windows programozás	
2.2 Az előadásért felelős tanár neve	Darvay Zsolt	
2.3 A szemináriumért felelős tanár neve	Áfra Attila	
2.4 Tanulmányi év	3/4	2.5 Félév	1	2.6. Értékelés módja	kollokvium	2.7 Tantárgy típusa	opcionális – szak	

3. Teljes becsült idő (az oktatási tevékenység féléves óraszáma)
3.1 Heti óraszám	3 / 4	melyből: 3.2 előadás	2	3.3 szeminárium/ labor	1 / 2	
3.4 Tantervben szereplő össz-óraszám	42/56	melyből: 3.5 előadás	28	3.6 szeminárium/ labor	14 / 28	
A tanulmányi idő elosztása:	óra	
A tankönyv, a jegyzet, a szakirodalom vagy saját jegyzetek tanulmányozása	46 / 21 / 27	
Könyvtárban, elektronikus adatbázisokban vagy terepen való további tájékozódás	6	
Szemináriumok / laborok, házi feladatok, portofóliók, referátumok, esszék kidolgozása	46 / 21 / 26	
Egyéni készségfejlesztés (tutorálás)	6 	
Vizsgák	4	
Más tevékenységek: ..................		
3.7 Egyéni munka össz-óraszáma	108 / 58 / 69	
3.8 A félév össz-óraszáma	150 / 100 / 125	
3.9 Kreditszám	6 / 4 / 5	

4. Előfeltételek (ha vannak)
4.1 Tantervi	•	Nincs.	
4.2 Kompetenciabeli	•	Az objektumorientált programozás alapvető fogalmainak ismerete.
•	Alapvető C és C++ programozási ismeretek. 	

5. Feltételek (ha vannak)
5.1 Az előadás lebonyolításának feltételei	•	Táblával és videoprojektorral felszerelt előadóterem.	
5.2 A szeminárium / labor lebonyolításának feltételei	•	Számítógépes terem, Visual Studio .NET.	

6. Elsajátítandó jellemző kompetenciák
Szakmai kompetenciák	•	A Windows programozásra vonatkozó alapvető ismeretek elsajátítása.
•	A Microsoft Windows API, az MFC és a C# .NET alapjainak megismerése.
•	Egyszerű alkalmazások készítése Windows API, illetve MFC segítségével.
•	A C# programozási nyelv elsajátítása .NET alkalmazások fejlesztése érdekében.
•	Egy összetett alkalmazás készítése C# .NET-ben.	
Transzverzális kompetenciák 	•	Matematikai problémákra vonatkozó Windows alkalmazások készítése.
•	A természettudományok különböző területeire vonatkozó Windows alkalmazások megismerése és fejlesztése.	

7. A tantárgy célkitűzései (az elsajátítandó jellemző kompetenciák alapján)
7.1 A tantárgy általános célkitűzése	•	A Microsoft Windows operációs rendszer szerkezetének és működésének megismerése.	
7.2 A tantárgy sajátos célkitűzései

	•	A Win32 API és az MFC alapjainak elsajátítása.
•	.NET alkalmazások fejlesztése C#-ban.
•	Windows alkalmazások készítésére vonatkozó képesség kialakítása a Visual Studio környezet használatával.	

8. A tantárgy tartalma
8.1 Előadás	Didaktikai módszerek	Megjegyzések	
1. Bevezetés a Windows programozásba. A Windows operációs rendszer
- az operációs rendszer szerkezete
- memóriakezelés
- üzenetek
- magyar jelölésrendszer	Előadás		
2. A Win32 API. Példák.
- az első Windows alkalmazás
- az ablakkezelő függvény
- üzenetkezelés	Előadás		
3. A Win32 API.
- rajzolás és újrarajzolás
- bevezető a GDI-be
- leképezési mód
- az eszközkapcsolat leíró	Előadás		
4. Az MFC. Példák
- a nézet megvalósítása
- a dokumentum megvalósítása	Előadás		
5. Az MFC.	Előadás		
- dokumentumok tárolása háttértárolón
- görgethető és elválasztott nézetek
- státuszsorok és eszköztárak használata	Előadás		
6. Bevezetés a .NET-be
- a .NET Framework szerekzete
- felügyelt kód
- közös futtató környezet
- objektumorientált programozás a .NET-ben
- a .NET osztálykönyvtárai
- metódusreferenciák	Előadás		
7. Eseménykezelés
-delegate alapú események
- az event kulcsszó
- események közzététele
- feliratkozók
- eseményelérők	Előadás		
8. A .NET grafika alapjai
- pontok és vonalak rajzolása
- körívek, körcikkek és befestett területek
- a toll készlet használata
- animációk	Előadás		
9. A bemeneti eszközök
- a billentyűzet és az egér kezelése
- egérkezelés, húzás az egérrel
- időzítők	Előadás		
10. Vezérlők
- nyomógombok
- rádiógombok és listadobozok
- egyéb vezérlők
- adatok érvényesítése	Előadás		
11. Erőforrások
- ikonok, kurzorok, sztringek
- menük
- bittérképek a menükben
- saját megrajzolású és környezetfüggő menük
- gyorsítóbillentyűk	Előadás		
12. Dialógusablakok és a nyomtató használata
- modális dialógusablakok
- nem modális dialógusablakok
- általános dialógusablakok
- állománykezelésre vonatkozó általános dialógusablakok
- összetett dialógusablakok
- nyomtatás és nyomtatási kép	Előadás		
13. Komponensorientált programozás 
- a komponens fogalma
- osztálykönyvtárak	Előadás		
14. Webszolgáltatások és hálózatok programozása
- webszolgáltatások
- hálózatok	Előadás		
Könyvészet
1. Charles Petzold: Programming Windows (fifth edition), Microsoft Press, 1998.
2. Albert István (ed.) : A .NET Framework és programozása, Szak Kiadó, 2004.
3. Steven Holzner: Visual Basic .NET Black Book, Coriolis Group, 2002.
4. Bradley L. Jones: SAMS Teach Jourself The C# Language in 21 Days, Pearson Education, 2004.	
8.2 Szeminárium / Labor	Didaktikai módszerek	Megjegyzések	
L1. Egyszerű API gyakorlatok	feladat, egyéni munka, párbeszéd		
L2. Egyszerű MFC gyakorlatok	feladat, egyéni munka, párbeszéd		
L3. C# .NET bevezető gyakorlatok	feladat, egyéni munka, párbeszéd		
L4. Vonalak és görbék rajzolása
- Bezier, Clover, Linedemo, Randrect és Sinewave	feladat, egyéni munka, párbeszéd		
L5. Rajzolóprogram (1)
- egérkurzor változtatása
- egér mozgásának korlátozása
- vonalak (alakzatok) tárolása
- visszavonás menüből (Undo)
- az összes alakzat törlése menüből (Delete All)	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
L6. Rajzolóprogram (2)
- rajz lementése és betöltése
- legutóbb használt állományok listája
- a dokumentumban történt módosulás kezelése
- "drag and drop" technika
- állománykiterjesztés regisztrálása	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
L7. Rajzolóprogram (3)
- vonalakon kívül más alakzatok rajzolása (ellipszis, téglalap)
- a kirajzolandó alakzat változtatása menüből vagy eszköztárból
- vonalvastagság, rajzolószín, kitöltőszín beállítása
- adatok érvényesítése (ErrorProvider)	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
L8. Eseménykezelés	feladat, egyéni munka, párbeszéd		
L9. C# .NET projekt (1)
- egérkezelés, menükezelés, billentyűzetkezelés
- erőforrások használata (ikon, kurzor, bittérkép, stb.)	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
L10. C# .NET projekt (2)
- vezérlők használata (nyomógombok, rádiógombok, listadobozok, stb.)
- adatok érvényesítése	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
L11. C# .NET projekt (3)
- dialógusablakok (modális, nem modális, általános)
- metódusreferenciák (delegate) és események	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
L12. C# .NET projekt (4)
- egyéb Windows programozásra vonatkozó sajátosságok	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
L13. C# .NET projekt (kiértékelés)	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
L14. Kollokvium	feladat, egyéni munka		
Könyvészet
1. * * *: Microsoft Windows dokumentációk
2. * * *: Microsoft Visual C++, Borland Delphi dokumentációk
3. TOTH V.: Visual C++ Unleashed, Sams Publishing, 1996
4. Young M.J.: Mastering Visual C++ 6, Sybex Inc., 1998	

9. A tárgy tartalmának összhangba hozása az episztemikus közösségek képviselői, a szakmai egyesületek és a szakterület reprezentatív munkáltatói elvárásaival.
•	A tantárgy tartalma összhangban van a fontosabb egyetemeken oktatott Windows  programozásra vonatkozó előadásokkal. 

10. Értékelés
Tevékenység típusa	10.1 Értékelési kritériumok	10.2 Értékelési módszerek	10.3 Aránya a végső jegyben	
10.4 Előadás 	Az előadás tartalmának elsajátítása	Prezentáció készítése	25%	
				
10.5 Szeminárium / Labor	Laboratóriumi tevékenység	Laboratóriumi gyakorlatok és házi feladatok	25%	
	Összetett alkalmazás készítése	Projekt	25%	
	A gyakorlati anyag elsajátítása	Gyakorlati vizsga	25%	
10.6 A teljesítmény minimumkövetelményei	
•	 A Windows programozás alapjainak ismerete.
•	Egyszerű Windows alkalmazások készítése C# .NET-ben.

Kitöltés dátuma			Előadás felelőse			Szeminárium felelőse
					Dr. Darvay Zsolt, adjunktus	          Áfra Attila, doktorandusz
2012. szept. 25.			...............................			...................................

Az intézeti jóváhagyás dátuma				Intézetigazgató	
2012. szept. 28.						Dr. Szenkovits Ferenc, egyet. docens
..........................