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

Vége az első félidőnek

2012.05.18. 10:43 nb

Ezt a posztot a szorgalmi időszak rövid számszerű össegzésével nyitjuk, majd részletes támogatást nyújtunk a szóbeli és az írásbeli vizsgákhoz.

A szorgalmi időszak számokban

Az 55 labort felvett hallgatóból 22 kapott aláírást (40 %), az alábbi részletek szerint:

labor 1:
aláírva / katalógus hiányzás miatt nem / összes
8 / 9 / 18
   
    aláírva/összes 
GI  0 / 0 
MI  3 / 10
PTI 5 / 8

labor 2:
aláírva / katalógus hiányzás miatt nem / összes
7 / 5 / 18
   
    aláírva/összes 
GI  3 / 7 
MI  2 / 5
PTI 2 / 6

labor 3:
aláírva / katalógus hiányzás miatt nem / összes
7 / 8 / 19
   
    aláírva/összes 
GI  0/3
MI  3/7
PTI 4/9

(a 62 összes kurzust felvevő hallgatóból, de ebből 8 fiktív, azaz összességében 30 hallgató jöhet vizsgázni, ez 48.3 %)

Szóbeli vizsga

A régebbi hagyományoknak (és a frissebb) megfelelően itt a tételsort értelmezzük, finomítjuk. Néhány általános megjegyzés a szóbeli vizsgára:

  • az előadások végén kötelezőnek jelzett olvasmányok, ahogy a név is mutatja: kötelezőek, a jelen félévben ezek a "hallgatói" laborkártyák voltak tipikusan, tahát amikor el kellett olvasni (és/vagy kérdezni belőle és/vagy az iménti (binomod) kérdésére próbálni válaszolni) a C (K&R) és a C++ (Benedek&Levendovszky) tankönyvekből a kijelölt részeket
  • papíron nem programozunk általában és a vizsgán sem, ezért javaslot, hogy géppel vegyél részt a vizsgán
  • a vizsgán való sikeres szereplés szükséges (de nem elégséges) feltétele a tételek "jól kell tudni" részének tudása
  • 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 :)

A tételsor alapját szokásosan az előadások kezdő "Minimális gyakorlati cél" és "Minimális elméleti cél" fóliái alapján állítjuk össze. Viszont ebben a félévben az utolsó témát, a Java platform bevezetéséről szólót nem tárgyaltuk.

 I.

1) A hallgató tudjon értelmezni egy állapotátmenet diagramjával  megadott Turing gépet (elmondani, hogy „a gép ebben az  állapotban van, ezt olvassa, akkor átmegy ebbe, ezt írja és ide  lép”)
2) Adott egyszerû grammatika esetén ismerje fel, mi a  generált nyelv
3) Szintaktikai elemzés fogalmát meg tudja világítani
4) BNF-bentudjon definiálni egyszerû fogalmakat, például  mi egy „egész szám”
5) C nyelv kapcsán: típusok, vezérlési szerkezetek, mutatók,  deklarációk, kifejezések, függvények, paraméterátadás
 

  • 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.

1) Tudjon mesélni olyan problémákról, amit nem lehet (a klasszikus  értelemben vett számítógépes) programmal megoldani. Például  megállási probléma (lásd az elsõ elõadást), Kolmogorov bonyolultság, esetleg a Radó Tibor féle szorgos hód probléma.
2) A Kolmogorovbonyolultság fogalmának felhasználásával meg  tudja mutatni, hogy (a klasszikus értelemben vett számítógépes)  programmal nem lehet véletlen számsorozatot generálni.
3) Hatáskör, élettartam fogalma, lyuk a hatáskörben jelensége.
4) C nyelv kapcsán: belsõ, külsõ és statikus változók,  extern deklaráció, deklaráció és definíció különbözõsége.
5) C nyelv kapcsán: mutatók, mutatókés tömbök, mutatók és több
dimenziós tömbök, mutatóaritmetika.

  •     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.


1) C nyelv kapcsán: struktúrák, önhivatkozó struktúrák.
2) Bináris fa (pre, in, posztorder) bejárása
3) Állománykezelés kapcsán bevezetve: a GNU/Linux PCB néhány tagjának bemutatása (pl. taskstruct/pid, /filesstb.)
4) Programkönyvtárak(statikus, megosztott),  LD_LIBRARY_PATH, LD_PRELOAD
5) Rendszerhívások (néhány példával)
6) Splint kimenetének részleges ismerete (pl. a poloskak.c-re  engedve)

  •     III/1-et jól kell tudni: példaként a védett program (C ősét) 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.


1) IPC, nevezetes problémák „elmesélése”
2) Legalább az egyik nevezetes IPC probléma megoldása (ez  a fóliákon is látható „szemi-formális” (vagy C) nyelven  bemutatott megoldás részletes interpretálását jelenti)

  •     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 :)

 

V.

