Szoftverfejlesztési alapok

Szoftverfejlesztés | C | Java | JavaScript | Python
Nehézség: Alap
Tanfolyam hossza: 5 nap

Adattípusok, adatstruktúrák, algoritmusok, programozási elvek

CÉLOK
A tanfolyam egy programozási alapozó, amelynek során áttekintjük a programozásban gyakran alkalmazott adatstruktúrákat és technikákat. Tárgyaljuk például, hogy milyen esetekben célszerű tömb, láncolt lista vagy bináris fa használata, illetve mire használhatók a hashtáblák. Kitérünk az algoritmusok komplexitásának megállapítására, illetve gyakran használt algoritmusokat is megismerünk, pl. A quicksort. A tanfolyamot C nyelvvel ajánljuk, mivel a C nyelv alacsony szintű szemlélete jól illusztrálja a bemutatott adatszerkezetek működését, de igény szerint Java, JavaScript vagy Python nyelven is meg tudjuk tartani

TEMATIKA

• A számítógépes adatábrázolás
– Bináris, decimális és hexadecimális számrendszerek
– Előjel nélküli egészek ábrázolása
– Előjeles egészek ábrázolása kettes komplemens formában
– Túlcsordulás és alulcsordulás
– IEEE 754-es lebegőpontos számábrázolás
– Szöveges adatok ábrázolása, karakterkészletek és karakterkódolások
– A bájtsorrend

• A programozás fogalma
– Hétköznapi problémák leképezése programozási fogalmakra
– Absztrakciós szintek

• Az algoritmus elkészítése
– Az algoritmus fogalma
– Pszeudokódok és folyamatábrák
– A programok építőelemei: változók, kifejezések, értékadások, utasítások,
– elágazások, ciklusok, tömbök
– A programozási tételek
– Függvények
– A funkcionális dekompozíció
– Rekurzió
– Algoritmusok lépésszáma
– Gyakori keresőalgoritmusok
– Gyakori rendezőalgoritmusok

• A C nyelv alapjai
– A Hello World program
– A C program fő elemei
– Egyszerű változótípusok: egészek, lebegőpontosok, karakter
– Literálok
– Aritmetikai operátorok
– Elágazások a programban
– Ciklusok
– Tömbök
– Függvények és include direktívák
– Rekurzió

• A pointerek kezelése
– Érték szerinti és cím szerinti paraméterátadás
– Dinamikus memóriafoglalás
– Pointeraritmetika
– Tömbök és pointerek kapcsolata
– Sztring, mint karaktertömb
– Sztringek kezelése saját kódból
– Sztringek kezelése könyvtári függvényekkel
– Parancssori paraméterek használata
– Bájttömbök kezelése
– Generikus kódrészletek írása függvénypointerekkel
– Generikus kódrészletek írása void* pointerekkel

• Hatékony adatstruktúrák használata
– Fix tömb, dinamikus tömb, láncolt lista
– Algoritmusok láncolt listákkal
– Kétszeresen láncolt listák
– Bináris keresőfák
– Hashtáblák
– Halmaz adatszerkezet megvalósítása hashtáblával

• Állapotgépek megvalósítása
– Az állapotgépek fogalma
– Problémák modellezése állapotgépekkel
– Állapotgépek megvalósítása