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 második védések szezonja

2013.02.27. 08:53 nb

Elérkeztünk a félév labormunkáját lezáró második védéshez, amely a http://progpater.blog.hu/2013/03/10/kozos_feladatok_allamvizsga_beugro poszt három alábbi feladatának egyike lehet:

  1. [35 pont] 2D grafikus megjelenítő írása a Quantum Consciousness Soccer Simulator - kvantum-tudatos foci szimulátorhoz C++ nyelven, Qt-vel.
  2. [70 pont] Saját Lexer osztállyal felszerelt 2D RoboCup Soccer Simulation multiágens robotfoci csapat készítése C++ nyelven. (Kiindulási csapatod lehet például majd a Debrecen Round Forest FC++, természetesen nem ezzel kezdünk a laboron.)
  3. [100 pont] Saját Quantum Consciousness Soccer Simulator multiágens foci és szurkolói csapat készítése C++ nyelven.

Az első feladat esetén itt egy pompás védés programja, amely ebben a félévben született. Kevésbé kifinomult megoldások is megfelelőek lehetnek első védésnek, például a grafikus élmény feljavítása mellett az alul elhelyezett "hatás-tábla" külön ablakban történő megjelenítése egy jó fejlesztési cél lehet a védéshez.

A második feladatban, ha húsz góllal veri a védő hallgató a könyv csapatát, az önmagában remek. Ha ez nem sikerült, akkor érdemes implementálni a laborok feladatait: saját felállás, logót csatol fel a coach; illetve ezen felül szerencsés, ha a hallgató kitűz egy célt (pl. szögletnél két támadó ágens helyezkedjen az ötös sarkához) ezt beprogramozza és kivetíti egy olyan rcg részletét, ahol ez jól látszik. Tehát van elképzelése, forrásban be tudja mutatni a megvalósítást és mellette leveíteni egy éppen ezt megvalósító demonstratív viselkedést. Izgalmas lehet az erdei csapatok azon hibájának javítása, hogy a kapust goalie-ként csatoljuk fel. Ha ezek a feladatosk sem mennének, akkor a nyelvi finomságok maradnak, például a POSIX szálak használata C++ programban.

22 komment

A 8-10 labor anyaga - kick-off

2013.02.26. 17:22 nb

A laborhoz ajánlott muzsika: http://youtu.be/mNHPv2GJyh8

plb_logo_2013.png

A 8. labor témája

Az alternatív tabella C++ változatának megírása. 5-8 pontért a laboron celebráld a védett LZW binfás programod és a következő "általános" binfa összehasonlítását: http://www.inf.unideb.hu/~nbatfai/p1/forrasok-SVN/bevezetes/C++/binfa/binfa/ Segít ebben az Elmondtam milliomezerszer 2 című poszt. (A 7. laborig tartott ki az évfolyam lendülete abban az értelemben, hogy innen nem tudjuk az eddigi iramban diktálni a tempót, hanem a laborokon a leszakadókkal is foglalkoznunk kell, hiszen van olyan labor, ahol jóval többen vannak az eddig sikertelen első védők a sikeres első védőknél...)

A 9. labor témája

  • 3 trófeáért az első robotfoci mérkőzés valamelyik Forest-es csapattal; hiba lesz mindenkinél..., megoldás: az rcssserver-ből a lájtosítottat kell használni, amelyet a következő publikációban mutattunk be:
    N. Bátfai, R. Dóczi, J. Komzsik, A. Mamenyák, Cs. Székelyhídi, J. Zákány, M. Ispány, Gy. Terdik, Applications of a simplified protocol of RoboCup 2D Soccer Simulation. Infocommunications Journal, 5(1):15–20, 2013.
  • 7 trófeáért adj meg egy saját felállást!

A 10. labor témája

  • 5 trófeáért programozd be csapatodba, hogy vízszintesen alapvonaltól-alapvonalig masírozzanak, mindeközben ne is foglalkozzanak a játékkal persze!
  • 8 trófeáért programozd be csapatodba, hogy a saját gólvonalukon felsorakozva védekezzenek!

PLB

A PLB levezénylése a plbplk levelezési listán történik. A nevezők csatlakozzanak ehhez a csoporthoz! Az előző szemeszter mintájára:

győzelem:  8 pont
döntetlen: 4 pont
vereség: 2 pont

PLB, I. hely: 40 pont
PLB, II. hely: 30 pont
PLB, III. hely: 20 pont

Laboron kiprojektált edzőmeccs pontozása ua., mint fent.

Az a hallgató (a PLB első titkára, lehet csapaattag is - a laboron velem kell egyeztetni), aki vállalja, hogy a versenynaptár szerint a mérkőzéseket lefuttatja a stadionban (ezért nyilván csak a robocup-nevű gépen accounttal rendelkező hallgatók jöhetnek itt szóba), az rcg-ket a webre, mérkőzésenként 6 pontot kap.

Az a hallgató (a PLB második titkára, lehet csapaattag is - a laboron velem kell egyeztetni), aki vállalja, hogy az első titkár által kitett rcg-k alapján és az eredmény egyszerű formában kiteszi a webre (tavaly magam így csináltam), mérkőzésenként 3 pontot kap.

Tabellák

Versenynaptár

Az alábbi csapatok jelezték TDP-jük beküldésével a PLB-n történő részvételi szándékot:

  • Focihaj FC
  • Random Goal Generators Destructor (RGGD)
  • RandomGoalGenerators
  • AlphaMoonFC
  • VS94
  • Norbi FC++
  • FC Bőrszalonna
  • Debrecen Round Forest FC++

