Bevezetés a programozásba


Szak: PTI BSc

Óraszám / hét: 0+0+2

Kurzuskód: INBPM0104

Kreditérték: 3

Félév: 1

Előfeltételek: -

Típus: Labor

Számonkérés módja: Gyakorlati jegy


A tantárgy feladata: A programozáshoz kötődő alapismeretek tárgyalása, a programnyelvek eszközeinek heurisztikus bemutatása és megismerése.


Szerzett tudás: Ismeri és érti az informatikai szakterület legfontosabb általános elméleteit, összefüggéseit, tényanyagát és az ezekhez szükséges felépítő fogalomrendszert, különösen az alábbi területeken: a programozás módszertani alapjai, programozási nyelvek, fordítóprogramok, alkalmazások fejlesztése, programozási környezet; számítógép-architektúrák, operációs rendszerek, számítógépes-hálózatok, osztott rendszerek, az adatbázisok elméleti alapjai. Ismeri és érti az informatikai szakterület szakmai szókincsét, kifejezési és fogalmazási sajátosságait anyanyelvén és legalább alapszinten angol nyelven is. Ismeri a szakszerű és hatékony szakmai kommunikáció speciális informatikai eszközeit és módszereit.


Szerzett képességek: Képes a szakmai információforrások használatára, a megoldandó problémához szükséges ismeretanyag megkeresésére. Meglévő ismereteire alapozva hatékonyan sajátít el új technológiákat és paradigmákat. Képes informatikai tudását az elsajátított matematikai, számítástudományi elvek, tények, szabályok, eljárások alapján folyamatosan fejleszteni.


Szerzett attitűdök: Vállalja és hitelesen képviseli informatikai szakterülete szakmai alapelveit. Nyitott a képesítésével, szakterületével kapcsolatos szakmai, technológiai fejlődés és innováció megismerésére és befogadására. Elfogadja az informatikai szakma munka- és szervezeti kultúra szabályait, etikai elveit. Reflektív módon tekint saját szakmai kompetenciáira és tevékenységére. Törekszik a folyamatos szakmai képzésre és általános önképzésre.


Szerzett autonómiák és felelősségek: Felelősséget vállal szakmai tevékenységéért. Törekszik a hatékony és minőségi munkavégzésre.


Tárgyleírás (Neptun): Alapszintű operációs rendszer elemek, felhasználói szintű operációs rendszer ismeretek. Parancssor használata, kézikönyvlapok, fejlesztőeszközök. A forráskódtól a futtatásig. A fordítóprogramos technika, a tiszta interpreteres technika és a hibrid megközelítés. Hibák, hibatípusok, hibaüzenetek. Szintaktika és szemantika. Algoritmusok szerkezeti elemei: szekvencia, szelekció, iteráció. Absztrakt adatszerkezetek és elemi algoritmusok (bejárások, keresések, rendezések). Programkódok működés közben (pl.: Visualgo). Programnyelvi alapismeretek: adatok kezelése, a változó fogalma. A standard input/output kezelése. Típusok, műveletek. Egyszerű adatkezelés. Kifejezések, utasítások. Tömbök kezelése, a mutató, mint programozási eszköz. Vezérlési szerkezetek. A függvényfogalom bevezetése, paraméterek, paraméterátadás, visszatérési érték, környezet. Nevek hatásköre. Rekurzió, rekurzív algoritmusok, önhivatkozó struktúrák. Rekurzív kódok írása. Forráskódok értelmezése, elemzése.


Tananyag: http://stroustrup.com/Programming/

Tanári kézikönyv: Bjarne Stroustrup: "Programming: Principles and Practice using C++ (Second Edition)" Addison-Wesley 2014, ISBN 978-0-321-99278-9 (Part I) („S” könyv)

Prezentációk: http://stroustrup.com/Programming/lecture-slides.html

Instructor’s guide: http://stroustrup.com/Programming/PPP-guide.pdf

Egyéb ajánlott irodalom:


Bontás a tárgyleírásnak megfelelően

Rövid leírás

Tárgyleírásban

Tananyagban

