Kedves Hallgatók, Laborvezetők!
Megszületett a várva-várt "interkurzus" megállapodás, bár a sillabuszt még nem tudtam frissíteni, de íme a lényeg a közös számonkérés kapcsán:
- mindhárom kurzus bead 16 feladatot március 15-ig a közösbe
- a közös feladatokból történő beszámolás a laboraláírás feltétele
(néhány részletet majd küldök magánban a Neptunban). Ennek a beszámolásnak a lebonyolítása, maga a kurzus és a vizsgák már a kurzus saját belső hatáskörébe tartoznak.
Laws of the game
Jöjjenek most az idei játékszabályok, ahol feszültség van a sillabusz és a jelen szereplők között, ott ez a poszt az irányadó! Először is a nyelv C++ lesz (Retreat, Hell**)!!! Ennek kapcsán tankönyvként két könyvet mérlegeltem:
Az első mellett az szólt, hogy abszolút a kezdőket célozza és sokkal populárisabban van megírva, mint a második, amely jóval szakmaibb a kezdő olvasónak. Viszont a második magyarra is le van fordítva, míg az első még angolul sincs meg az ország egyetlen könyvtárában sem... Hoppá! (Most megrendeltem, de ez az idén már nem számít.) Az elsőhöz van fóliasó, a második számos példányban elérhető a könytrárban... tehát nem egyszerű a választás. Illetve ajánlható könyv még a Szoftverfejlesztés C++ nyelven c. könyv. S persze az alap C könyv, a K&R.
Azt próbáljuk ki, hogy az előadás fő sodorvonalát az említett 2. könyvből (a továbbiakban csak KÖNYV) vetítjük, s ezt esetlegesen kiegészítjük a korábbi fóliasónkkal. A laborok munkáihoz pedig esetlegesen fellapozhatjuk a többi említett könyvet, vagy adott példánál a Páternosztert (a továbbiakban PP), illetve az alábbi könyvek valamelyikét.
A laborok
A laborok anyaga közös minden laborra, s előre ki fogom tenni őket ide egy poszt formájában, most az ismert okból nyilván van egy kis késés. Illetve a laborok alapszerkezete is közös: a laborvezető szúrópróba szerűen ellenőrzi, hogy a hallgatók olvasták-e a kötelező olvasmányt (ha nem, akkor egy fél hiányzást könyvelünk el), majd közösen feldolgozzák az aktuális poszt tartalmát. Nincs semmilyen papíros ZH, hanem a laborközösség előtt 2 programot kell védeni, az egyiket (humán genomos) a félév közepén, a másikat (robot- vagy kvantumfocis) a félév végén. Illetve a közös kötelezettségnek eleget téve az utolsó 5 labor valamelyikén a hallgató 3-at húz a közös feladatokból és ezekből az egyiket kell megoldania/bemutatnia a helyszínen (természetesen bármit használhat e közben is, mint ahogyan bármely számonkéréskor a kurzusban). A két sztenderd védés és a közös védése is ismételhető persze.
Jegymegajánlás
Létezik hagyományosan: az adott határidőig legtöbb pontot gyűjtő hallgató jelest kap. A feladatok pontszáma itt lesz a blogon, illetve a laborvezető a labormunkát serkentő felajánlásokat tehet, pl. "az első 3 aki megcsinálja, 4 pontot kap". A posztokban adott feladatok hatóköre az adott hét (de figyeld a kommenteket, mert ha mást nem mondunk, akkor mindig az első hármat pontozzuk), a laborvezetők által kiadott az adott nap. Nincs központi pontnyilvántartás, hanem elosztva: minden hallgató tartson nyilván magára egy "mikor, mennyit, mire" táblázatot és ha elszámolási vita van, akkor ezt kell elküldenie nekem. Illetve amikor valaki pontot szerez, az egy kommentben aktuálisan jelezze és ezeket fogom időszakosan itt jobb oldalon szerepeltetni. Egy pont két fél-hiányzást válthat ki, nem fizikai hiányzást, hanem olvasmány vagy feladat nem tudási "fél hiányzást".
Hallgató is pontoz hallgatótA kurzus közösségét erősítendő: aki a posztok kommentjeiben kérdez és kielégítő választ kap, az a választ adónak adhat egy pontot! (Ha elfogadjuk persze, szóval valódi kérdés, valódi válasz kell nyilván.)
Binom rendszerA laborközösségben mindenkinek legyen egy párja, akivel "együtt" olvassa a könyvet, a feladatok egy részét együtt készíti.
További kedvezmények- 100 pont felett: +1 jegy az elégtelentől különböző írásbelin vagy szóbelin, a szóbelin 3 tétel elkerülhető.
- 200 pont felett: +1 jegy az elégtelentől különböző írásbelin vagy szóbelin, a szóbelin a tételek fele elkerülhető.
- 300 pont felett: +2 jegy az elégtelentől különböző írásbelin vagy szóbelin, a szóbelin 2 tételből kell húzni.
Az első labor
Ismerkedjünk meg a teremmel, milyen szoftverek vannak stb. Ha valamit hiányolunk (szövegszerkesztő, IDE stb), jelezzük és kérjük a rendszergazdáktól. Itt egy virtuális VB image, amiben minden menni fog: Batfai_Prog1
(Ezen a héten a csúszás miatt az esetleges feketéket ("fél-hiányzás") még ne könyveljük.) A KÖNYVből olvassuk el a (18-i) hétre
- a 3-25 oldalt
- a 25-37 oldalt
együtt e két blokkból mindenki 3 olyan dolgot kérdezzen meg a binomjától, amelyet nem ért, a binom pedig próbáljon meg válaszolni. A szúrópróbaszerű ellenőrzésen ezt a levélváltást kell bemutatni a laborvezetőnek. Globális ellenőrző kérdések:
- C++-ban bevezethetünk-e változót például a for utasításban?
- mond-e olyat a szerző, hogy a K&R C könyv minden progija C++ progi?
Az első labor feladatai, poszt-pontjai
Az a gyakorlat, hogy aki előre elvégzi a laborra tervezett feladatokat, az megkapja a pontot, s ettől függetlenül a laboron mehet a bajnokság a feladatok kapcsán.
- Vegtelen feladat: C vagy C++ végtelen ciklust írj! A legszebb (ezt a laborvezető saját szempontjaiból zsűrizi) 3 1 pont.
- Kétféle végtelen: írj két végtelen ciklust, az első alig pörgesse a procit, a második 100%-on (a top paranccsal ellenőrizendő a CPU használat, ha több mag van, akkor press '1' benne). (help PP 27. oldaltól) Az első 3 3 pont.
- Az első celebráció: aki a PP 25 szohossz.c progiját elmagyarázza a laborközösség előtt, annak 5 pont üti a markát.
- Másik könyv, chapter 2: egy pont, aki lefordítja, lefuttatja a 2. fejezet progiját.
- 105: válaszold meg a "régi" prezi 105. fóliáját! (2 pont) /help/
- 106: válaszold meg a "régi" prezi 106. fóliáját! (2 pont)
- 107: válaszold meg a "régi" prezi 107. fóliáját! (2 pont)
- KÖNYV 25 oldal: gépen próbáld ki Stroustrup könyv 25. oldalán kezdett vermes példát 3 pontért:
stack.h
namespace Stack // felület { void push ( char ); char pop (); }
stack.cppnamespace Stack // megvalósítás { const int max_size = 200; char v[max_size]; int top = 0; void push ( char c ) { /* túlcsordulás ellenõrzése NÉLKÜL és c behelyezése */ v[top++] = c; } char pop () { /* alulcsordulás ellenõrzése NÉLKÜL és a legfelsõ elem kiemelése */ return v[--top]; } }
user.c#include "iostream" #include "stack.h" int main () { Stack::push ( 'c' ); if ( Stack::pop () != 'c' ) std::cout << "lehetetlen"; return 0; } norbi@colossus:~/Documents/P1$ g++ stack.cpp user.c -o user
norbi@colossus:~/Documents/P1$ ./user
norbi@colossus:~/Documents/P1$
Lényeges, hogy ne essünk pánikba! Különben pedig: "Imádni fogjátok a C++-t, egy emberként, tiszta szívből 4"***. Kapcsoljátok be a gépet, mehet a zene és végre indulhat a programozás!!!
*: Enrico Fermi: http://en.wikipedia.org/wiki/Enrico_Fermi
**: szinkron: "Vissza? Soha!", http://www.imdb.com/title/tt1217613/, Battle Los Angeles
***: "Imádni fogják a légiót, egy emberként, tiszta szívből", www.imdb.com/title/tt0126388/
Az utolsó 100 komment: