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 félév záróvédése

2012.04.27. 17:58 nb

A félév közepén a védendő (Humán Genomos) programra a z3a7.cpp, z3a8.cpp aktuális verziók szolgáltatták az alapot. Ahogy a számozás is mutatja, ezek együtt finomodnak a védésekkel: ha van valami hiba vagy észrevétel, akkor annak javítása, vagy implementálása lehet éppen a védésen a kérdésed. De ha minden jól ment, akkor ez már Neked történelem és jöhet a félév végi védés. Immár majd egy valódi programban!

Ám még előtte, akinek esetleg még jönne az első védés miatt, annak néhány gondolatébresztő kérdést itt is megelőlegezünk:

Mit írhattam be a kódba, ha arra az alábbi hibákat kaptam:
z3a7.cpp:sor:oszlop: error: ‘LZWBinFa::Csomopont::Csomopont(const LZWBinFa::Csomopont&)’ is private
z3a7.cpp:sor:oszlop: error: within this context
z3a7.cpp:sor:oszlop: error: ‘LZWBinFa::Csomopont& LZWBinFa::Csomopont::operator=(const LZWBinFa::Csomopont&)’ is private
z3a7.cpp:sor:oszlop: error: within this context

A záróvédés

 A záróvédésre egy könnyebb és egy nehezebb feladat választható. A könnyebb már be van vezetve a http://www.inf.unideb.hu/~nbatfai/konyvek/PROP/prop.book.xml.pdf készülő jegyzetben. Bármelyiket is választja a hallgató, a szebb megoldásokat készítő sikeres védők egyben meghívást kapnak a DDN-be (Debreceni Fejlesztői Hálózat). Ezzel a tagsággal például a Mobil programozás tárgy iránt érdeklődők máris kölcsönözhetik mondjuk a DDN LG Optimus 2X P990 Androidos mobilját a saját tapasztalataik megkezdéséhez, vagy bejáratosak lehetnek a hallgatói kutatóterembe stb. ... de ne szaladjunk ennyire előre, először védjünk sikerrel, s még előtte élvezzük ezeket a robotfocis feladatokat! Ezekkel fogunk foglalatoskodni az elkövetkező három hétben.

Aki már a május elsejei héten be tudja vállalni a védést, annak áll a +10 trófea, a másodiknak a +7 amint az előző védéseknél is volt ilyen felajánlásom. Hajrá!

Debreceni Lobogó - Debreceni Egyetértés - Debreceni Hivatásos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Az elmúlt hét labor témája a Bolyongó FC++ csapat volt, bár ezt némiképp eltakarták a védések. A jelen utolsó hét laboranyaga elvben a Debreceni Lobogó FC++, a Debreceni Egyetértés FC++ és a Debreceni Hivatásos FC++ csapat áttekintése és a kapcsolódó feladatok megoldása, melynek kapcsán az alábbi trófeákat ajánlom fel (ezek gyakorlatilag a könyv feladatai)

  • 3/3 Vonal feladat (bemutatva rcg-ben egy várt működést)
  • 3/4 Közös ős (bemutatva a kódot és forduljon, fusson)
  • 3/3 Távolsághoz erő (bemutatva rcg-ben egy várt működést)
  • 3/25 Bedobás és szöglet (bemutatva rcg-ben egy várt működést)

172 komment

süti beállítások módosítása