Olvasmány

Bevezető labor, a tárgy szerepe, a programozás szerepe, ismerkedés a környezettel (Linux, gcc, g++, parancssor)

Alapszintű operációs rendszer elemek, felhasználói szintű operációs rendszer ismeretek. Parancssor használata, kézikönyvlapok, fejlesztőeszközök. A forráskódtól a futtatásig. A fordítóprogramos technika. Szintaktika és szemantika.

Prezentáció: Ch1-2: Programming and "Hello, World!"

Egyszerű Hello World! megírása. Parancssor használata, fordítás.

S könyv: Ch0, Ch1, Ch2

Változós” labor, alapvető változó fogalom, típusok, szemléltetés: I/O.

Programnyelvi alapismeretek: adatok kezelése, a változó fogalma. A standard input/output kezelése. Típusok, műveletek. Egyszerű adatkezelés. Kifejezések, utasítások. Nevek hatásköre.

Prezentáció: Ch3: Objects, Types, and Values

Egyszerű beolvasás, kiírás string típussal.

S könyv: Ch3

Computation” labor, egyszerű aritmetikai és logikai műveletek, vezérlési szerkezetek

Algoritmusok szerkezeti elemei: szekvencia, szelekció, iteráció. Vezérlési szerkezetek.

Prezentáció: Ch4: Computation (slide 1-15)

S könyv: Ch4 (4.1-4.4.)

Függvény labor,

egyszerű függvények, „külső” függvények használata (pl. printf, read, stb)

A függvényfogalom bevezetése, paraméterek, paraméterátadás, visszatérési érték, környezet.

Prezentáció: Ch4: Computation (slide 16-19)

S könyv: Ch4 (4.5)

Adatszerkezetek labor, egyszerű vector példa, néhány rendező algoritmus szemléltetése VisuAlgoval.

Absztrakt adatszerkezetek és elemi algoritmusok (bejárások, keresések, rendezések). VisuAlgo.

Prezentáció: Ch4: Computation (slide 20-31)

S könyv: Ch4 (4.6-végig)

Tömbös labor

Tömbök kezelése, a mutató, mint programozási eszköz.

Prezentáció nincs. Forráskód: EXOR.

K&R-C programozási nyelv: Ch5

Rekurzív labor

Rekurzió, rekurzív algoritmusok, önhivatkozó struktúrák. Rekurzív kódok írása.

Prezentáció nincs. Forráskód: LZWBinFa C változat.

K&R-C programozási nyelv: Ch6

Szakmai hét / Gyakorlás

Hibakezelés labor, fordítási, futási hibák, hibakezelés, kivételkezelés

Hibák, hibatípusok, hibaüzenetek.

Prezentáció: Ch5: Errors

S könyv: Ch5

Writing a program” labor

Forráskódok értelmezése, elemzése.

Prezentáció: Ch6

S könyv: Ch6

Writing a program” labor 2

Forráskódok értelmezése, elemzése.

Prezentáció: Ch7

S könyv: Ch7

Függvény labor 2, függvénydeklarációk, „pass by” technikák (value, reference, const reference)

Paraméterek, paraméterátadás, visszatérési érték

Prezentáció: Ch8: Technicalities: Functions, etc.

S könyv: Ch8

Absztrakt adatszerkezetek labor

Absztrakt adatszerkezetek

Prezentáció: Ch9: Technicalities: Classes, etc.

S könyv: Ch9

Python labor, egyszerű példák az interpreteres programnyelvek kapcsán.

A tiszta interpreteres technika és a hibrid megközelítés.

Prezentáció nincs, forráskódot készítünk.

könyv: nincs


A tárgy teljesítésének feltételei:

Aláírás megszerzésének feltétele

Érdemjegy


Etikai elvárások: a hallgatókkal kapcsolatos etikai normákra A DEBRECENI EGYETEM ETIKAI KÓDEXE az irányadó lásd.: http://www.unideb.hu/portal/hu/node/47


Egyebek:

A feladatokhoz használt header file: http://stroustrup.com/Programming/PPP2code/std_lib_facilities.h


3/3