HTML

Programozó Páternoszter

Ez a Programozó Páternoszter (PP) blogja, a programozásról szól. Aktualitása, hogy a Debreceni Egyetem Informatikai Kara Magasszintű programozási nyelvek 1-2, C++ esattanulmányok, Java esettanulmányok című kurzusainak blogja is egyben.

A vadászat

A Debreceni Egyetem Programozói Évkönyve: az UDPROG projekt. A szakmai fórumunk a Facebook-en. Az új előadások a prezin.
A régi előadások:
Prog1:
1. C bevezetés
2. C tárgyalás
3. C befejezés
4. C a gyakorlatban
5. C++ bevezetés
6. C++ tárgyalás
7. C++ befejezés
8. C++ a gyakorlatban
9. Java platform bevezetés
10. Kvantuminformatikai alg. bev.
Prog2:
1. Java bevezetés
2. Java tárgyalás
3. Java befejezés
4. Java a gyakorlatban
5. Software Engineering bev.
6. Java EE bevezetés
7. AspectJ bevezetés
8. BPMN-BPEL SOA programozás
9. C++ haladó
10. Tensorflow

Kövess engem!

Friss topikok

Linkblog

A szavak ereje

2011.05.04. 09:25 nb

Némi segítséget ad ez a poszt a szóbeli felkészüléshez.A következő "módosító" (finomító) javaslataim az aktuális, a 2010/2011 tanév második félévére vonatkoznak. A tételsor megtalálható a kurzus térképen (flash).

Általános megjegyzések

  • I-IV feltételezi, hogy a K&R könyvet rongyosra olvastad :)
  • Aki a "jól kell tudni" részeket jól tudja, az minden valószínűség szerint nem fog megbukni a szóbelin.
  • Az írásbeli és szóbeli vizsgán is bármi (jegyzet, könyv, gép) használható, sőt: erősen javallott! S egyben ezért felesleges magolni vagy puskát írni! Ez nem történelem vizsga, ennek megfelelően tipikusan mindig valamilyen forráskódra támaszkodást várok és nem szavalatot vagy mit gondolt Arany Madáchról típusú gondolatmenetet... kóbor memóriafoszlányt vagy hexameterben a Huszt-ot :)

C

I. tétel

  • I/1,2,4 -re ha a hallgató hoz magával egy (vagy esetleg több) példát, az a legszerencsésebb, ha azokat magyarázza el és nem itt kap egy meglepetést.
  • I/4-nél érdemes pár mondatot mesélni, nagyon távolról a "fordítóprogram" feladata témában (ha az előadáson nem jegyzeteltél, akkor pl. olvasd el hozzá a "Pici jegyzet" 12. oldala környékét.)
  • I/5-öt jól kell tudni (string_masolo_man_pl_alapjan-os laborkártyát és a kapcsolódó karakterhegyezés fóliák példáit jól kell érteni, illetve a deklarációs laborkártyát)

II tétel

  • II/1: megállási problem egy fólia Móricka rajza, azt érteni tökéletes.
  • II/2: ugyancsak 1 fólia Móricka rajza, azt érteni tökéletes megintcsak.
  • II/3-ra mutathatsz egy példát az előadás fóliáin
  • II/4 az előző tételnél már megtanult deklarációs laborkártya kell ide is
  • II/5-öt jól kell tudni: mutatók és (többdim) tömbök kapcsolatát lerajzolni az előadásban megszokott Móricka rajzokkal

III. tétel

  • III/1-et jól kell tudni: példaként a védett programot is használhatod
  • III/2 mese és rajzolgatás
  • III/3-ból csak a fájlkezelés kell, az előadásban van alacsony/magas, karakteres/szöveges (gyök kettes példák), de ha a védésedben binárisan alacsonyan (open/read) kezelted a bemenetet, karakteresen a kimenetet, akkor az is tökéletes ide. Linux PCB és a következő
  • III/4,5,6-ból csak az csemegézzen, aki (nagyon) jó jegyet akar 

IV. tétel

  • IV/1 mese mese mátka
  • IV/2-t jól kell tudni: az írók-olvasókat a legkönnyebb szerintem áttekinteni, ott már laborkártyán a tipikus kérdésemet is kilőttem :)

