K-INFO
HU
EN
Belépés

Eseményvezérelt és vizuális programozás

Event Driven and Visual Programming
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Tantárgy neve (magyarul, angolul)
Eseményvezérelt és vizuális programozás
Event Driven and Visual Programming
Tantárgykód BMEVIAUBB01
Tantárgyjelleg
Képzési szint
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 0 3
jelleg (kapcsolt/önálló) kapcsolt
Tanulmányi teljesítmény/értékelés típusa félévközi érdemjegy
Tantárgy kreditértéke 7
Tantárgyfelelős
DR. Csorba Kristóf
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Automatizálási és Alkalmazott Informatikai Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala https://www.aut.bme.hu/Course/VIAUBB01
Tantárgy elsődleges mintatantervi jellege
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

·         A .NET és .NET Core keretrendszer felépítése és szolgáltatásai: architektúra, főbb komponensek és szerepük. JIT fordítás és toolchain (megértés szint - K2)

·         A C# nyelv alapjai: nyelvi konstrukciók, láthatóság, property-k, attribútumok. Kollekciók, generikus típusok. Népszerű osztálykönyvtárak: szövegkezelés, I/O kezelés, Linq és lambda kifejezések, XML (alkalmazás szint - K3)

·         XML kezelés, események, metódus referenciák, eseményvezérelt programozás. (alkalmazás szint - K3)

·         Adatkötés, rajz és szöveg megjelenítése. Szálak, párhuzamos feldolgozás, szinkronizációs technikák. Win UI és XAML, adatkötés. (alkalmazás szint - K3)

·         Dependency injection, tesztelési technikák (elsősorban laborpéldákban bemutatva) (megértés szint - K2)

·         Leggyakrabban használt tervezési minták (megértés szint - K2)

 

1.      A tantárgy részletes tematikája

Az előadások tematikája:

Előadás

Előadás anyaga

1.

Bevezető, demó, követelmények ismertetése, egyéb adminisztratív és technikai tudnivalók. A .NET keretrendszer komponensei és szerepük. Toolchain, JIT, .NET Core

2.

C# alapok (osztályok, láthatóságok, érték és referencia típusok)

3.

Kollekciók, generikus tömbök

4.

Osztálykönyvtárak: szövegkezelés, I/O

5.

Események, delegate és event, eseményvezérelt programozás

6.

Linq, lambda kifejezés és XML

7.

WinUI: alapok, xaml, események

8.

WinUI: adatkötés

9.

WinUI rajzolás, hasznos UI elemek

10.

WinUI: UI és háttérszálak, async-await minta

11.

Gyakori tervezési minták áttekintése 1: Template method, Strategy

12.

Gyakori tervezési minták áttekintése 2: Observer, Dependency injection, Singleton

13.

Gyakori tervezési minták 3: Factory, Builder, Command, Composite és Adapter

14.

Félévzárás, kitekintés, érdekességek

A gyakorlatok (laborok) tematikája:

A hetek beosztása az esetleg elmaradó laborok függvényében változhat!

Labor

Labor anyaga

1.

Labor infrastruktúra használata, git ismétlés, github classroom használata, fejlesztő környezet alapok

2.

C# alapok

3.

Kollekciók, generikus tömbök

4.

szövegkezelés, I/O

5.

Linq, lambda és XML

6.

1. zárthelyi dolgozat megírása (pontos időzítés a ZH rendnek megfelelően)

7.

WinUI alapok, xaml

8.

WinUI adatkötés, UI elemek

9.

UI és háttér szálak

10.

MVVM architektúra, Command pattern

11.

Integráló jellegű, összetett szoftverfejlesztési feladat

12.

Template method és Strategy (tervezési minták)

13.

További tervezési minták egy összetettebb feladatban

14.

2. zárthelyi dolgozat megírása (pontos időzítés a ZH rendnek megfelelően)