1) OO alapelvek (egységbezárás, adatrejtés, öröklés)
2) Egyszerû osztályok (például a PolarGen) elkészítése
3) Dinamikus tárkezelés: new, new[ ] alapvetõ használata
4) Az Aranycsapat felállása az évszázad mérkõzésén

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

VI.

1) C++ típusok, a referencia típus, paraméterátadás
2) Másoló konstruktor, másoló értékadás
3) Függvény, operátor túlterhelés

  •     VI/1 kapcsán jól kell tudni: a referencia típust
  •     VI/2,3-t számtalan példában használtuk (Verem, saját Int, 1. védés progija) ezekben jól kell tudni


VII.

1) Öröklõdés, a Liskov-félehelyettesítési elv
2) Virtuális függvények, polimorfizmus
3) C és C++ összehasonlítása
4) Dinamikus tárkezelés áttekintáse: a malloc()-tól
a new-ig(a több dimenziós példákon át is), példát
mutatva a memória szivárgásra

  •     VII/4-et jól kell tudni: a tárkezeléses (free/delete) Móricka rajzos fóliák kellenek

VIII.

1) OPC, LSP
2) Korai, késõi kötés
3) Sablonok

  •     VIII/3 kapcsán jól kell tudni: a sablonosztályos bináris fánkat.
  •     VIII/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
  •     VIII/1 -ből csak az csemegézzen, jobb (>=3) jegyet akar


IX.


1) Vektor (dinamikus tömb, vector)
2) Lista (kétszeresen láncolt, list)
3) Halmaz, set
4) Asszociatív tömb, map
5) Bithalmaz
 

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

 

További szabályok

  • 54 pont felett (nagyobb egyenlő), +3 jegy az írásbelihez, ha az elégtelentől jobb, a szóbelin is +3 (ha az elégtelentől jobb) és a hallgató az általa választott három tételből húz.
  • 18 pont felett (nagyobb egyenlő), +2 jegy az írásbelihez, ha az elégtelentől jobb, a szóbelin is +2 (ha az elégtelentől jobb) és a hallgató az általa választott öt tételből húz.
  • 6 pont felett (nagyobb egyenlő), +1 jegy az írásbelihez, ha az elégtelentől jobb, a szóbelin is +1 (ha az elégtelentől jobb) és a hallgató az általa választott hét tételből húz (tehát az összesen 9-ből kettőt biztosan elkerülhet).

(a trófeák természetesen csak akkor érvényesek, ha a hallgató a jelen félévben szerezte őket, azaz nem egy vagy több évvel korábban).

Írásbeli vizsga

Állítom össze az írásbeli tesztet. A feladatok gép nélkül is megválaszolhatóak, de vitathatatlan, hogy a géppel történő munka sokat segíthet. Ha lesz Nálad gép, az alábbiakat érdemes megfontolni az előkészítésében:

  • jó, ha rajta vannak a

 Az írásbeli teszt

Tavalyi (1, 2, 3) példák, bár most kicsit kreatívabbak is lehetünk, mert immár RC is volt!

Érzelmi bemelegítésül, két kép, hogyan festett az írásbeli tavaly:

"Ugyancsak "tartva a hagyományokat" valódi informatika vizsga volt:"

 

 

írásbeli ponthatárok és eredmények

11  feladat,  1 pont egy feladat, összesen 11 pont. (Előadáslátogatási jogosítvány +.5 pont.)

százalék pont (elm.) pont (gyak.) érdemjegy
% 50  5.5  5.5
2
% 65  7.15  7.5
3
% 80  8.8  9
4
% 90  9.9  10 5

 

  •  2 elégtelen
  •  0 elégséges
  •  2 közepes (1 fő kettesről +1 jeggyel)
  •  4 jó (3 fő hármasról +1 jeggyel)
  •  6 jeles (2 fő hármasról, 3 fő négyesről + jegyekkel)
  •  1 fő nem jelent meg

 a 2. alkalommal 6 főből

  • 3 elégtelen
  • 1 közepes (+1 jeggyel)
  • 2 jó

20 komment

Címkék: teszt c vizsga tételsor c

A bejegyzés trackback címe:

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

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.

pocsik.denes 2012.05.18. 16:44:09

A tegnapi gyakorlaton megbeszéltük, hogy ma estig beküldhetem az aranycsapat felállását +2 pontért, amivel lenulláznám a feketéket, a BFC++ client.cpp-jében lévő felállást módosítottam. Sajnos a saját gépem szervízben van, kölcsön gépen nem tudtam lefuttatni rendesen.
www.mediafire.com/?m5uqjc8i6tqr9vf

nb · http://fersml.blog.hu 2012.05.18. 17:06:43

@pocsik.denes: bizonyos értelemben már tegnap láttam, de akkor szerintem jobb volt, mert az a csomag amit küldtél ezt írja:

g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include -W -Wall -g -O2 -MT client.o -MD -MP -MF .deps/client.Tpo -c -o client.o client.cpp
client.cpp:91:26: fatal error: bolyongofcpp.h: No such file or directory

nyilván ez neked sem fordult le... nem? A tegnapi mintha fordult volna.