C++

V. tétel

  • V/1 kapcsán jól kell tudni: a referencia típust
  • V/2 mese
  • V/3 könnyű példa
  • V/4 a tárkezeléses (free/delete) Móricka rajzos fóliákat érteni kell
  • V/5 (Középkezdés című fólián)

VI. tétel

  • VI/1, 6-ot jól kell tudni: előbbire jó a Vermes példa, utóbbinál a tárkezeléses (free/delete) Móricka rajzos fóliák kellenek, amik az előző tételnél is voltak
  • VI/2-t számtalan példában használtuk
  • VI/3,4,5,7-ből csak az csemegézzen, jobb (>=3) jegyet akar 

VII. tétel

  • VII/3 kapcsán jól kell tudni: a sablonosztályos bináris fánkat.
  • VII/2 kapcsán az előző tételhez is kapcsolódva mese a virtual kulcsszóról, szerencsés az előadás kapcsolódó fóliája példájának értése
  • VII/1 -ből csak az csemegézzen, jobb (>=3) jegyet akar

VIII. tétel

  • VIII/1-et jól kell tudni: ismerni az osztály használatát, metódusait, példát a használatra stb.
  • VIII/5-re is szerencsés egy példa ismerete
  • VIII/2,3,4 -ből csak az csemegézzen, jobb (>=3) jegyet akar

Java

IX. tétel

  • IX./1,2 mese és "architektúrális mese"
  • Aki jobb jegyet szeretne (>=3) érdemes összevetni a felvillantott Jávás polár generátorosat a tárgyalt C++-ossal (l. V. tétel)
  • IX/1 -ből aki komolyabb (>=4) jegyet akar, érdemes felvillantania távolról egy MIDlet vagy Servlet stb. osztály forrását (pl. az életciklus metódusok kapcsán)

 

(Még finomítom a koncepciót, lehet kommentelni természetesen, a jövő héten véglegesítjük.)

36 komment

Címkék: vizsga szóbeli kurzus terkép

A bejegyzés trackback címe:

https://progpater.blog.hu/api/trackback/id/tr242876348

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

sency 2011.05.05. 13:09:15

Köszönjük a részletes tételsort így könnyebb látni az erdőt! Technikai kérdésem lenne: az írásbeli vizsga hol lesz? Ugye mivel kötelező, ezért a római 1-es kicsit necces lenne. (láttuk az első előadásokon)
Illetve volt ilyen lehetőség, hogy akik bejártak előadásokra azok vizsgán valamilyen "jutalmat" kapnak. Milyen mértékű lesz?

nb · http://fersml.blog.hu 2011.05.05. 19:57:41

Finomíthatjuk is.

Az íresbeli kapcsán ez komoly fejtörés nekem is, de jövő hét szerdáig megoldjuk.

Persze, ahogy az első előadásban rögzítettük az irásbeli 5%-a az előadáslátogatás: 1/8: nehogy.fw.hu/wp-content/uploads/Prog1_1.pdf

csigabiga123 2011.05.09. 18:48:01

I/1,2,4 arabszámok azok az alfejezetek a könyvben? vagy hogy kell értelmezni?

nb · http://fersml.blog.hu 2011.05.09. 19:32:56

@csigabiga123: nem, dehogyis. A római a tételszám, az arabok az "altémák". Láttad már a tételsort?

kismenar 2011.06.15. 17:19:15

Lenne pár olyan dolog ami nekem nem tiszta.
Az első:
A referencia típus alatt mit ért Tanár úr.
A C++ típusait(bool, char, int stb..) vagy pedig a 2 fóliát az 5. előadás anyagából.

A második:
"V/4 a tárkezeléses (free/delete) Móricka rajzos fóliákat érteni kell"

Ezt nem találom az előadás fóliáin. A K&R féle könyben ez nincs benne.

converter 2011.06.15. 23:26:43

@kismenar:

Szia!

Nem vagyok kompetens a válaszadásban... de:
Az első kérdésre:
Én itt a helyedben mondanék pár szót a C++ alapvető adattípusairól, meg esetleg egy kis mesét tömbökről, mutatókról max 1-2 mondatban, majd pár szó a paraméterátadásról utána prezentálod valamelyik referenciás laborkártyát és annyi. A forrást mindenképpen próbáld ki otthon, mert értened is kell, az nem elég, hogy "ezt írja ki"!!

