Honlaptérkép
- Infó
- Főoldal
- HírekA tárggyal kapcsolatos hírek. A hírfolyam elérhető RSS formában is!
- KövetelményekKövetelmények a Programozás alapjai tárgyban. Osztályzás, pontozás, néhány szó az elvi hibákról.
- Csoportbeosztás
- ÜtemtervA tananyag heti bontásban és a számonkérések időpontjai.
- ElérhetőségElérhetőségek, információk a konzultációkról, köszönetnyilvánítás.
- Honlaptérkép
- Keresés
- Témák
- Tananyag
- Előadások
- 1. hét: bevezetésBevezető előadás. Kifejezések, változók, típusok fogalma. A Python nyelv alapjai. Egyszerű bemenet és kimenet, konverziók. Strukturált vezérlési szerkezetek: if, while.
- 2. hét: nevezetes algoritmusok, sztringek, listákNevezetes algoritmusok, azaz programozási tételek. Karakterkódok, logikai típus. Sztringek kezelése, for ciklus.
- 3. hét: adatszerkezetek, referenciákSztringek formázása, f-string, .format() függvény. Az adatszerkezet fogalma. Referenciák fogalma. Listák két dimenzióban.
- 4. hét: vezérlési szerkezetek, kivételekVezérlési szerkezetek: a continue és a break utasítás használata; while–else és for–else. Véletlenszámok generálása. A del utasítás és az in operátor használata. Kivételkezelés mint vezérlésátadó utasítás.
- 5. hét: függvények, referenciákA függvények fogalma. Függvények hívása, paraméterezése: alapértelmezett értékű paraméterek és kulcsszavak. A return utasítás használata vezérlési szerkezetek egyszerűsítésére. Top-down tervezés. Hibajelzés függvényből, kivételdobás. Referenciák fogalma és használata paraméterátadásban, mutábilis és immutábilis objektumok, None érték.
- 6. hét: rendezések, rekurzióSorozatok algoritmusai: keresések és rendezések. Buborékrendezés, rendezés kiválasztással, kertitörpe-rendezés, gyorsrendezés. Rekurzió fogalma, tervezése; egyszerűsítés és báziskritérium.
- 7. hét: osztályokTípusok kezelése a type() függvénnyel. Osztályok fogalma, definíciója. Operátorok kezelése, konverziós operátorok. Többszörösen összetett adatszerkezetek.
- 8. hét: fájlkezelés, többmodulos programokProgram és külvilág kapcsolata: parancssori argumentumok és fájlkezelés. Többmodulos programok.
- 9. hét: operátorok, számábrázolásOperátorok, kiértékelési szabályok. Számábrázolás, bitműveletek.
- 10. hét: láncolt listák, bináris fákLáncolt listák és bináris fák algoritmusai.
- 11. hét: összetett adatszerkezetekList comprehension kifejezések. A set és a dict típus. Vermek és sorok.
- 1. hét: bevezetés
- Labor
- 1. hét: egyszerű programokBevezető. A parancssor használata. Egyszerű, szekvenciális programok; teknőcgrafika, bemenet és kimenet kezelése.
- 2. hét: nyomkövetés, vezérlésNyomkövetés. Vezérlési szerkezetek: elágazások, ciklusok. Összetett vezérlési szerkezetek, összefüggő ciklusok és független változók.
- 3. hét: sztringműveletekSztringekkel végzett műveletek. Sztringek beolvasása, darabolása, feldolgozása karakterenként.
- 4. hét: nevezetes algoritmusok, listákListákkal végezhető műveletek. Egyszerűbb adatszerkezetek építése, indirekt adatelérés.
- 5. hét: vegyes feladatok, gyakorlás
- 6. hét: függvényekFüggvények, paraméterek és visszatérési értékek. Kód refaktorálása, kódrészletek kiemelése különálló függvényekbe.
- 7. hét: rekurzióLaborfeladatok a rekurzió témakörében. Sorozatok rekurzív definíciója. Báziskritériumok és egyszerűsítési lépések. Egyszerű rekurzív ábrák elkészítése teknőcgrafikával.
- 8. hét: osztályokOsztályok definíciója, példányosítása. Paraméterátadás.
- 9. hét: fájlkezelésSzövegfájlok beolvasása. Formátumhibák kezelése.
- 10. hét: számrendszerek, számábrázolásA számrendszerekről szóló előadáshoz kapcsolódó feladatok. Néhány számábrázolási probléma megjelenése a programokban.
- 11. hét: láncolt listák és bináris fákLáncolt listák és bináris fák – listák műveletei, fák építése, mélységi bejárás rekurzióval.
- 12. hét: adatszerkezetekListák leképezése és szűrése. A dict és set típusok használata.
- 13. hét: ládarendezés, hash táblákLádarendezés. Hash táblák építése.
- 1. hét: egyszerű programok
- Feladatgyűjtemény
- 1. hét: egyszerű programokGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 2. hét: logikai kifejezések, sorozatok, listák, sztringekGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 3. hét: adatszerkezetek építéseGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 4. hét: vezérlési szerkezetek, kivételekGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 5. hét: függvényekGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 6. hét: rendezések, rekurzióGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 7. hét: osztályokGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 8. hét: parancssori argumentumok, fájlkezelésGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 9. hét: számábrázolás, bitműveletekGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 10. hét: láncolt listák, bináris fákGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 11. hét: összetett adatszerkezetekGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 1. hét: egyszerű programok
- Nagy házi követelményekA nagy házi feladat követelményei. A beadással kapcsolatos tudnivalók, értékelés, pontozási táblázat.
- Nagy házi listaA nagy házi feladathoz választható programok listája.
- Előadások
- Segédlet
- FejlesztőkörnyezetekAz ajánlott, ingyenesen letölthető fejlesztőkörnyezetek.
- Könyvek és puskaA ZH-n is használható Python puska (cheatsheet). Ajánlott könyvek
- Kódolási stílusMegjegyzések és javaslatok a szépen írt, áttekinthető programokhoz.
- Nagy ZH, vizsga
- Tanácsok a tanuláshozHogyan kell tanulni a prog ZH-kra? Ne kövesd el azt a hibát, hogy csak a megoldott feladatokat nézegeted!
- Minta zárthelyiPost Covid rövidített, három példából álló minta zárthelyi
- Vizsga mintaMinta vizsga, néhány feladattal.
- Tanácsok a tanuláshoz
- Nagy házi
- Nagy házi tanácsokNéhány tanács és útmutatás a nagy házival kapcsolatban.
- NHF mintaA minta nagy házi, amely egy plágiumkereső program. Pontosított specifikáció, végleges program és dokumentációja.
- Specifikáció: hogyan?Mire jó a specifikáció? Hogyan írjunk specifikációt?
- Fájlkezelés, mappákA fájlkezelésről néhány szó: fájlok létrehozása, írása és olvasása Python nyelven. Ez az írás csak egy rövid segédlet azoknak, akik használni szeretnének fájlokat valamilyen feladatban; az előadáson részletesen is van szó a témáról.
- Szöveges és grafikus megjelenítésA nagy házi feladatban használható, szöveges és grafikus megjelenítést segítő modulok.
- PyConio konzolos megjelenítésKonzolos (parancssori ablakos) megjelenítéshez használható modul. Lehet vele színeket beállítani, képernyőt törölni, adott pozícióra ugrani és kurzorbillentyűket kezelni.
- A pygame multimédiás könyvtárA pygame egy platformfüggetlen multimédiás függvénykönyvtár. A programozók számára egy egységes felületet biztosít a grafikus megjelenítéshez, hangok megszólaltatásához, billentyűk, egér és botkormányok kezeléséhez. A pygame-mel megírt program működik különféle Windows verziókon, de Linuxokon, Mac OS X-en, és még néhány okostelefonon is.
- Nagy házi tanácsok
- Fejlesztőkörnyezetek
- Extrák
- Szorgalmi feladatok
- Galériák
- NHF galéria 2023A 2023-as nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2022A 2022-es nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2021A 2021-es nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2020A 2020-as nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2023
- Elmélet
- Mit tud a számítógép?Mi az a feladat, ami nem oldható meg programból? Egy írás Alan Turing cikke nyomán.
- BFTuring gépei és a méltán hírhedt Brainfuck programozási nyelv. Mit jelent az, hogy egy nyelv Turing-teljes? A „Mi tud a számítógép? Mi az, amire képtelen?” írás folytatása.
- Gyorsrendezés helybenGyorsrendezés megvalósítása helyben rendezésként: egy meglévő lista elemeinek cserélgetésével.
- Összefésülő rendezésAz összefésülő rendezés (merge sort) garantált O(n·logn) futási idővel rendelkezik, azonban szüksége van egy segédlistára.
- Gráfbejáró algoritmusokGráfok tárolása. Gráfbejáró algoritmusok.
- Mit tud a számítógép?
- Gyakorlat
- KarakterkódolásokÉkezetes betűk, szövegek kódolása és megjelenítése a programokban. Az itt tárgyalt dolgoknak nagy részét megoldja a Python nyelv szabványos könyvtára magától, de nem árt tudni, mi történik a háttérben.
- BitturmixBitműveletek használata: véletlenszámok, titkosítás, hash függvények és jelszavak világa.
- InternetAz Internet működéséről röviden, és a Pythonban használható hálózatprogramozás alapjairól.
- Bináris fa üres levelekkelA bináris fákat néha úgy építjük fel, hogy a levelek üresek – előre létrehozva az adatnak a helyet. Miért jó ez?
- Karakterkódolások
- Grafika
- Fák rajzolásaKülönféle fafajtákat kirajzoló program. Éljen a rekurzió!
- Zárt terület kifestéseZárt terület kifestése: a flood fill és a boundary fill algoritmus
- LabirintusokLabirintusokat tervező és megoldó algoritmusok. Egymásra nem is hasonlító rekurzív és iteratív megoldások ugyanazokra a feladatokra.
- Fák rajzolása