Docs
- Reiter István: C# jegyzet és példaprogramok a könyvhöz
- C# Fundamentals for Absolute Beginnersby Microsoft Virtual Academy (MVA)
- C# Programming Guide by Microsoft Developer Network (MSDN)
- C# Tutorial by Net-Tutorials
1 Visual Studio Community Edition
Theory
- Read Reiter book: 1 – 13
- MVA video – Installing Visual Studio
Links
2 Hello World
Theory
- Read Reiter book: 1 – 18
- MVA video – Creating Your First C# Program
- MVA video – Understanding Your First C# Program
- Read and code: Getting Started
Links
3 Data Types, Variables
Theory
- Read Reiter book: 18 – 21, 30 – 41
- MVA video – Understanding Data Types and Variables
- Read and code: The Basics
- Example projects: S01
Links
4 Methods
Theory
- Read Reiter book: 102 – 112, 275 – 282
- MVA video – Defining and Calling Methods
- Read and code: The Basics
- Example projects: S01
Links
5 Control Structures – selection
Theory
- Read Reiter book: 42 – 45, 64 – 66, 71 – 76
- MVA videos – The if Decision Statement
- MVA videos – Working with Strings
- Read and code: IF statement
- Read and code: SWITCH statement
- Example projects: S02
Coding
Create a “Make a Star” application. Improve the Program class with three static methods called by Main(). One of them should ask for a color from the keyboard, the other is responsibel for creating stars, and the last one should display the star details on the screen.
The class diagram:
Legend:
- s static
- c const
- + public
- – private
- 0 zero
- * many
6 Control Structures – repetition
Theory
- Read Reiter book: 45 – 49
- MVA videos – The for Iteration Statement
- MVA videos – The while Iteration Statement
- Read and code: Loops
- Example projects: S02
Coding
Create a very simple Twitter clone by following the class diagram:

- A SzövegBekérés metódus kérje be a felhasználótól az üzenet szövegét, és ellenőrizze (if), hogy megfelelő hosszúságú-e. Az ellenőrzés az Üzenet konstans mezőit használva történjen. Ha a felhasználó által megadott szöveg nem megfelelő hosszúságú, akkor a metódus írja ki ezt a képernyőre, és fejeződjön be a program futása.
- Ha a SzövegBekérés sikeres volt, akkor hozzuk létre magát az üzenetet az ÜzenetLétrehozása metódussal. A tetszikek és nemtetszikek száma kezdetben 0. Az üzenet létrehozásáról tájékoztassuk a felhasználót: írassuk ki az Üzenet példány mezőit a képernyőre.
- Tegyük fel, hogy amíg fut a program, egy másik felhasználó ül le a gép elé, és kérjük meg, hogy értékelje az üzenetet. Az ÉrtékelésBekérése metódus úgy működik, hogy a felhasználótól bekér egy egész számot, ami lehet pl. 100, ha nagyon tetszett, -45, ha nem tetszett, és 0, ha közömbös. Viszont a metódusnak meg kell előznie a túlzásokat (if), ezért a pozitív számokat tekintse egységesen 1-nek, a negatív számokat egységesen -1-nek, a 0-át pedig 0-nak. Tehát a metódus 1, -1 vagy 0 értékkel térhet vissza. Ezt és a következő metódust hívjuk meg többször egymás után, más és más értékeléssel.
- Az ÜzenetÉrtékelése növelje a tetszikek számát, ha az ÉrtékelésBekérése 1-gyel tért vissza, és növelje a nemtetszikek számát, ha az ÉrtékelésBekérése -1-gyel tért vissza.
- Végül az ÖsszevontEredményKiiratása írja ki, hogy az adott üzenet milyen eredménnyel zárt: tetszik – nemtetszik aritmetikai kifejezés alapján.
7 Arrays and Collections
Theory
- Read Reiter book: 67 – 70, 178 – 183
- MVA video – Understanding Arrays
- MVA video – Working with Collections
- Read and code: Arrays
- Read and code: Lists
- Read and code: Dictionaries
- Example projects: S03
8 Basic Algorithms
Theory
- Read Reiter book: 52 – 63, 77 – 80
- MVA video – Working with Dates and Times
- Example projects: S06
Links
Coding
Improve the class created before according to this class diagram:

- Négyzetek összege: a tömb elemeit emeljük négyzetre, és ezen négyzeteket adjuk össze.
[-2, 0, 3] ⟶ 13 - Szorzás számmal: a függvénynek két paramétere van, a tömb és egy szám. A tömb elemeit szorozzuk meg ezzel a számmal, és adjuk össze a részeredményeket.
[-2, 0, 3, 6], 2 ⟶ 14 vagy [-2, 0, 3, 6], 10 ⟶ 70 vagy [-2, 0, 3, 6], 0 ⟶ 0 - Párosak összadása: csak a páros számok összegére vagyunk kíváncsiak (if).
[-2, 0, 3, 6] ⟶ 4 - Normalizálás: a függvény egy új tömbbel térjen vissza úgy, hogy a 0-nál nagyobbakat 1-re, a 0-nál kisebbeket -1-re cseréljük le.
[-2, 0, 3, 6] ⟶ [-1, 0, 1, 1] - Lecserélés: a függvénynek három paramétere van, a tömb és két szám. Készítsünk egy új tömböt úgy, hogy a páratlanok helyett a paraméterként kapott első szám, míg a párosak helyet a paraméterként kapott második szám szerepeljen. Ezzel az új tömbbel térjünk vissza.
[-2, 0, 3, 6], 8, 44 ⟶ [44, 44, 8, 44] - Igazak és Hamisak: a függvény egy új logikai tömbbel térjen vissza úgy, hogy a páros számokat igazra, a páratlanokat hamisra cseréljük le.
[-2, 0, 3, 6] ⟶ [true, true, false, true] - Egyesek, tízesek, százasok: a függvény egy új string tömbbel térjen vissza úgy, hogy az egyeseket az “egyes”, a tízeseket a “tízes”, a százasokat a “százas” szóra cseréljük le.
[-2, 0, 33, 666] ⟶ [“egyes”, “egyes”, “tízes”, “százas”]
9 Data Structures – preface
Theory
- Read Reiter book: 81 – 114
- Watch and code: MVA videos 13, 14, 15
- Read and code: Introduction to Classes
- Read and code: Properties
- Read and code: Constructors, destructors
- Read and code: Methods
- Read and code: Visibility
- Read and code: Static members
- Read and code: Constructors, destructors
- Example projects: S07
Coding
Reiter könyv 77. oldaltól a Szigetek és az Átlaghőmérséklet.
Oldják meg mindkét feladatot tömbökkel és programozási tételekkel, illetve generic collection-ökkel és azok metódusaival.
10 Data Structures – fields, properties, methods
Theory
- Read and code: Fields
- Read and code: Properties
- Read and code: Methods
- Example projects: S07
Coding
Az órán vett Circle típus és annak tesztjéhez hasonló Rectangle típus tervezése és implementálása.
11 Data Structures – operators, exception handling
Theory
- Read Reiter book: 115 – 121, 149 – 158
- Watch and code: MVA videos 16, 19, 22
- Read and code: Constants
- Read and code: Partial Classes
- Read and code: Exception handling
- Example projects: S08
Coding
Az órán vett Circle típus és annak tesztjéhez hasonló Rectangle típus tervezése és implementálása.
12 Data Structures – indexers, events, generics
Theory
- Read Reiter book: 115 – 121, 164 – 177
- Watch and code: MVA videos 17, 18, 23
- Read and code: everything in Operators
- Read and code: Generics
- Read and code: Generics – Introduction
- Read and code: Generics – Benefits
- Read and code: Generics – Type parameters
- Read and code: Generic classes
- Read and code: Generics – Introduction
- Example projects: S08
Coding
Az órán vett Circle típus és annak tesztjéhez hasonló Rectangle típus tervezése és implementálása (indexelő).
Reiter könyv 130. o.: Láncolt lista típus megvalósítása, és további metódusok:
- Remove(): LinkedList – első elem törlése
- Count: Int32 – elemek száma
- Contains(int): Boolean – adott elem benne van-e a listában
- FindFirst(int): Int32 – adott elem első előfordulásának keresése, és visszatérés az indexével (hanyadik elem a listában). Ha nincs ilyen elem, térjen vissza -1-gyel

Szorgalmi: A Rectangle osztályon valósítsa meg a Pub/Sub tervezési mintát. A teszt úgy nézzen ki, hogy a Rectangle objektumok feliratkoznak egy adott Beautifier objektem eseményére. A Beautifier objektum pedig egyszerre szinezi be az összes feliratkozott téglalapot.
13 Inheritance and Interfaces
Theory
- Read Reiter book: parts 12, 13, 18, 20, 21
- Example projects: S10
Coding
Transform the following Unity examples into .Net. They have MonoBehavior class, w have Progam.cs file. They have Start() method, we have Main() method.
14 Complex project – Shapes
Theory
- Read Reiter book: part 24
Coding
Implementálja az alábbi osztálydiagramot: Shapes
15 Complex project – Ports
Theory
- Read Reiter book: part 32
- Example projects: S04
Coding
Implementálja az alábbi osztálydiagramot: Összetett feladat
16 Regular Expressions
Theory
- Read Reiter book: 74 – 75
- Python Regex