Borromeo gyűrűk
BSc Matematika Alapszak
Tantárgyleírás
2017.

Algoritmusok Python nyelven

  • Óraszám (ea+gy): 2 + 2
  • Specializáció: alk. mat.
  • Kredit (ea+gy): 3 + 3
  • Számonkérés: kollokvium + gyak. jegy
  • Tárgykód (ea, gy): alg_py1a0_m17ea, alg_py1a0_m17ga
  • Ajánlott félév: 3
  • Státusz: köt. vál.
Óraszám
ea(+k) + gy(+k)
Kredit
ea + gy
Számonkérés Specializáció Tárgykód
ea/gy
Ajánlott
félév
Státusz
2 + 2 3 + 3 kollokvium +
gyak. jegy
alk. mat. alg_py1a0_m17ea
alg_py1a0_m17ga
3 köt. vál.
Erős Gyenge előfeltételek
Gyakorlat
Erős:
Matematika kritériumtárgyG (bevmat1x0_m17ga)
Előadás
Gyenge:
a gyakorlat

Megjegyzések

  • A programozási alapismeretek (prgism1x0_m17va) előzetes elvégzése ajánlott.
  • A tantárgy oktatásának módja: Előadás, egyéni programfejlesztés a számítógépes laborban és heti rendszeres konzultáció.
  • Követelmény: A tantárgy teljesítéséhez három beadandó program elkészítése és dokumentálása és egy elméleti zárthelyi dolgozat sikeres megírása szükséges. A programokat személyesen is be kell mutatni.
  • Pótlási lehetőség: A beadandó feladatok teljesítésével a kiírt határidőhöz képest legfeljebb 2 hetet lehet késni. A sikertelen, vagy nem teljesített zárthelyi pótlására, illetve javításra egy további lehetőség adott.
  • Konzultációs lehetőség: A hallgatóknak beadandó programjaik elkészítéséhez heti rendszerességgel konzultációt biztosítunk.

A tematikát kidolgozta:

Szükséges előismeretek

Ajánlott a Programozási alapismeretek tantárgy előzetes elvégzése, vagy a tantárgy honlapján (http://progalap.elte.hu/) szereplő alapismeretek egyéni elsajátítása.

A tantárgy célkitűzése

  • A tantárgy elsődleges célja a Python programozási nyelv jól kiválasztott részének ismertetése, annak felhasználásával komolyabb (de 1000 sor alatti) hallgatói programok létrehozása.
  • A tantárgy általános célja egyrészt az, hogy a hallgatók a gyakorlatban elsajítítsák a programtervezés számítógéptől független tevékenységét, másrészt az, hogy megismerjék az egyszerű szoftverek fejlesztésének általánosan, bármely nyelvre és környezetre érvényes lépéseit.
  • A kurzus során az oktatásban, valamint a beadandó feladatok esetében is olyan példák és feladatok kiválasztására törekszünk, amelyek matematikai jellegűek; a nagyobb méretű feladatok pedig a matematika módszereinek alkalmazásával oldhatók meg.

Irodalom

  • A tantárgy honlapján (http://ifekete.web.elte.hu/, a "python" fül alatt) lévő segédanyagok.
  • G. Swinnen: Tanuljunk meg programozni Python nyelven. szabad felhasználású könyv, letölthető a MEK honlapjáról.
  • D. Beazley: Python Essential Reference. (4th Edition), Addison-Wesley, 2010.
  • A Python nyelv hivatalos honlapja: https://www.python.org/.
  • T. H. Cormen, C. E. Lieserson, R. L. Rivest, C. Stein: Új algoritmusok. Scolar, 2003.
  • B. Miller, D. Ranum: Problem Solving with Algorithms and Data Structures. Franklin, 2013.
  • M. T. Goodrich, R. Tamassia, M. H. Goldwasser: Data Structures and Algorithms in Python. John Wiley & Sons, 2013.

Tematika

A kurzus során az alábbi témakörök kerülnek ismertetésre úgy, hogy nagyon hamar programokat tudjunk írni, majd visszatérve az egyes fejezetekre.

  • A programtervezés számítógéptől független folyamata.
  • A Python nyelv általános jellemzői: interpretált, objektum-orientált, nagyszámú könyvtár stb.
  • Változók és típusaik: dinamikus típusátadás, beépített típusok, kifejezések, műveletek.
  • Vezérlési szerkezetek: szekvencia, feltételes utasítások, ciklus utasítások; utasításblokk sorok behúzásával.
  • Adatstruktúrák: karakterlánc (string), lista, tuple (n-es), dictionary (könyvtár); műveleteik, metódusaik.
  • Függvények: beépített, saját, sztenderd könyvtárból importált; rugalmas paraméterkezelés.
  • Objektum-orientáltság: objektum, osztály, metódus, öröklődés.
  • Input, output: konzolos adatbevitel és kiírás, fájlok kezelése, grafikus felület* (opcionális).
  • Sztenderd könyvtárak, elsősorban a NumPy és a SciPy.
  • A Python elsajátítása és a programfejlesztés folyamata.