A második kérdésre:
Itt szerintem az V. EA 36. oldalán lévő rajzot kell bemutatni (szintén érteni).

A tévedés jogát fenntartom!:-) Csak azért írtam, hogy legyen valami támpont, amíg nb is válaszol!

kismenar 2011.06.16. 13:41:12

@converter:
Köszi, ezt meg is tanultam akkor így.
De lenne még mindig problémám.
VII/3 kapcsán jól kell tudni: a sablonosztályos bináris fánkat.
A diákban nem találtam meg ennek a sablonosztálynak a fogalmát és nem tudom ez mi. Szóval ez így nekem homályos.

VIII/1-et jól kell tudni: ismerni az osztály használatát, metódusait, példát a használatra stb.
És ezt az osztályt sem értem. Valószínű, hogy vak vagyok de erre sem találtam meg a diákban a választ :(

A többi tételt úgy ahogy tudom, de ezekkel még bajban vagyok. Tudnál ebben valamit segíteni?

converter 2011.06.16. 16:41:05

@kismenar:

Az a helyzet, hogy ezeknél a tételeknél annyira összetett tudásról van szó, hogy ezt egy kommentben összefoglalni lehetetlen. Ha megnézel egy normálisabb könyvet, azokban is több száz oldal ezeknek a témáknak a kifejtése és a megértésük szerintem csak tapasztalati úton sajátítható el.

Minden előadás fólia elején ott van a minimális elméleti cél, ha azokból valami nem világos és nincs C++ könyved, akkor google:-)

VII/3-hoz nézd át a binfa.h forrást:
progpater.blog.hu/2011/04/11/imadni_fogjak_a_c_t_egy_emberkent_tiszta_szivbol_3

VIII/1-hez:
nehogy.fw.hu/wp-content/uploads/Prog1_8.pdf
22-27 oldal forrásai

//A tévedés jogát fenntartom!:-)

jazmine 2011.06.16. 19:01:37

@kismenar: bocs., vagy két napig nem voltam a hídon, de szerencsére converter átvette a parancsnokságot.

nehogy.fw.hu/wp-content/uploads/Prog1_5.pdf-n 2. fólia a felhasználási engedély...

referencia típus alatt a... sikerült kivenni amúgy a tankönyvet? Talán írtam a Neptunban, hogy jött 5 példány. Indulásként a nehogy.fw.hu/wp-content/uploads/Prog1_5.pdf 6,7,61,62 fóliák példái tiszták?

A V/4-hez a Móriczka rajz: nehogy.fw.hu/wp-content/uploads/Prog1_5.pdf 36,37

jazmine 2011.06.16. 19:11:40

@converter: igen a V/36 ábra kell oda, és persze a 37-en a kód is jól jöhet :)

A referencia típus kapcsán a 4. említett fólia példái előkerülhetnek. A referencia típust a paraméterátadás oldaláról megfogni szerencsés lehet, de nem árt, ha általában is tud a vizsgázó beszélni erről az új típusról. ("tervezési mintában" referenciát használni már az ötösre aspirálónak érdemes: )

Referencia típusra visszatérve, ha a könyv nincs meg (ami nem jó...! mert van szabad: webpac.lib.unideb.hu/WebPac/CorvinaWeb?action=onelong&showtype=longlong&recnum=469668&pos=2 ) akkor pl. egy gyors webes tűzoltásra: www.tankonyvtar.hu/informatika/objektum-orientalt-080905-105

nb · http://fersml.blog.hu 2011.06.16. 19:28:53

@jazmine: szóval nem 4., hanem az említett 4 nehogy.fw.hu/wp-content/uploads/Prog1_5.pdf 6,7,61,62

az ötösért kérdés pedig a nehogy.fw.hu/wp-content/uploads/Prog1_8.pdf /38

converter 2011.06.16. 19:40:07

@nb:

Dobtam egy mail-t 9-én, megkaptad?

kismenar 2011.06.16. 21:49:54

Köszönöm a válaszokat!

akikiss 2011.06.17. 15:09:18

Olyan kérdésem lenne, hogy a 4. fólia író olvasó résznél (32.) lévő OR rövidítés mire utal?

nb · http://fersml.blog.hu 2011.06.17. 21:08:43

OR = Andrew S. Tanenbaum, Albert S. Woodhull: Operációs rendszerek, PANEM 1999. (az oldalszámok erre vonatkozóan vannak megadva)

Keressétek a könytárban, pl.: webpac.lib.unideb.hu/WebPac/CorvinaWeb?action=onelong&showtype=longlong&recnum=422475&pos=10

Lakers9 2011.06.18. 15:05:15

A 4.előadás laborkártyái között van 1 olyan ahol az a kérdés hogy mi az író és az olvasó. Erre a kérdésre valaki esetleg tudna nekem választ adni?

ZrZ 2011.06.18. 20:28:44

Olyan kérdésem lenne, hogy a 6. előadás 21-es fóliáján a másoló értékadásnál Verem& operator=(Verem& v) kezdősorú kódcsipetre hol találok leírást vagy mennyire kell belemélyülni? Előre is köszönöm.

nb · http://fersml.blog.hu 2011.06.19. 11:41:43

@Lakers9: ez a PP 67-69 példájából van kivágva:

bár most nézem, hogy mégsem... de érdemes megnézned, mert hasonló a kód, csak ott a növelő és a csökkentő szálak vannak, amit pedig Te kérdezel, ott az író és olvasó P-szálak.

nb · http://fersml.blog.hu 2011.06.19. 11:48:47

@ZrZ: a kurzus tankönyvében? :)

de bármelyik könyv tárgyalja a assignment copy (másoló értékadás) témát.

Nekem az tetszik leginkább, ha a hallgató kis "debug üzeneteket" tesz az osztályba és a példát futtatva magyarázza, hogy melyik fut le, mit csinál, pl.: (más téma, de) nehogy.fw.hu/wp-content/uploads/Prog1_6.pdf / 40 vagy jobban illeszkedik az SVN-be feltett saját Int osztály, de tipikusan ilyen a nehogy.fw.hu/wp-content/uploads/Prog1_8.pdf 27-28

Fek.a. 2011.06.21. 21:59:38

Tanár Úr !
Szeretnék az alábbi fóliához egy kis magyarázási segítséget kérni mert nem egészen világos mit is csinál a program. kepfeltoltes.hu/view/110621/3486469614_www.kepfeltoltes.hu_.jpg

Prog1_4.ptt 32-es fóliája !

converter 2011.06.22. 09:18:18

@Fek.a.:

Itt az lenne a lényeg, hogy van egy adatbázis, amit az írók írni az olvasók meg olvasni szeretnének. Viszont az adatbázist nem tudjuk egyszerre írni és olvasni. Egyszerre csak 1 író írhat VAGY több olvasó olvashat. Az egyidejű hozzáférés kizárására szemafort használunk.

író:
Ha az író ír, akkor lecsapja a szemafort (szemafor értéke nulla) ilyenkor ha egy másik folyamat írni, vagy olvasni szeretne várakoznia kell. Ha végzett, akkor felcsapja a szemafort.

olvasó:
Az olvaso_szamlalo-t egy mutex zárral védjük. Kezdetben ennek az értéke nulla. Ahány olvasó jön annyival növeljük az értékét. Ha jön egy olvasó, akkor az értéke egy lesz és teljesül az if így lecsapja az adatbázis szemafort. Az író ilyenkor nem fér hozzá az adatbázishoz, viszont olvasó bármennyi jöhet, mert az if-ben a számláló értéke nagyobb lesz mint egy.
Ha végez egy-egy olvasás mindig csökkentjük a számláló értékét és ha eléri a nullát, tehát minden olvasó végzett, akkor felcsapjuk az adatbázis szemafort.

Nagyjából ennyi lenne a lényeg. Itt meg tudod nézni részletesebben:
www.youtube.com/watch?v=2LWxXfji4TA&feature=player_embedded

nb · http://fersml.blog.hu 2011.06.22. 10:23:48

@converter: converter válaszát még annyival egészíteném ki, hogy a vizsgán itt azt várom, hogy a hallgató feldob egy szituációt, hogy például jön egy író és elkezdni soronként magyarázni a fólia "szemiformális" progiját soronként, hogy mi történik, közben nyilván figyelheti a korábbi fólián, hogy mi a DOWN (P) és UP (V) műveletek kódja nehogy.fw.hu/wp-content/uploads/Prog1_4.pdf / 10 tehát nem is megtanulni kell, hanem inkább csak megérteni, mert elég "mechanikusan" az adott szitukban "végrehajtani" a kódot és közben adott helyeken a két említett műveletet is, s ez lesz a teljes megértés forrása.

Fek.a. 2011.06.22. 14:25:33

Köszönöm a gyors válaszokat !

Fek.a. 2011.06.23. 13:28:58

Az első tételnél amit említett tanár úr az e-mailben melyik feladatot kell átírni a tömböt mutatózásra és hogyan ? Vagy saját programot kell írni és azt magyarázni ?

nb · http://fersml.blog.hu 2011.06.23. 13:44:23

@Fek.a.: a string_masolo_man_pl_alapjan fgv. előadás és laborkártya fóliákon is larágott csont :)
A posztban a képen látszik is a példa:

progpater.blog.hu/2011/02/06/a_forras_szovete_avagy_dest_src

erendil 2011.06.24. 18:02:48

a 3. tételben a példaként a védett programot is használhatod, aki a c++ verziót védte az esetleg használhatja azt??

nb · http://fersml.blog.hu 2011.06.24. 18:25:59

@erendil: szerintem nem érdemes, mert az már OO, beágyazott osztályokat használtunk stb.

Itt tipikusan az szokott lenni a kérésem a "jól kell tudni" részben, azaz a kettes szintnél (ha a hallgatónak nincs "hozott" példája), hogy készítsen egy struktúrát, typedef-el és egy egyszerű kis main-ben foglaljon ennek helyet. S itt is tipikusan azt nézem, hogy leforduljon és a malloc-nál legyen cast TIPUS_PTR-re, a sizeof-ban pedig a TIPUS legyen, ami persze a typedef-ből jön: éppen úgy, mint a C védendőben.

erendil 2011.06.26. 22:44:55

nem működnek az előadás diák semmilyen formátumban nem lehet elérni őket

krkkrm 2011.06.27. 03:14:20

Én az írók és olvasók problémájánál 32. fóliánál azt nem értem, hogy mikor egy író éppen ír, akkor a kódban mi zárja ki, hogy olvasó beléphessen?

converter 2011.06.27. 11:10:55

@krkkrm:

Az adatbázis szemafor zárja ki. Egyébként 8-10 kommenttel ez előtt kifejtettem az egész fóliát. Olvass vissza.

converter 2011.06.27. 11:39:47

@erendil:

Amíg nem működik a hivatalos oldal, itt megtalálod a fóliákat:

shrek.unideb.hu/~converter/

krkkrm 2011.06.27. 15:41:53

@converter: Azt én el is olvastam, akkor azt nem értem, hogyha az olvasónál lecsapja ugyan azt a szemafort, akkor hogyhogy ott beléphet mégis olvasó az első után?

krkkrm 2011.06.27. 15:44:17

közben már megértettem, köszönöm a segítséget

osthunder 2011.06.28. 16:49:54

Azt szeretném kérdezni, hogy VII. illetve VIII. tételeknél milyen jellemző kérdések vagy feladatok fordulnak elő az "elégséges" kategóriában?

gyasszzg 2011.06.29. 16:06:01

Verem (int m = 1024):meret (m), verem (new char[m])

ezt a sort valaki eltudná magyarázni, ez a 6. előadás 8. diáján van. sokan sok féle képpen értelmezték már és én a jó megoldásra lennék kíváncsi. Köszönöm.

gyasszzg 2011.07.02. 16:14:19

Mi ezt gondoljuk helyes megoldásnak:
Alapértelmezetten ha nem kap paramétert egy 1024es vermet hoz létre.
Ha kap paramétert akkor az adott m méretű vermet hozza létre.
süti beállítások módosítása