A tárgy keretein beül a hallgatók a korábbi objektum-orientált ismereteikre alapozva megismerik az eseményvezérelt és grafikus programozás legfontosabb módszereit. A hallgatók megismerik a C# nyelvet és a .NET/.NET Core környezeten keresztül elsajátítják a grafikus felhasználói felület (GUI - Graphical User Interface) programozási alapjait. Megismerik a modern osztálykönyvtárak fontosabb szolgáltatásait (adatkötés, rajz és szöveg megjelenítése stb.), valamint betekintést kapnak a feladatok párhuzamos futtatásának lehetőségeibe, kiegészítve a szoftverfejlesztésben leggyakrabban használt tervezési mintákkal.  

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

  A tantárgy oktatása során az előadások és laborok laza kapcsolatban vannak, mivel sok labor időpont esetén az előadás-labor sorrend nem minden esetben garantálható. Az előadások rövid demók és érdekességek mellett elsősorban a szemléletet, a működési alapkoncepciók átadását célozzák meg. A laborok anyagukat tekintve bár építenek az előadásokra, a kiadott segédanyagok törekednek arra, hogy egy külön tanulási egységet képezzenek. Azért is, mert az előadások alacsony száma miatt az anyag egy jelentős része nem fér bele az előadásokba. A laborok a „flipped classroom” koncepciót követve igyekeznek az önállóan megtanulandó anyagot az otthoni felkészülésre helyezni, hogy az oktatóval együtt töltött időt ténylegesen a kérdések és interaktívan hatékonyabban megtanulható szempontok elsajátítására koncentrálhassák. A laborok jellegüket tekintve az alábbi jellegeket öltik: ·         Hagyományos, pontozott labor kiadott segédlettel, elvégzendő feladatokkal. A hallgatók önállóan dolgoznak, a laborvezető segít. A labor elején beugró iratható, melynek eredménye beleszámít az értékelésbe. A labor teljesítésének feltétele a megoldás határidőre történő leadása. A határidő előre kihirdetett módon lehet a labor vége után is. ·         Bizonyos laborok anyaga otthoni feldolgozásra is alkalmas, így az órarendi időpontban lévő tantermi labor ehhez kapcsolódó konzultációként is igénybe vehető. A megoldást a hallgatóknak ebben az esetben is elektronikusan, határidőre kell leadni. Az egyetemi helyszínen történő teljesítés vagy konzultációs lehetőség 24 órával korábbi, előzetes jelentkezéshez köthető. ·         Szükség esetén teremfoglalási okokból a (számítógépnél megírt) ZH megíratása is történhet labor időpontban. A tananyag elsajátítását a laborokon kívül a félév felénél és végén egy-egy zárthelyi dolgozat ellenőrzi. A tárgy keretében kiadunk otthon feldolgozandó tananyagokat is online videók, tutorialok, leírások formájában. Ezek között van olyan is, ami a kontaktórákon nem hangzik el, de a tananyag részét képezi.  

Tanulástámogató anyagok

Online források
 ; ·        ; Benedek Zoltán: Bevezetés a C#; nyelvű objektumorientált programozásba; Microsoft Learn – Win UI: https://learn.microsoft.com/en-us/windows/apps/winui/

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
·         Objektum orientált programozás ·         Verziókövetési alapismeretek Git alatt ·      Alapvető unit tesztelési ismeretek
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
·         Objektum orientált programozás ·         Verziókövetési alapismeretek Git alatt ·      Alapvető unit tesztelési ismeretek
Általános szabályok
Követelmények: A szorgalmi időszakban: A pontozott laboron a munkát és eredményeket a laborvezető pontozza, az összes ilyen laborra egyenletesen elosztottan, összesen 50 ponttal. A két zárthelyi feladat maximum 25-25 pontot ér, így az összes megszerezhető pont 100 pont. A zárthelyi dolgozatokban a programozási feladatok mellett lehet teszt alapú beugró is, melynek elégséges teljesítése (legalább 70%) a programozásos részek elkészítésének előfeltételeként előírható. A félév sikeres teljesítésének feltétele ·         A pontozott laborok 70%-ának teljesítése (ami a megoldás határidőre történő beküldését és legalább 1 pont megszerzését jelenti). A nem pontozott laborok itt nem számítanak bele a 100%-ba. ·         Minden zárthelyi külön-külön legalább elégséges szintű (40%) teljesítése. Az előzetes felkészülésre kiadott anyagok elsajátítása online teszt formájában is történhet (például labor eleji beugró helyett), melyeket határidőre kötelező adott szinten (80%) teljesíteni és minden teszttel háromszor lehet próbálkozni. Ezek nem teljesítése tesztenként 2 pont levonásával jár. (A próbálkozások között minimális időkülönbség előírható.) A félév során, esetleg előre be nem jelentett módon, további bónusz pontok nyerhetők, melyek hozzáadódnak a félév során gyűjtött pontokhoz. A tantárgy munkafolyamatainak automatizálása érdekében fontos a formai előírások és határidők betartása. Az ettől való eltérés mínusz pontokkal is büntethető. Az osztályzat megállapításának módja: A zárthelyikre és laborokra kapott pontszámok összege alapján az alábbi ponthatárok szerint: 0-39p elégtelen, 40-54p elégséges, 55-69p közepes, 70-84p jó, 85-100p jeles. Pótlási lehetőségek:   A két zárthelyi előre kihirdetett időpontban, együttesen pótolható, második pótlásra (pót-pót-ZH-ra nincsen lehetőség. Javító célú pótlás esetén rontani is lehet. A laborok pótlására nincsen lehetőség. A hallgató hibájából késve leadott, de bizonyíthatóan időben elkészített laborok 50% pontszámmal vehetők figyelembe.  
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás

Nincs megadva.

Ajánlott tantárgyak

Nincs megadva.

A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.