extrák az önéletrajzban (programozási...

42
V 1.0 ÓE NJSZK 1 Extrák az önéletrajzban (programozási versenyekkel) Szabó-Resch Miklós Zsolt Ügyvivő Szakértő

Upload: others

Post on 24-Dec-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0 ÓE NJSZK 1

Extrák az önéletrajzban

(programozási versenyekkel)

Szabó-Resch Miklós Zsolt

Ügyvivő Szakértő

Page 2: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0 ÓE NJSZK 2

Page 3: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0 ÓE NJSZK 3

Page 4: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Miről lesz ma szó?

• A felsőoktatás szubjektív célja

• Történetek

– Green Code

– Kockanap 2013: Laby/Mario

– Kockanap 2014: SpaceBattle

– Kockanap 2015: DynaBlaster

– Kockanap 2016: Battle City

– Kockanap 2011: PizzaCompany

– IPCV 2012, Koblenz

• Szubjektív és érzelmekkel teli konklúzió

ÓE NJSZK 4

Page 5: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

A felsőoktatás célja?

„Az informatikaoktatás teljes szemléletváltására és megújítására van szükség”

(IVSZ, 2015/16, „Kutatás az informatikus munkaerőhiányról”)

ÓE NJSZK 5

Page 6: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

A felsőoktatás célja – Dr. Vámossy Ferenc

ÓE NJSZK 6

Page 7: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

A felsőoktatás célja - szerintem

• A BSc képzés elsődleges megrendelője: az ipar (… és részben az MSc/PhD képzés)

• Az MSc képzés elsődleges megrendelője: az egyetemek, tudományos élet, és természetesen itt is az ipar

• Személyes céljaim

– Ipari szempontból hasznos tudást átadni

– Ipari szempontból hasznos NÉZŐPONTOT átadni

– A fejlesztői munka CSAPATMUNKA jellegének hangsúlyozása

– KARBANTARTHATÓ KÓD, mindenek felett

– … És ezeknek a megjelenése a hallgatói CV-ben

• De sok minden a hallgatón múlik! ÓE NJSZK 7

Page 8: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

A felsőoktatás célja - szerintem

• A CV-ben nem elég a „végigcsináltam a BSc képzést” sor

• Szükséges „extrák”:

– Nem hétköznapi órai projektfeladat

– Nyári egyetemek

– Erasmus

– Szakkollégium (!)

– TDK/OTDK

– Nem hétköznapi szakdolgozati téma/kidolgozás

– Nyelvtudás, egyéb személyes kompetenciák

• Programozási versenyen való részvétel

ÓE NJSZK 8

Page 9: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Szervezzünk programozási versenyt!

„Elképzelhetetlennek tartom, hogy én valaha is egy ilyen dolog szervezésében aktívan részt vegyek…”

(Szabó Miklós Zsolt, a 2011-es kockanap után)

ÓE NJSZK 9

Page 10: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Green Code – így megy külföldön

• Franciaország, ESAIP, 2015-16

• Nehéz feladat helyett könnyű feladat profi megoldásán van a hangsúly

• 48 óra

• Minél optimálisabb megoldás

– Memória

– CPU = Watt

– Storage bytes

– Transfer bytes

• Nagy támogatók, sok résztvevő, nagy díjak: San Francisco, Silicon Valley

ÓE NJSZK 10

Page 11: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Green Code – így megy külföldön

• 2015

– Téma: Web

– Image slideshow (JS + szerveroldal)

– jQuery mobile + minification + minimal non-framework backend

• 2016

– Téma: IoT

– Adattovábbítás több eszközön keresztül

– Linux + Windows megvalósítás is

• 2017

– A szervező sajnos elhagyta az egyetemet…

ÓE NJSZK 11

Page 12: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Programozói verseny – szervezői oldalról

• Nagyon sokszor egy személyes projektek

• A szerveroldal teljes fejlesztői feladata a főszervezőre hárul full stack fejlesztés, mindegyik program

• A nagyobb versenyeken több szervező, megosztott feladatokkal

• Nálunk Kurzi Zsombor akkori MSKK vezető (és főisten) indította 2010. tavaszi félévben

• Programozói tapasztalattal, verseny-résztvevői tapasztalattal, cél az ipari személetmódok és a csapatmunka készségek intenzív használata és fejlődése

ÓE NJSZK 12

Page 13: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Kockanap, Kockanap Inside

• WinTheWeb / MS Imagine Cup mintájára

• 24 órás, „bentlakásos” szoftverfejlesztés

• A feladat nehezebb, bonyolultabb tudást igényel, a cél valamilyen AI fejlesztése

• Csapatmunka mindenek felett!

• Egy versenyen többet lehet tanulni, mint egy félév alatt? Talán nem, de mindenképp NAGYON sokat!

• Kockanap Inside: 2010. telén még „LAN party”, 2014-től belső programozási verseny csak NIK-es hallgatóknak

ÓE NJSZK 13

Page 14: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Kockanap 2013, Laby

ÓE NJSZK 14

Page 15: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Alapvető kérdések

• Platformfüggetlenség Kommunikáció SOAP/WCF (Teljesítmény szempontjából nem a legjobb döntés)

• Nehézség ki a célközönség? Közepes

• Kisfeladatok, bónuszok kevésbé unalmas Nincs rá idő, ez probléma… (a változatosság csökkenti a monotonitást)

• „Jó” játék a végén ez a lényeg! Mario! (Na jó, Prehistorik2 / Commander Keen, de az túl nehéz)

• Cooperative mode nem működik

• Magic words = fun

ÓE NJSZK 15

Page 16: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Tervezés

ÓE NJSZK 16

Page 17: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0 ÓE NJSZK 17

Page 18: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Kockanap 2014, Space Battle / nano war

ÓE NJSZK 18

Page 19: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0 ÓE NJSZK 19

Page 20: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Classes, classes, classes…

ÓE NJSZK 20

Page 21: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Protokoll!

ÓE NJSZK 21

Page 22: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Space Battle

• TCP protokoll, stabil, de erőforrás-igényes

• „The user is always evil” (PHP gyakorlaton) – ha nem is „evil”, de mindig a legrosszabbra kell készülni, még itt is

• Kisfeladatok (Pintér Ádám!!!)

– MoveSpeedMultiplier=1

– ShootDistanceMultiplier=1,5

– IncTimeMultiplier=2

– RadarStrengthAdder=0

• Biztonságos szálkezelés: bonyolult!

• Kockanap Inside: Sok, LÁTVÁNYOS megoldás VAN ÉRTELME!!!

ÓE NJSZK 22

Page 23: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Space Battle – Az intelligens megoldás nyer?

• A „józan paraszti ész” nagyon sokat segít!

• A sok gondolkozás helyett a gyors döntések jobban bejönnek

• Sok kis felfedező-hajó = TCP flood

• A késleltetett és töredékes információ-morzsák kiegészítése bonyolult, ez a feladat nehézsége

• A látványos megjelenítés nagyon fontos!

ÓE NJSZK 23

Page 24: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Kockanap 2015, Dynablaster / Bomberman

ÓE NJSZK 24

Page 25: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Saját DynaBlaster

ÓE NJSZK 25

Page 26: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0 ÓE NJSZK 26

Page 27: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

DynaBlaster

• Szálkezelés: „Synchronization bottleneck”

• TCP Multicast UDP Switch??? Quick Unicast UDP

• Game Communication megfeleltetés LOOSE COUPLING!!!

• Ezúttal is töredékes információmorzsák, de XML helyett a bytestream-szintjén sorszámozott UDP csomagok

• Látványos megoldások, de itt tényleg a brute force teljesen jó: „hátha talál” (+ Tie breaker: robbantások)

• Bonyolult pályatervezés és pontatlan jósolás helyett „egyszerre csak egy mozgás” volt a nyerő

ÓE NJSZK 27

Page 28: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

DynaBlaster

ÓE NJSZK 28

Page 29: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Kockanap 2016, Battle City

ÓE NJSZK 29

Page 30: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

ÓE NJSZK 30

Page 31: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Battle City

• Jól megtervezett, full-unicast UDP protokoll (a versenyző csinálja a szervert!)

• Szinte lag-free kommunikáció, szuper packet counter

• Tie breaker: mozgások

• A legjobb AI közel utolsó lehet, ha nincs felkészítve pont arra a pálya-típusra: „Erre pont nem gondoltunk”, pedig csak egy falon kellett volna átlőni …

• A brute force megoldás nem annyira jó, de miért kellene 20 tölténnyel várni a játék végét? Csak 1 csapat gondolt rá…

• Videók!!! (Ozsvárt Károly)

ÓE NJSZK 31

Page 32: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Kockanap 2011: Pizza Tycoon

• Zsombor utolsó kockanapja. Az én első kockanapom (én csak „játszani” voltam ott )

• Szimulált város, úthálózattal, lakókkal

• Fix kezdőösszeggel, random helyen, 1 motorral kezd

• Random bejövő rendelések, aki előbb begyűjti a megrendelést és pizzát visz oda, pénzt kap

• Vásárolható motorok / teherautók a cég növekszik

• A cégek versenyét szimultálta a játék

• Elnézést … Szimulálta volna

ÓE NJSZK 32

Page 33: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Problémák

• Fizikai hálózati gondok (UTP kábel, switch)

• A résztvevők nem partnerek (DHCP szórás a publikus hálózat irányában, virus-like flood)

• A backup router sem működik

• A backup backup router működik, majd mégsem

• A backup router mégis működik, majd mégsem

• A szerverprogram stabil… Amíg senki sem csatlakozik rá

• A kliensek egymással tudnak kommunikálni… Többnyire, de internet az nincs

A „végig csak játszunk” ígéretet nem sikerült betartani, helyette „Ilyet? Soha többé…”

ÓE NJSZK 33

Page 34: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Mi változott 2012-ben?

• IPCV 2004 @ St.Etienne IPCV 2006 @ Budapest IPCV 2008 @ Joensuu IPCV 2012 @ Koblenz …

ÓE NJSZK 34

Page 35: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Csináljunk programozási versenyt…

• OCR témakör

• Digitális betűket felismerni képről, 257 lehetséges font

• Webes backend: random betű-összeállításban, shiftelve, forgatás nélkül kapnak egy 4 karakteres szöveget. Válaszként vissza kell küldeni, hogy milyen szöveget kaptak

• Tanítási fázisban megkapták az összes font összes lehetséges karakterét, képben (5461 BMP file)

• „solving these tasks during 150 minutes is not that trivial. Always focus on simplicity; it is much more important than the complexity of the code. Don’t fall into the trap of trying to create a perfect solution: you will run out of time!”

ÓE NJSZK 35

Page 36: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

EGYSZERŰ elvárt működéssel …

ÓE NJSZK 36

• 3 óra alatt, az elvárt pontosság maximum 25% volt

• A verseny megadott ideje alatt 30 ponttal nyerni lehet

• A hallgatók nem mindig az elvárások szerint működnek…

Page 37: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

BONYOLULT megoldásokkal!

• Nem teljesen az elvárások szerint alakult… Sok olyan hallgató, akinek a 25%-os pontosság nem elfogadható

• Nem érdekelte őket, hogy vége a gyakorlatnak…

• HAT órányi programozás után a versenyzők még nem akarták abbahagyni !!!

• A verseny során az első helyezett csapat 184 pontot ért el, egy otthonról még este is dolgozó csapat 205 pontot

• Az előre elvárt pontszám 683 %-a! Körülbelül 60-80%-os pontossággal működő felismerési arány, ami az előre tippelt két-háromszorosa!

• A kötelezően rászánt idő kétszerese alatt!

ÓE NJSZK 37

Page 38: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Idézetek

• „Mi a fészkes fenének szenvedek én itt a felsőoktatásban a jobban fizető programozói munka helyett???”

• „Sehol sem a minimum elérése volt a cél, hanem az, hogy megfeleljenek a saját elvárásaiknak. Vannak ilyen hallgatók is”

• „Hogy miért? Mert senki sem kelt föl. Mert vitte őket a lelkesedés. Mert programoztak tovább. Mert vannak ilyen hallgatók is. Ezért!!!”

ÓE NJSZK 38

Page 39: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Idézetek

• „Köszönettel tartozom az IPCV2012 minden résztvevőjének és szervezőjének, hogy ezt megtapasztalhattam”

• Éppen úgy, mint a Kockanap verseny alapítójának (Kurdi Zsombor) és örök segítségemnek (Pintér Ádám), a szervezésben a HÖK-nek és a karnak

• De elsősorban: köszönettel tartozom azoknak a hallgatóknak, akiknek nem elég, ha az önéletrajzukban csak annyi szerepel, hogy diplomát szereztek

• Miattuk van értelme a munkánknak!!! Mert egy jó CV-t akarnak…

ÓE NJSZK 39

Page 40: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0

Köszönöm a figyelmet!

ÓE NJSZK 40

Page 41: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

V 1.0 ÓE NJSZK 41

Page 42: Extrák az önéletrajzban (programozási versenyekkel)njszk.uni-obuda.hu/wp-content/uploads/2017/02/fsf_szabo...•24 órás, „bentlakásos” szoftverfejlesztés •A feladat nehezebb,

42 ÓE NJSZK