Közülük az alábbi csapatok jelentkezését fogadta el a PLB licencadó bizottsága és őket az alábbi időpontokba osztotta be:

2013. május 1., szerda
Focihaj FC : FC Bőrszalonna
RGGD : Debrecen Round Forest FC++
RandomGoalGenerators : Norbi FC++
AlphaMoonFC : VS94

2013. május 4., szombat
FC Bőrszalonna : VS94
Norbi FC++ : AlphaMoonFC
Debrecen Round Forest FC++ : RandomGoalGenerators
Focihaj FC : RGGD

2013. május 8., szerda
RGGD : FC Bőrszalonna
RandomGoalGenerators : Focihaj FC
AlphaMoonFC : Debrecen Round Forest FC++
VS94 : Norbi FC++

2013. május 11., szombat
FC Bőrszalonna : Norbi FC++
Debrecen Round Forest FC++ : VS94
Focihaj FC : AlphaMoonFC
RGGD : RandomGoalGenerators

2013. május 15., szerda
RandomGoalGenerators : FC Bőrszalonna
AlphaMoonFC : RGGD
VS94 : Focihaj FC
Norbi FC++ : Debrecen Round Forest FC++

2013. május 18., szombat
FC Bőrszalonna : Debrecen Round Forest FC++
Focihaj FC : Norbi FC++
RGGD : VS94
RandomGoalGenerators : AlphaMoonFC

2013. május 22., szerda
AlphaMoonFC : FC Bőrszalonna
VS94 : RandomGoalGenerators
Norbi FC++ : RGGD
Debrecen Round Forest FC++ : Focihaj FC

A mérkőzéseket az első titkár bonyolítja le (saját gépén, lájtosított szerverrel), a mérkőzések eredményeit RCG fájlok formájában átadja a második titkárnak, aki pedig karbantartja a tabellát.

Lebonyolítás

Legkésőbb április 30-ig az alábbi PLBPLK listára be kell küldeni a csapatodat. A mérkőzés napján az első titkár, amikor ideje engedi, otthoni (vagy saját, tehát nem a robocup-on most, ott majd a prog2-n) számítógépén lefuttatja a kiírt 4 mérkőzést. Az eredményként keletkező (az rcssserver indítási könyvtárában a csapatnevekből képződött) 4 rcg állományt eljuttatja a második titkárnak, aki ez alapján karban tartja a webes (szokásos, pl.) tabellát.

Fontos, hogy az első titkár olyan csomagot kapjon, hogy ha kiadja a ./configure, make parancsokat, majd csak el kelljen indítania a szintén mellékelt start.sh-t. Ha erre nem indul a csapat automatikusan, akkor az ellen csapat auto győz 3:0-ra. (Ha egyik sem indul, akkor 0:0 ilyen még nem volt azért :)

A listára mehetnek folyamatosan a csapatfrissítések, s az első titkárnak elég a legfrissebbet használni a napi meccsekhez, ha nincs frissítés, akkor természetesen mehet a szimuláció a korábbi csapattal.

Csapatok és TDP-k beküldése, csevegés a témában

A kötelezők

A KÖNYVből olvassuk el a

38-56. oldalt

A binomos munka a jelen évfolyami közösségben a könyvolvasás támogatására a többségnél továbbra is csupán "alibizés", ezért mostantól csak a globális ellenőrző kérdések jönnek:

  • Mit ad vissza a Stack::stack Stack::create(){...} függvény?
  • Miért friend a friend complex operator+(complex, complex); függvény?
  • Mi a vtbl?

66-86. oldalt

  • Mutass egy egyszerű (gépen forduló, futó :) példát vektor használatára!
  • Mutass egy egyszerű (gépen forduló, futó :) példát lista használatára!
  • Mutass egy egyszerű (gépen forduló, futó :) példát asszociatív tömb használatára!
  • Mutass egy egyszerű (gépen forduló, futó :) példát bejáró használatára!

  • Mit csinál ez a program?
    #include <iostream>
    #include <iterator>
    #include <string>
    int
    main ()
    {
      std::ostream_iterator < std::string > std_out (std::cout);
      *std_out = "Helló, Világ!\n";
      return 0;
    }

395-404. oldalt

  • Rajzold le UML-ben egy olyan programod osztálydiagramját, amely legalább egy bázis és egy leszármazott osztályból áll (használd például az ArgoUML, umbrello vagy a WhiteStarUML programot)! (a "fekete-osztáskori" bemutatáskor 1-5 pirossal is elismerem ezt a feladatot)

Ismétlés:

  • magyarázd meg a "Az első néhány hét tapasztalatai" poszt programját, nyilván ez kipróbálását is jelenti!

Laborkártyák

Poszt-pontok

  • Írd át C++-ba az alternatív tabella Java verzióját! (25 pont + (mostantól) bajnoki fordulónként * 5 pont a Wikipédia szócikk karbantartásáért - ez nyilván csak az első beküldőnek; tesztelés: a meglévő tabellákra működjön jól, az alap 25 pont az első három hallgatónak)
  • Írj programot, amely parancssorban kapja a csapatneveket és legenerálja a bajnokságot. Fontos, hogy időpontokhoz - ki játszik kivel párosításokat adjon és nyilván egy hétvégén minden csapat egy meccset játsszon! (20 pont, az első 3 hallgatónak)
  • Nevezz a PLB, PLK-ba (időtől és jelentkezett csapatok számától is függ, hogy melyik indul be) a C++-os csapatod TDP-jének beküldésével! (5 pont) /a tavaly előtti csapatok, kupa, a tavalyi csapatok/

26 komment

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