Archívum: 2018/19/1 (2018. szept.)
Tantárgy neve: | Bevezetés a Python programozási nyelvbe |
Kód: | INBV381L / INCV381L / INDV381L |
Sáv: | szabadon választható |
Kredit: | 2 |
Célcsoport: | BSc |
Előfeltétel: | Magas szintű programozási nyelvek 1 (IN[BCD]K301) |
Félév: | 2018/2019/1 (2018. szept.) |
Gyakorlatvezető: | Dr. Szathmáry László |
A gyakorlat ideje és helye:
Linkek:
Aktuális hírek
- [2018.11.29.] Kint a 9. gyakorlat anyaga.
- [2018.11.23.] Kint van a 2. ZH és a javító ZH időpontja.
- [2018.11.20.] Kint a 8. gyakorlat anyaga.
- [2018.11.13.] Kint a 7. gyakorlat anyaga.
- [2018.11.06.] Megvan az 1. ZH időpontja (lásd az oldal alján).
- [2018.11.06.] Kint a 6. gyakorlat anyaga.
- [2018.10.24.] Kiírtam néhány új házi feladatot.
- [2018.10.16.] Kint az 5. gyakorlat anyaga.
- [2018.10.09.] Kint a 4. gyakorlat anyaga.
- [2018.10.02.] Kint a 3. gyakorlat anyaga.
- [2018.09.25.] Kint a 2. gyakorlat anyaga.
- [2018.09.22.] Itt van az ősz, itt van újra.
- [2018.09.11.] Kint az 1. gyakorlat anyaga.
Mottó
"Nincs nyafogás! Programozás van!"
Rövid ismertető
A gyakorlaton a Python programozási nyelvvel fogunk megismerkedni (Python 3). Mivel a tárgy előfeltétele a "Magas szintű programozási nyelvek 1", ezért feltételezem, hogy az alapvető fogalmakkal mindenki tisztában van. A gyakorlatokon Linuxos gépteremben leszünk, ahol Ubuntu GNU/Linux van feltelepítve. Csupán egy szövegszerkesztőre lesz szükség (pl. GEdit, vim, stb.); mindenki maga dönti el, hogy melyik a szimpatikusabb. A választott szövegszerkesztőben majd be kell állítani, hogy a TAB-ot automatikusan cserélje ki 4 db szóközre. (Ha valaki vim-et szeretne használni, akkor innen letölthet egy példa konfigurációs fájlt, melyben már szerepel az előbbi beállítás). GEdit-ben ezt a következőképpen tehetjük meg: Edit → Preferences, itt válasszuk az Editor fület, majd Tab Width értéke legyen 4, ill. pipáljuk be az Insert spaces instead of tabs előtti négyzetet.
A gyakorlat tematikája / fóliák
A gyakorlaton elhangzottaknak szerves részét képezik a Függelékek is. A legutóbbi verzió innen tölthető le: python-fuggelekek.pdf. Ezt folyamatosan frissítem majd, érdemes lesz időnként megnézni, hogy volt-e bővítés. Az utolsó módosítás dátumát a fóliasor első diáján tüntetem fel.
1) 2018. szept. 11.
- bevezető, a Python története, a nyelv jellemzői
- az interaktív shell használata
- egyszerű Python szkriptek írása, futtatása
- sztringek
A gyakorlaton vetített anyag: python-01.pdf
Hol hagytuk abba: I/24 (jelentése: 1. fóliasorozat, 24. oldal)
Házi feladat:
- Py3.20121001a sztring metódus
- az 1. fólia kimaradt részeinek a tanulmányozása
- Q függelék elolvasása
- Telepítsük fel a Python 3-at az otthoni Windows rendszerünkre is. Ehhez tekintsük meg az alábbi videókat: 01, 03, 05. A 05-ös videó a Visual Studio Code használatát mutatja be. Ez annak is érdekes lehet, aki Linuxot használ!
2) 2018. szept. 25.
- a sztring adattípus (folyt.), sztringek formázása, sztring szeletek (slices)
- konstansok, inkrementálás, dekrementálás
- a lista adattípus
- for ciklus; in operátor
A gyakorlaton vetített anyag: python-02.pdf
Hol hagytuk abba: végigvettük a 2. fóliát
Házi feladat:
3) 2018. okt. 2.
- sztringek fajtái (többsoros sztring, raw sztring, stb.) [a 2. fóliáról]
- írás a standard kimenetre
- verem és sor
- gyakori lista metódusok
- lista rendezése
- split / join
- Python 3: range; Python 2: range / xrange
for
és while
ciklusok
A gyakorlaton vetített anyag: python-03.pdf
Hol hagytuk abba: hihetetlen, de sikerült végigvenni a 3. fóliát
Házi feladat:
Opcionális (csak akit érdekel):
4) 2018. okt. 9.
- mi lesz False-ként kiértékelve
- sztringbuffer
- a tuple adattípus
- list comprehension
- Python 3: int típus; Python 2: int és long típusok
- vezérlési szerkezetek
A gyakorlaton vetített anyag: python-04.pdf
Hol hagytuk abba: IV/12
Házi feladat:
5) 2018. okt. 16.
- ami a 4. fóliáról kimaradt:
- docstring
- opcionális paraméterek
- halmaz (set)
- szótár (dictionary) [nem vettük teljesen végig]
Hol hagytuk abba: V/6
Házi feladat #1:
- Az alábbi feladatok megoldásaiban minden függvényt lásson el docstring-gel!
- Py3.20130919a eltérő viselkedés szimbolikus linken keresztül (Veszély! Gondolkodós!)
- Py3.20140103a 2018 (Jaj ne! Még egy gondolkodós!)
- Py3.20130218b bizonyos karakterek
- Py3.20180306a Advent of Code, README
- Py3.20180306b AoC2017, Day 1, Part 1 (Inverse Captcha) [+1 pont az 1. ZH-hoz]
Házi feladat #2:
- A feladatok közül oldjon meg három tetszőlegesen választott feladatot, ami eddig még nem volt feladva házi feladatként.
6) 2018. nov. 6.
- ami az 5. fóliáról kimaradt:
- szótár (dictionary) [folyt.]
- zip
- globális változók
- fájlkezelés
A gyakorlaton vetített anyag: python-06.pdf
Hol hagytuk abba: VI/8
Házi feladat:
7) 2018. nov. 13.
A gyakorlaton vetített anyag: python-07.pdf
Hol hagytuk abba: VII/11
Házi feladat:
- Py3.20121006d megjegyzések eltávolítása
- Py3.20141125a verem és sor megvalósítása saját osztállyal
- Py3.20141029a trükkös tüntető
- Az elmaradt házikat legkésőbb a jövő héten lehet bemutatni! Ha a jövő héten sincs meg valamelyik házi feladat, akkor oda "-" jelet teszek. Emlékeztető: a feladatok legalább 80%-át meg kell oldani.
- készüljenek az 1. ZH-ra
8) 2018. nov. 20.
- osztályok, objektumok (folyt.)
- random számok
A gyakorlaton vetített anyag: python-07.pdf, python-08.pdf
Hol hagytuk abba: a 7-es fóliát végigvettük; a 8-as fóliáról csak a random modult néztük át
Házi feladat:
- A 7-es fóliáról nézzük át a 14. és 15. oldalt. Az öröklődés opcionális, azt nem fogom kérni egyetlen ZH-n sem.
- Py.20170511c magic methods, operátorok túlterhelése (nézzük át)
- Py3.20130325a sor adatszerkezet két veremmel
- Py3.20171030a bűvös spirál
- Py3.20180307a AoC2017, Day 2, Part 1 (Corruption Checksum) [kötelező]
- Py3.20180307c AoC2017, Day 5, Part 1 (Maze Runner) [+0,5 pont a 2. ZH-hoz]
9) 2018. nov. 27.
- modulok (8-as fólia)
- haladó rendezés (9-es fólia)
A gyakorlaton vetített anyag: python-08.pdf, python-09.pdf
Házi feladat:
Gyakorlati jegy
A gyakorlati jegy megszerzésének egyik feltétele a rendszeres részvétel a gyakorlatokon. A félév során legfeljebb 3 hiányzás megengedett. Aki ezt túllépi, az automatikusan elégtelent kap.
Késés: egy pár perces késést még tolerálok, de egy nagyobb késést már fél hiányzásnak fogok venni. Vagyis két nagyobb késés egy hiányzásnak lesz elszámolva.
A félév közepén lesz egy zárthelyi dolgozat (papíron, gép nélkül). Erre kapnak egy jegyet.
Lesz egy 2. ZH is az utolsó héten a gyakorlat időpontjában és helyén. Ez már gép előtt lesz. Erre is kapnak egy jegyet, majd a két ZH alapján megajánlok egy jegyet. Nem egyértelmű jegy esetén (pl. 3/4, 4/5) az órai munka és a házi feladatok alapján kerekítek fel vagy le. Ha valaki a házi feladatok 80%-ánál kevesebbet old meg, akkor a két zárthelyi dolgozatra kapott jegyek átlagánál gyengébb jegyet fogok megajánlani.
Lesz javítási (vagy akár rontási) lehetőség is ha valaki nem lenne megelégedve a megajánlott jeggyel. Ekkor legfeljebb egy jegyet lehet javítani/rontani. A hallgatónak néhány konkrét programozási feladatot kell helyben megoldania, illetve ismernie kell a Python programozási nyelvvel kapcsolatos fogalmakat. Akinek mindkét zárthelyi dolgozata elégtelen lett, annak nincs lehetősége javításra.
Menetrend
1. ZH
- 2018. nov. 22. (csüt.), 18.00-19.30, IK-201 (írásban)
2. ZH
- 2018. december 11. (kedd), a labor helyén és idejében (számítógép mellett)
javítási / rontási lehetőség
- 2018. december 17-ei héten (számítógép mellett)
Ajánlott irodalom
- Angolul
- Guido van Rossum: Python Tutorial (https://docs.python.org/3/download.html, PDF-ben is elérhető), 2018
- Wesley J. Chun: Core Python Programming (2nd ed.), 2009
- Allen B. Downey: Think Python (How to Think Like a Computer Scientist, http://www.greenteapress.com/thinkpython/), O'Reilly, 2012
- Michael Driscoll: Python 101, Leanpub, 2014 (kezdő)
- Michael Driscoll: Python 201, Leanpub, 2016 (középhaladó)
- Mark Pilgrim: Dive Into Python 3 (http://www.diveintopython3.net/), 2009
- Doug Hellmann: The Python Standard Library by Example (Developer's Library), 2011
- Doug Hellmann: Python Module of the Week (https://pymotw.com/3/)
- Luciano Ramalho: Fluent Python, O’Reilly, 2015 (expert)
- Magyarul
- Hogyan gondolkozz úgy, mint egy informatikus: tanulás Python3 segítségével (link)
- Mark Summerfield: Python 3, Kiskapu Kft., 2009
- Gérard Swinnen: Tanuljunk meg programozni Python nyelven (Python 2.2-t tárgyal, online letölthető: http://mek.oszk.hu/08400/08435/), 2002.
- Rashi Gupta: Mindentudó Python (Python 2.2-t tárgyal), 2003
- Python 2 / Python 3