Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

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

    A tantárgy angol neve: Event Driven and Visual Programming

    Adatlap utolsó módosítása: 2019. szeptember 5.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Üzemmérnök-informatikus szak, BProf képzés, közös tárgy

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUBB01 3 2/0/3/f 7  
    3. A tantárgyfelelős személy és tanszék Dr. Csorba Kristóf, Automatizálási és Alkalmazott Informatikai Tanszék
    A tantárgy tanszéki weboldala https://www.aut.bme.hu/Course/VIAUBB01
    4. A tantárgy előadója

    Dr. Csorba Kristóf, egyetemi docens, Automatizálási és Alkalmazott Informatikai Tanszék

    5. A tantárgy az alábbi témakörök ismeretére épít

    ·         Objektum orientált programozás

    ·         Verziókövetési alapismeretek Git alatt

    ·      Alapvető unit tesztelési ismeretek

    6. Előtanulmányi rend
    Kötelező:
    Training.Code=("5N-A9") ÉS
    TárgyEredmény( "BMEVIIIBA02" , "jegy" , _ ) >= 2

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    7. A tantárgy célkitűzése

     

    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 (reflexiós technikák, 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.


     

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

    ·         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. UWP é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)

     

    ·         Reflexiós technikák (megértés szint - K2)

      

    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 (1. házi feladat kiadása)

    5.

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

    6.

    Linq, lambda kifejezés és XML

    7.

    Az 1. házi feladat specifikációjának változása (a megrendelő meggondolta magát…)
    UWP (Universal Windows Platform): alapok, xaml, események

    8.

    UWP: adatkötés

    9.

    UWP rajzolás, hasznos UI elemek

    10.

    UWP: command pattern, MVVM architektúra (2. házi feladathoz mindent tudnak)

    11.

    UI és háttér szálak

    12.

    Attribútumok, reflection használata

    13.

    Kimaradt részek bepótlása, nagyobb projektekből esettanulmányok és további rövid példák hasznos .NET-es eszközökre

    14.

    Az esetleges óraelmaradások miatt ez az óra elmaradhat. Ha nem, a témája összefoglalás, kitekintés, érdekességek.

    A gyakorlatok (laborok) tematikája:

    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, házi feladat kiadás

    4.

    szövegkezelés, I/O

    5.

    eseményvezérelt programozás, code review

    6.

    Linq, lambda és XML

    7.

    Házi feladat 1 leadása

    8.

    UWP alapok, xaml, házi feladat 1 módosítás és házi feladat 2 kiadása

    9.

    UWP adatkötés, UI elemek

    10.

    MVVM architektúra, Command pattern

    11.

    UI és háttér szálak, integráló jellegű feladat

    12.

    Házi feladat 1 leadás (módosított specifikációval)

    13.

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

    14.

    Házi feladat 2 leadása

     

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

     

    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 labor kiadott segédlettel, elvégzendő feladatokkal. A hallgatók önállóan dolgoznak, a laborvezető segít. Ilyen laborokból van a legtöbb, ezeken megy le az előadások mellett a tananyag. A labor elején beugró iratható, melynek eredménye beleszámít az értékelésbe.

    ·         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, a labor végére, mint 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ő.

    ·         Páros programozással tanuló labor: ezeken a laborokon a hallgatók párban (de mindig más párosításokban) dolgoznak a feladatukon, mely lehet a házi feladat elkezdésével kapcsolatos, vagy egy a laborok listájában „hagyományos labor”. A cél az egymástól kérdezés, egymásnak magyarázás, valamint magának a páros programozásnak a gyakorlása, konkrét feladatokon. A laborvezető ugyanúgy segít, mint egy hagyományos laboron.

    ·         Házi feladat leadási labor: az ütközésmentes leadási időpont szervezés érdekében a házi feladatok leadása is laboridőpontban történik, ahol a házi feladatban a helyszínen elvégzendő módosítások is kérhetők.

    A félév során két házi feladat lesz, az egyik főleg a C# nyelv gyakorlását célozza meg, a második pedig a UWP GUI fejlesztést. A feladatok megoldása során mindenki személyre szóló github repositoryba dolgozik (GitHub classroom), melyben bizonyos feladatok előre elkészített unit tesztek formájában adottak. Ennek adminisztrálása érdekében minden hallgató olyan github accounttal kell, hogy regisztráljon, amiben az igazi neve be van állítva.

    Az első házi feladat további specialitása, hogy két leadási határideje van és az első után előre ismeretlen módon megváltozik a feladat specifikációja. Ennek célja, hogy rávilágítson az áttekinthető fejlesztés, objektumorientált dekompozíció és beszédes, karbantartható forráskód fontosságára.

    A laborok értékelésébe beszámít a „beugró”, ami vagy konkrétan megválaszolandó kérdéssor, vagy a laborfeladat eleje, aminek elkészítésében a laborvezető még nem segít, azt teljesen önállóan kell tudni elkészíteni. Amennyiben ez nem sikerül, a laborra a hallgató 0 pontot kap.

    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.


     

    10. Követelmények

     

    A szorgalmi időszakban:

    Az értékelt (nem házi feladat leadási vagy konzultációs) laboron a munkát és eredményeket a laborvezető pontozza, az összes ilyen laborra egyenletesen elosztottan, összesen 40 ponttal. Mindkét házi feladat maximum 30-30 pontot ér. Így az összes megszerezhető pont 100 pont. A félév sikeres teljesítésének feltétele a laborok 70%-án való részvétel (ami távoli munka esetén megoldás határidőre történő beküldését jelenti) és az elégséges osztályzathoz tartozó pontszám megszerzé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 (70%) teljesíteni, viszont ezzel tetszőleges számú alkalommal lehet próbálkozni. Ezek nem teljesítése tesztenként 5 pont levonásával jár.

    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. Ilyen lehet a házi feladat korábbi időpontban történő leadása is. 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 házi feladatokra és laborokra kapott pontszámok összege alapján az alábbi ponthatárok szerint: 0-40p elégtelen, 41-55p elégséges, 56-70p közepes, 71-85p jó, 86-100p jeles.


     

    11. Pótlási lehetőségek

     

    A házi feladatokat előre kihirdetett időpontokban, késedelmesen is le lehet adni. A laborok pótlására nincsen lehetőség.


     

    12. Konzultációs lehetőségek

     

    Egyrészt több labor alkalom alkalmas konzultációra is, de igény esetén közös konzultációs időpont is szervezhető. Ezen kívül a félév során folyamatosan használható online kommunikációs csatorna áll a hallgatók rendelkezésére.

     

    13. Jegyzet, tankönyv, felhasználható irodalom

    ·         Albert István et al: A .NET Framework és programozása

    ·         Andrew Troelsen: A C# 2008 és a .NET 3.5 – 1, 2. Kötet

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra70
    Készülés előadásokra14
    Készülés laborra42
    Házi feladat elkészítése84
    Összesen210
    15. A tantárgy tematikáját kidolgozta Dr. Csorba Kristóf, egyetemi docens, Automatizálási és Alkalmazott Informatikai Tanszék