nb · http://fersml.blog.hu 2012.05.18. 17:13:13

@pocsik.denes: de természstesen kérném a jó verziót!

pocsik.denes 2012.05.18. 17:54:49

@nb: Ez esetben ez a blogra feltöltött
rcssserver-15.0.1.prog1bfcpp.tar.bz2-ben lévő fájloktól egyedül a clientprog1.cpp-ben lévő formation tömb tartalmában különbözik. sem ./configure sem make nincs ezen futtatva:
www.mediafire.com/?mjr8e94kcpjfoj3

nb · http://fersml.blog.hu 2012.05.18. 18:06:24

de kipróbálnám, küldenél egy olyat, amely a make dist-bzip2 parancsra készül? Ez egy bz2 állámány lesz.

nb · http://fersml.blog.hu 2012.05.18. 18:48:21

@pocsik.denes: Te nézted? Mert 2 player még nem ment a megfelelő helyre :) ...

pocsik.denes 2012.05.18. 18:55:32

@nb: az a probléma, hogy ez a kölcsöngép nem bírja el virtualbox-ban az egészet úgyhogy kb vakon pozícionáltam be őket. megkérdezhetem, hogy melyik az a 2 amelyik nincs a helyén?

lacy122 2012.05.18. 19:45:34

Boros FC vs Sajat 1-5
+3 pont a nevezésért
rcg:www51.zippyshare.com/v/46421750/file.html

pocsik.denes 2012.05.18. 19:55:43

azt hiszem sikerült megtaláljam a 2 nem jó helyre állt játékost. Remélem most már jó lesz, mert már igencsak elhúzódik ez az amúgy egyszerű feladat. Csak hát nehezíti, hogy nem tudom rendesen tesztelni.
www.mediafire.com/?dfil2dffbdu81uo

nb · http://fersml.blog.hu 2012.05.18. 20:51:52

@pocsik.denes: köszi, már csak holnap tudom majd megnézni, de örülök, hogy megoldottad, mert a programjában a programozó a Teremtő, tehát, ha az általad teremtett világban mint annak Teremtője, Te nem tudod, hogy melyik játékosokkal van gond, akkor ki tudja? Én csak a felhasználó vagyok ebben az esetben :)

lacy122 2012.06.10. 17:46:02

Azt szeretném kérdezni a tanár úrtól,hogy az írásbeli vizsga mennyire lesz hasonló a tavalyihoz,és lesznek e benne az idén is licences dolgok,és ha igen akkor azokat honnan tudom megtanulni,és a robotfocis témakörből milyen feladatokra lehet számítani?

nb · http://fersml.blog.hu 2012.06.11. 11:24:09

@lacy122: nagyon konkrétan még nem tudok válaszolni, mert a tesztet még el sem kezdtem összeállítani, de nyilván jellegében hasonló lesz.

Az esetleges licences kérdések kapcsán (itt gondolom erre gondolsz: Kérdések az informatikai kultúra témakörből) például az összes előadás talán 2. fóliáján linkelt FDL www.gnu.hu/fdl.html illetve például a védési progiban használt GPL (ugyanezen a www.gnu.hu lapon ott a GPL v2, v3 fordítása is) elolvasása jó első lépés :)

Robotfocinál megintcsak általában azt érdemes átnézni, ami a PROP könyvben www.inf.unideb.hu/~nbatfai/konyvek/ van

de sokat használtuk az ugyanitt linkelt PARP könyvet is a kurzusban.

lacy122 2012.06.11. 11:43:16

@nb: Köszönöm,még annyit,hogy egy picivel feljebb van még egy lejátszott meccs,és azért a pontot megkapom még?

nb · http://fersml.blog.hu 2012.06.11. 11:54:29

@lacy122: ez gondolom még időben volt, magán az órán, nem? Már nem frissíteném, de ha jössz vizsgázni, könyveljük majd, ha időben volt. Tehát ha még az utolsó hét vasárnap előtt jött, akkor elszámoljuk persze. (Ha írásban jössz, akkor dobj még egy mailt pls, hogy ne feletkezzek el róla.)

Peterzon92 2012.06.13. 12:01:29

Megkérdeztem, hogy megbuktam vagy hanyas lett az érdemlegyem?

Chelsea_FC (törölt) 2012.06.13. 12:26:10

A pontokat meg lehet tudni? Előre is köszönöm.

nb · http://fersml.blog.hu 2012.06.13. 15:07:18

@Peterzon92: Neptunba még de. beírtam, nem látjátok?

nb · http://fersml.blog.hu 2012.06.13. 15:08:13

@Chelsea_FC: a határok itt vannak a poszt végén, hogy kinek hány pontja lett, azt nem tehetem ki szerintem, de a szobába be lehet jönni, meg lehet nézni természetesen.

lacy122 2012.06.23. 19:06:01

Aki netalántán még nem értené a Turing gépeket,annak ajánlom figyelmébe a Google kis animációját! :)
süti beállítások módosítása