„Eseményvezérelt és vizuális programozás” változatai közötti eltérés
A VIK Wikiből
→Előadás: Óra anyagának hozzáadása |
a →Tematika: Link helyének javítása |
||
(16 közbenső módosítás, amit 2 másik szerkesztő végzett, nincs mutatva) | |||
77. sor: | 77. sor: | ||
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. | 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. | ||
* 1. hét: [[ | ==== .NET ==== | ||
* 2. hét: Git-kvíz; Visual Studio; [https://github.com/eviplabs/peldak2023/blob/main/ElsoSolution/ElsoKonzolosApp/Program.cs C#-bevezetés]: args, Console.WriteLine(), static, ref, nullable type, getter-setter | * 1. hét: [[Média:Evip 01 EA 20230907 Bevezeto.pdf| bevezetés]], [[Média:Evip 01 EA 20230907 Culture Deck.pdf| culture deck]] | ||
* 2. hét: Git-kvíz; Visual Studio; [https://github.com/eviplabs/peldak2023/blob/main/ElsoSolution/ElsoKonzolosApp/Program.cs C#-bevezetés] ([[Média:Evip eloadas 1.pdf|korábbi előadás]]): args, Console.WriteLine(), static, ref, nullable type, getter-setter | |||
* [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] | * [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] | ||
* 4. hét: [https://github.com/eviplabs/peldak2023/tree/main/RegexProbak regex], [https://github.com/eviplabs/peldak2023/tree/main/Serialization serialization] | * 4. hét: [https://github.com/eviplabs/peldak2023/tree/main/RegexProbak regex] ([[Média:Evip eloadas 2.pdf|korábbi előadás]]), [https://github.com/eviplabs/peldak2023/tree/main/Serialization serialization] | ||
* 5. hét: kollekciók: [https://github.com/eviplabs/peldak2023/blob/main/Enumerable/Program.cs IEnumerable], Dictionary, tuple, 2D array; foreach, yield return | * 5. hét: kollekciók ([[Média: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 | ||
* 6. hét: 2022. őszi [[#ZH | ZH1]] (A csoport) megoldása | * 6. hét: 2022. őszi [[#ZH | ZH1]] (A csoport) megoldása | ||
* [https://github.com/eviplabs/peldak2023/tree/main/LinqRefactorDemo 7. hét]: IComparer, CompareTo(), linq: Select(), Where(), Contains(), GroupBy(), OrderBy(), First(), FirstOrDefault(), Last(), Single(), SingleOrDefault( | * [https://github.com/eviplabs/peldak2023/tree/main/LinqRefactorDemo 7. hét] ([[Média:Evip eloadas 4.pdf|korábbi előadás]]): IComparer, CompareTo(), linq: Select(), Where(), Contains(), GroupBy(), OrderBy(), First(), FirstOrDefault(), Last(), Single(), SingleOrDefault() | ||
* [ | ==== .NET MAUI ==== | ||
* [[ | * [https://github.com/eviplabs/peldak2023/tree/main/FirstMauiApp/FirstMauiApp 8. hét]: partial, VerticalStackLayout, HorizontalStackLayout, Button, Image, xmlns, x:(Static) | ||
* [https://github.com/eviplabs/peldak2023/tree/main/MauiBindingDemo/MauiBindingDemo 9. hét]: data binding ([[Média:Evip eloadas 7.pdf|korábbi előadás]]): x:Binding, event, nameof(), typeof(), Frame, converter, BindingContext, x:Reference, SelectedItem.Model, BoxView; MVVM ([[Média:Evip eloadas 8.pdf|korábbi előadás]]) | |||
* [[ | * 10. hét: threading ([[Média: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 ([[Média:Evip eloadas 12.pdf|korábbi előadás]]); reflection ([[Média: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 === | === Labor === | ||
A GitHub Classroom csatlakozási linkek a [https://edu.vik.bme.hu/course/view.php?id=10528 Moodle-re] vannak feltöltve. | A GitHub Classroom csatlakozási linkek a [https://edu.vik.bme.hu/course/view.php?id=10528 Moodle-re] vannak feltöltve. | ||
Vannak [https://www.youtube.com/playlist?list=PLb8EWPCoqCDYUeE-MoAb_VJvKO6dRXkow YouTube]-videók is a régi UWP-s feladatokhoz. | |||
==== .NET ==== | |||
* 1. hét: ''elmaradt'' | * 1. hét: ''elmaradt'' | ||
* 2. hét: ''szünet'' | * 2. hét: ''szünet'' | ||
* [https://github.com/eviplabs/ | * [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/ | * [https://github.com/eviplabs/lab02start 4. hét]: TurkMite: teljes refaktorálás, OpenCvSharp, xUnit | ||
* [https://github.com/eviplabs/ | * [https://github.com/eviplabs/lab03start 5. hét]: regex | ||
* [https://github.com/eviplabs/ | * [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 == | ||
* A tantárgyi oldalon rengeteg segédanyaggal találkozhattok, akár pptx, akár videó formájában, melyeket érdemes átnézni a laborok előtt. | * A tantárgyi oldalon rengeteg segédanyaggal találkozhattok, akár pptx, akár videó formájában, melyeket érdemes átnézni a laborok előtt. | ||
* [[ | * [[Média:Git Temalab MIA 2019.pdf| GitHub használat alapok]] | ||
* [[ | * [[Média:Evip csoop bevezeto.pdf| C# OOP bevezető]] | ||
* [https://docs.microsoft.com/hu-hu/dotnet/fundamentals/ .NET dokumentáció] | * [https://docs.microsoft.com/hu-hu/dotnet/fundamentals/ .NET dokumentáció] | ||
== ZH == | == ZH == | ||
* 2023. ősz | |||
** ZH1 | |||
***[[Média:EVIP ZH1 20231017 A.pdf|A csoport]] | |||
** ZH2 | |||
*** [[Média:EVIP zh2 20231205 A.pdf|A csoport]] | |||
* 2022. ősz | * 2022. ősz | ||
** ZH1 | ** ZH1 | ||
*** [[ | *** [[Média: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.'''"'' | **** 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.'' | **** 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.'' | ||
*** [[ | *** [[Média:EvipZh1 2022.pdf| B csoport]] | ||
** ZH2 | ** ZH2 | ||
*** [[ | *** [[Média:EvipZh2 2022.pdf| B csoport]], [https://github.com/morzsiHUN/EvipFinalZhGyak megoldások] | ||
* 2021. ősz | * 2021. ősz | ||
** [[ | ** [[Média:Evip zh1 sablon 2021.pdf| ZH1 minta]] | ||
** [[ | ** [[Média:Evip zh2 sablon 2021.pdf| ZH2 minta]] | ||
* 2020. ősz | * 2020. ősz | ||
** ZH | ** ZH | ||
*** [[ | *** [[Média: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. | *** 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. | ||
** [[ | ** [[Média:Evip potzh.pdf| pótZH]] | ||
** [[ | ** [[Média:Evip zh sablon.pdf| ZH minta]] | ||
== Házi feladat == | == Házi feladat == | ||
139. sor: | 156. sor: | ||
* 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. | * 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. | ||
** [[ | ** [[Média:Evip nhf kiadas.pdf| Kiadás]] | ||
** [[ | ** [[Média:Evip nhf leadas.pdf| Leadás]] | ||
== Tippek == | == Tippek == |
A lap jelenlegi, 2024. szeptember 24., 14:07-kori változata
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 tárgy felvételéhez az Objektumorientált programozás tárgy kredite szükséges hozzá.
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 laborok lehetnek:
- 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.
.NET
- 1. hét: bevezetés, culture deck
- 2. hét: Git-kvíz; Visual Studio; C#-bevezetés (korábbi előadás): args, Console.WriteLine(), static, ref, nullable type, getter-setter
- 3. hét: compiler és interpreter, bytecode, JVM, JIT, CIL; ref, getter-setter, virtual, override, interface, factory method, base, $-string, StringBuilder, Exception, TryParse, out
- 4. hét: regex (korábbi előadás), serialization
- 5. hét: kollekciók (korábbi előadás): IEnumerable, Dictionary, tuple, 2D array; foreach, yield return
- 6. hét: 2022. őszi ZH1 (A csoport) megoldása
- 7. hét (korábbi előadás): IComparer, CompareTo(), linq: Select(), Where(), Contains(), GroupBy(), OrderBy(), First(), FirstOrDefault(), Last(), Single(), SingleOrDefault()
.NET MAUI
- 8. hét: partial, VerticalStackLayout, HorizontalStackLayout, Button, Image, xmlns, x:(Static)
- 9. hét: data binding (korábbi előadás): x:Binding, event, nameof(), typeof(), Frame, converter, BindingContext, x:Reference, SelectedItem.Model, BoxView; MVVM (korábbi előadás)
- 10. hét: threading (korábbi előadás): lock, dispatch loop; async, await, Run(), DoItAsync(), ContinueWith(), Report(), Dispatcher, DispatchAsync()
- 11. hét: szünet
- 12. hét: performance profiler (korábbi előadás); reflection (korábbi előadás)
- 13. hét: felkészülés a ZH2-re
Labor
A GitHub Classroom csatlakozási linkek a Moodle-re vannak feltöltve.
Vannak YouTube-videók is a régi UWP-s feladatokhoz.
.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
- 8. hét: LINQ, .svg (XML)
- 9. hét: MAUI bevezető
- 10. hét: Expenses: data binding
- 11. hét: AttaxxPlus: módosítások (BorderColor, StaticResource)
- 12. hét: progress bars: módosítások
- 13. hét: Mandelbrot: módosítások
- 14. hét: ZH2
Segédanyagok
- A tantárgyi oldalon rengeteg segédanyaggal találkozhattok, akár pptx, akár videó formájában, melyeket érdemes átnézni a laborok előtt.
- GitHub használat alapok
- C# OOP bevezető
- .NET dokumentáció
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
- A csoport, megoldások
- ZH2
- ZH1
- 2021. ősz
- 2020. ősz
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 |