„Eseményvezérelt és vizuális programozás” változatai közötti eltérés

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
(→‎ZH: 2023. ősz ZH1 feladatai feltöltve)
 
(29 közbenső módosítás, amit 3 másik szerkesztő végzett, nincs mutatva)
8. sor: 8. sor:
 
|tanszék=AUT
 
|tanszék=AUT
 
|labor=van
 
|labor=van
|kiszh=labor beugrók
+
|kiszh=laborbeugrók
|nagyzh=2
+
|nagyzh=2 db
|hf=0 db
+
|hf=nincs
 
|vizsga=nincs
 
|vizsga=nincs
 
|tad=https://portal.vik.bme.hu/kepzes/targyak/VIAUBB01/
 
|tad=https://portal.vik.bme.hu/kepzes/targyak/VIAUBB01/
|targyhonlap=https://www.aut.bme.hu/Course/VIAUBB01
+
|targyhonlap=https://www.aut.bme.hu/Course/VIAUBB01}}
|levlista=nincs}}
 
  
 
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 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.
 
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 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.
75. sor: 74. sor:
  
 
== Tematika ==
 
== Tematika ==
=== Előadások ===
+
=== Előadás ===
* 2020 ősz
+
A prezentációk a [https://edu.vik.bme.hu/course/view.php?id=10528 Moodle-re], a példakódok pedig a [https://github.com/eviplabs/peldak2023/ GitHubra] vannak feltöltve. Ezek mellet vannak [https://www.youtube.com/playlist?list=PLb8EWPCoqCDYUeE-MoAb_VJvKO6dRXkow Youtube] videók még a régi UWP-s feladatokhoz.
** [[Media:evip_eloadas_1.pdf | 02 EA - CS alapok]]  
+
 
** [[Media:evip_eloadas_2.pdf | 03 EA - Szovegkezeles]]  
+
==== .NET ====
** [[Media:evip_eloadas_3.pdf | 04 EA - Kollekciok, IEnumerable]]  
+
* 1. hét: [[Media:evip_01 EA_20230907_Bevezeto.pdf | bevezetés]], [[Media:evip_01 EA_20230907_Culture Deck.pdf | culture deck]]
** [[Media:evip_eloadas_4.pdf | 05 EA - Linq]]  
+
* 2. hét: Git-kvíz; Visual Studio; [https://github.com/eviplabs/peldak2023/blob/main/ElsoSolution/ElsoKonzolosApp/Program.cs C#-bevezetés] ([[Media:evip_eloadas_1.pdf |korábbi előadás]]): args, Console.WriteLine(), static, ref, nullable type, getter-setter
** [[Media:evip_eloadas_5.pdf | 06 EA - UWP]]  
+
* [https://github.com/eviplabs/peldak2023/tree/main/ElsoSolution/ElsoKonzolosApp 3. hét]: compiler és interpreter, bytecode, JVM, JIT, CIL; ref, [https://github.com/eviplabs/peldak2023/blob/main/ElsoSolution/ElsoKonzolosApp/Ember.cs getter-setter], virtual, [https://github.com/eviplabs/peldak2023/blob/main/ElsoSolution/ElsoKonzolosApp/Ember.cs override], [https://github.com/eviplabs/peldak2023/blob/main/ElsoSolution/ElsoKonzolosApp/IEmberPrinter.cs interface], factory method, [https://github.com/eviplabs/peldak2023/blob/main/ElsoSolution/ElsoKonzolosApp/DesignPrinter.cs base], [https://github.com/eviplabs/peldak2023/blob/main/ElsoSolution/ElsoKonzolosApp/Program.cs $-string, StringBuilder, Exception, TryParse, out]
** [[Media:evip_eloadas_6.pdf | 07 EA - Esemenyek INPC]]  
+
* 4. hét: [https://github.com/eviplabs/peldak2023/tree/main/RegexProbak regex] ([[Media:evip_eloadas_2.pdf |korábbi előadás]]), [https://github.com/eviplabs/peldak2023/tree/main/Serialization serialization]
** [[Media:evip_eloadas_7.pdf | 08 EA - Adatkotes]]  
+
* 5. hét: kollekciók ([[Media:evip_eloadas_3.pdf |korábbi előadás]]): [https://github.com/eviplabs/peldak2023/blob/main/Enumerable/Program.cs IEnumerable], Dictionary, tuple, 2D array; foreach, yield return
** [[Media:evip_eloadas_8.pdf | 09 EA - MVVM ICommand]]  
+
* 6. hét: 2022. őszi [[#ZH | ZH1]] (A csoport) megoldása
** [[Media:evip_eloadas_9a.pdf | 10 EA 1 - Rajzolas]]  
+
* [https://github.com/eviplabs/peldak2023/tree/main/LinqRefactorDemo 7. hét] ([Media:evip_eloadas_4.pdf |korábbi előadás]]): IComparer, CompareTo(), linq: Select(), Where(), Contains(), GroupBy(), OrderBy(), First(), FirstOrDefault(), Last(), Single(), SingleOrDefault()
** [[Media:evip_eloadas_9b.pdf | 10 EA 2 - UI elemek]]  
+
 
** [[Media:evip_eloadas_10.pdf | 11 EA - Tobbszalusag]]  
+
==== .NET MAUI ====
** [[Media:evip_eloadas_11.pdf | 12 EA - Attributum Reflection]]  
+
* [https://github.com/eviplabs/peldak2023/tree/main/FirstMauiApp/FirstMauiApp 8. hét]: partial, VerticalStackLayout, HorizontalStackLayout, Button, Image, xmlns, x:(Static)
** [[Media:evip_eloadas_12.pdf | 13 EA - Profiling]]  
+
* [https://github.com/eviplabs/peldak2023/tree/main/MauiBindingDemo/MauiBindingDemo 9. hét]: data binding ([[Media:evip_eloadas_7.pdf |korábbi előadás]]): x:Binding, event, nameof(), typeof(), Frame, converter, BindingContext, x:Reference, SelectedItem.Model, BoxView; MVVM ([[Media:evip_eloadas_8.pdf |korábbi előadás]])
 +
* 10. hét: threading ([[Media:evip_eloadas_10.pdf |korábbi előadás]]): lock, dispatch loop; async, await, Run(), DoItAsync(), ContinueWith(), Report(), Dispatcher, DispatchAsync()
 +
* 11. hét: ''szünet''
 +
* [https://github.com/eviplabs/peldak2023/tree/main/PerformanceProfiling 12. hét]: performance profiler ([[Media:evip_eloadas_12.pdf |korábbi előadás]]); reflection ([[Media:evip_eloadas_11.pdf |korábbi előadás]])
 +
* [https://github.com/eviplabs/peldak2023/tree/main/Zh2Konzi 13. hét]: felkészülés a [[#ZH | ZH2]]-re
 +
 
 +
=== Labor ===
 +
A GitHub Classroom csatlakozási linkek a [https://edu.vik.bme.hu/course/view.php?id=10528 Moodle-re] vannak feltöltve.
 +
 
 +
==== .NET ====
 +
* 1. hét: ''elmaradt''
 +
* 2. hét: ''szünet''
 +
* [https://github.com/eviplabs/lab01start 3. hét]: Git(hub) és Visual Studio setup (debug); class és unit test prímszámok összegének kiszámítására
 +
* [https://github.com/eviplabs/lab02start 4. hét]: TurkMite: teljes refaktorálás, OpenCvSharp, xUnit
 +
* [https://github.com/eviplabs/lab03start 5. hét]: regex
 +
* [https://github.com/eviplabs/lab05start 6. hét]: generics, collections
 +
* [https://github.com/eviplabs/zh1start 7. hét]: [[#ZH | ZH]]1
 +
 
 +
==== .NET MAUI ====
 +
* [https://github.com/eviplabs/lab06start 8. hét]: LINQ, .svg (XML)
 +
* [https://github.com/eviplabs/lab07start 9. hét]: MAUI bevezető
 +
* [https://github.com/eviplabs/lab09start 10. hét]: Expenses: data binding
 +
* [https://github.com/eviplabs/lab10start 11. hét]: AttaxxPlus: módosítások (BorderColor, StaticResource)
 +
* [https://github.com/eviplabs/lab12start 12. hét]: progress bars: módosítások
 +
* [https://github.com/eviplabs/lab14start 13. hét]: Mandelbrot: módosítások
 +
* 14. hét: [[#ZH | ZH2]]
  
 
== Segédanyagok ==
 
== Segédanyagok ==
98. sor: 122. sor:
  
 
== ZH ==
 
== ZH ==
* 2022 ősz
+
* 2023. ősz
** [[Media:EvipZh1_2022.pdf | Zh1]]
+
** ZH1
** [[Media:EvipZh2_2022.pdf | Zh2]]
+
***[[Media:EVIP ZH1 20231017 A.pdf|A csoport]]
 
+
** ZH2
 
+
*** [[Media:EVIP zh2 20231205 A.pdf|A csoport]]
* 2021 ősz
+
* 2022. ősz
** [[Media:Evip_zh1_sablon_2021.pdf | Zh1 minta]]
+
** ZH1
** [[Media:Evip_zh2_sablon_2021.pdf | Zh2 minta]]
+
*** [[Media:EViP_ZH1_B_2022-ősz_OCR.pdf | A csoport]], [https://github.com/eviplabs/peldak2023/tree/main/ZH1_2022 megoldások]
 
+
**** A 4. feladat 1. bekezdésének vége helyesen (mivel nem lehet csupán korból születési dátumot számolni): ''"Aladár (130 cm) '''kora: 15 év.'''"''
* 2020 ősz
+
**** A 4. feladat 2. bekezdése helyesen (hiányzó lényeges vesszők): ''A ClassRoom osztályba tegyél egy GetAverageAge függvényt''',''' ami visszaadja az osztály átlagéletkorát''',''' és egy GetTallestPerson függvényt, ami visszaadja a legmagasabb tagját.''
** [[Media:evip_zh_Acsoport.pdf | Zh]]
+
*** [[Media:EvipZh1_2022.pdf | B csoport]]
*** (B csoport nagyon kevésben különbözött: a kimenetet minimálisan máshogy kellet csinálni és a ''PrimeGenerator'' helyett ''FibonacciGenerator''-t kellet csinálni)
+
** ZH2
 
+
*** [[Media:EvipZh2_2022.pdf | B csoport]], [https://github.com/morzsiHUN/EvipFinalZhGyak megoldások]
** [[Media:evip_potzh.pdf | Pót Zh]]
+
* 2021. ősz
** [[Media:evip_zh_sablon.pdf | Zh minta]]
+
** [[Media:Evip_zh1_sablon_2021.pdf | ZH1 minta]]
 +
** [[Media:Evip_zh2_sablon_2021.pdf | ZH2 minta]]
 +
* 2020. ősz
 +
** ZH
 +
*** [[Media:evip_zh_Acsoport.pdf | A csoport]]
 +
*** A ''B'' csoport nagyon kevésben különbözött: a kimenetet minimálisan máshogy kellett csinálni, és a ''PrimeGenerator'' helyett ''FibonacciGenerator''t kellet csinálni.
 +
** [[Media:evip_potzh.pdf | pótZH]]
 +
** [[Media:evip_zh_sablon.pdf | ZH minta]]
  
 
== Házi feladat ==
 
== Házi feladat ==

A lap jelenlegi, 2023. december 10., 15:02-kori változata

Eseményvezérelt és vizuális programozás
Tárgykód
VIAUBB01
Általános infók
Szak
üzemmérnök
Kredit
7
Ajánlott félév
3
Keresztfélév
N/A
Tanszék
AUT
Követelmények
Labor
van
KisZH
laborbeugrók
NagyZH
2 db
Házi feladat
nincs
Vizsga
nincs
Elérhetőségek


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 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.


Követelmények

Előtanulmányi rend

A szorgalmi időszakban

  • A laboron megjelenés kötelező. Minden nem házi feladat leadási laboron az órai aktivitást és eredményeket a laborvezető pontozza 0-1-2 ponttal. Egyes előadásokon és laborokon 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 félév sikeres teljesítésének feltétele a laborok 70%-án való részvétel. 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 laborok lehetnek:
      • Hagyományos labor: kiadott segédlettel feladatok elvégzése, önnálló labor, de laborvezető segíthet.
      • Code review labor: házi feladatokat egymásnak elmagyarázzátok. A cél a forráskód minőségének növelése, az „ezt hogyan érdemes elegánsan megoldani” kérdések megvitatása.
      • Házi feladat konzultációs labor: házi feladattal kapcsolatos egyéni kérdésekre feltevése, házi feladaton való munkálkodás.
      • Páros programozással tanuló labor: mindig más párral kell dolgozni, hagyományos laborfeladatok vagy házi feladatok közös megbeszélése.
      • Házi feladat leadási labor
  • A házi feladatok darabonként 30-30 pontot érnek. A házi feladatok idő előtt való leadása pluszpontot ér.

2020. őszén (A "hibrid" oktatás alatt) hozott változtatások

  • A laborok jelentősen megváltoztak. Összesen 10 darab labor, mindegyik pontozva van 0-5 között és akkor számít részvételnek ha egy laboron min. 1 pontot elért valaki (70% részvétel követelmény, lehetnek fél pontok is). Moodle-ön tartozhat "online beugró" egy laborhoz, amit teljesíteni kell az érintett labor előtti vasárnap éjféléjig, különben mínusz pont jár érte. Laborokat mindenki egy külön github repository-ba csinálta és leadás egy pull request ahol a "laborvezető" meg van adva reviewer-nek.
  • Csak a csapatmunka (3 fős) házi feladat van és maximum 25 pontot lehet rá kapni.
  • Van jelenléti ZH, ami 25 pontos.
    • Engedélyezve volt az online források használata (labvez szavai: "StackOverflow-t nyugodtan kérdezzük, de a padtársakat légyszi ne").
    • Teljesítése nem követelmény, de póthéten lehet pótolni.
  • Tehát a pontszámítás a következő: Laborok(max. 50) + házi(max. 25) + zh(max. 25) = max. 100 pont

2021. őszén hozott változtatások

  • Nincsen NHF.
  • Két jelenléti ZH van és mindegyik min. 40%-os teljesítése kötelező.
  • Laborokra nem kötelező jelenlétiben bejárni, otthon is elvégezhetőek.
  • Ha mégis jelenléti laborra szeretnél menni, azt Moodle-n előre jelezni kell.
  • Teams-en van egy egységes felület a laborral kapcsolatos kérdéseknek. Válaszolhat rájuk az előadó, a laborvezető, de hallgató is.
  • A félév végén lehet szavazni azon hallgató társaidra, akik a legtöbbet segítettek neked vagy másoknak a kérdéseitek megválaszolásával. 50 pontot osztanak szét azon 5 ember között, akikre a legtöbb szavazat jön.
  • Pontszámítás: Laborok(max.50)+2 ZH(max.50)+bónuszpontok

Pótlási lehetőségek:

  • A házi feladatok előre kihirdetett időpontokban, késedelmesen is le lehet adni.
  • A laborok nem pótolhatóak. A házi feladat korábbi időpontban való leadás további pluszpontokkal járhat.
  • A zh 1szer pótolható, egy előre kihirdetett időponton póthéten.

Félévvégi jegy

  • Az évvégi jegy a házi feladatokra és laborokra kapott pontszámok összege alapján adódik össze. A tárgy teljesítéséhez legalább 40 pontot kell elérni.
  • Ponthatárok:
Pont Jegy
0 - 40 1
40 - 54 2
55 - 69 3
70 - 84 4
85 - 100 5

Tematika

Előadás

A prezentációk a Moodle-re, a példakódok pedig a GitHubra vannak feltöltve. Ezek mellet vannak Youtube videók még a régi UWP-s feladatokhoz.

.NET

.NET MAUI

Labor

A GitHub Classroom csatlakozási linkek a Moodle-re vannak feltöltve.

.NET

  • 1. hét: elmaradt
  • 2. hét: szünet
  • 3. hét: Git(hub) és Visual Studio setup (debug); class és unit test prímszámok összegének kiszámítására
  • 4. hét: TurkMite: teljes refaktorálás, OpenCvSharp, xUnit
  • 5. hét: regex
  • 6. hét: generics, collections
  • 7. hét: ZH1

.NET MAUI

Segédanyagok

ZH

  • 2023. ősz
  • 2022. ősz
    • ZH1
      • A csoport, megoldások
        • A 4. feladat 1. bekezdésének vége helyesen (mivel nem lehet csupán korból születési dátumot számolni): "Aladár (130 cm) kora: 15 év."
        • A 4. feladat 2. bekezdése helyesen (hiányzó lényeges vesszők): A ClassRoom osztályba tegyél egy GetAverageAge függvényt, ami visszaadja az osztály átlagéletkorát, és egy GetTallestPerson függvényt, ami visszaadja a legmagasabb tagját.
      • B csoport
    • ZH2
  • 2021. ősz
  • 2020. ősz
    • ZH
      • A csoport
      • A B csoport nagyon kevésben különbözött: a kimenetet minimálisan máshogy kellett csinálni, és a PrimeGenerator helyett FibonacciGeneratort kellet csinálni.
    • pótZH
    • ZH minta

Házi feladat

  • A félév során két házi feladat lesz
    • C# nyelvben
    • WPF-es GUI fejlesztés
  • 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.
  • 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.
  • 2020.-ban a csapatmunka házi feladat max 25 pontos lehetett és egy videót is kellet hozzá készíteni, ahol a csapat bemutatja, hogy milyen feladatokat teljesített.

Tippek

  • Érdemes hétről hétre tanulni, készülni a laborokra. Nagyban megkönnyíti a tárgy elvégzését.


1. félév
2. félév
3. félév
4. félév
5. félév
6. félév