Göm menyn

TDDD11 Programmering, grundkurs

Projektmaterial


Allmänt om projektet (vad det skall innehålla m.m.)

I projektet är det meningen att ni skall arbeta i grupper om 3-4 personer. Det optimala är 4 personer per grupp. Ni behöver inte arbeta i samma grupperingar som i labserien utan kan bilda grupper fritt inom klassen. Vi kan gå med på att ni bildar grupper som korsar klassgränser, men då måste ni kolla med assistenterna i era respektive klasser så att inte det blir väldigt sned belastning mellan assistenterna.

I år tänker vi även tillåta lite större grupper (5 personer). I dessa fall måste dock ett lite större/svårare projekt väljas, se "lätta" och "medelsvåra" i listan nedan.

Då projektet bygger på eget arbete och att laborationsdelen i kursen är avklarad är det lämpligt att grupperna bildas så att de som ingår i gruppen ligger på samma nivå. Det rekommenderas starkt att ni som inte klarat tentan bildar egna grupper så att projektet genererar så mycket övning som möjligt innan omtentan i juni.

I det projekt ni skall genomföra skall följande delar finnas med:

* Nätverkskommunikation mellan (minst) en klient och en server, (där regler och kontroller skall ligga hos servern).

* Protokoll (om det inte är givet) mellan klient(er) och server.

* Användargränssnitt som är "snyggt"

* Slutdokumentation (ett erfarenhetsdokument)

För att projektet skall godkännas skall följande moment redovisas för er assistent:

* Innan projektet startas: En kort projektbeskrivning som innehåller vilka gruppmedlemmar som ingår i projektet och vilket projekt ni tänker göra. Om det inte är något av de redan specificerade projekten måste ni dessutom beskriva projektet ur användarsynpunkt (hur går det till och hur skall det se ut för användaren när programmet körs). Förutom detta skall en första version av det protokoll som finns mellan klient(er) och server lämnas in.

* Under projektets gång: Håll kontakt med er assistent så att han/hon vet hur ni ligger till. Detta kan ske genom att skicka ett brev (e-post) med en kort beskrivning av vad ni gjort sen sist samt hur mycket tid ni lagt ner (per person). Om ni har problem med något under projektet kan ni kontakta er assistent och boka tider.

* Redovisningstillfälle = Deadline: I ert schema finns ett par pass i slutet av perioden där det står RE. Dessa pass är till för att redovisa projekten. Under detta tillfälle kommer alla assistenter att finnas närvarande. Här kommer assistenterna att gå igenom er programkod (snabbt och utan alltför mycket omsorg) för att se om den verkar vettigt strukturerad.

* Slutdokumentation: Denna ska skickas till assistenten.

Erfarenhetsdokumentet skall innehålla era egna synpunkter om vad som fungerat bra och mindre bra i ert projekt samt en sammanställning av hur mycket tid som lagts ner på de olika delarna (per person). Deadline för slutdokumentationen är samma dag som omtentan i juni.


TJa-biblioteket (fungerar endast på IDA)

Observera att detta paket inte är något som finns tillgängligt utanför IDA. Det är heller inte så att det skall användas till något komersiellt då det i vissa fall är rent olämpliga konstruktioner som ligger i "botten". Det fungerar dock i våra nybörjarkurser.


Projektförslag (det är tillåtet att komma på egna, men tag då kontakt med examinator/assistent ...)

Det viktiga är att projekten har en given turordning. Om spelet kräver att användarna måste kunna utföra saker parallellt med varandra eller med andra saker som händer (t.ex. att figurer flyttar runt på skärmen) kommer det att behövas parallella processer. Processhanteringen ligger utanför denna kurs.

Här följer diverse projekt som kan vara rimligt stora (utan processhantering). De projekt som står under "superlätta" kräver så pass liten arbetsinsats att det är rimligt att man gör ett sådant "extra fint". T.ex. genom att ha en vacker välkomstskärm, en highscore-lista, fuskkoder eller någon annan personlig touch. Bolla de idéer som ni har med er assistent. Vissa av spelen nedan har vi fysiska exemplar av och kan temporärt få lånas.

"Superlätta" projekt
Luffarschack (fem i rad)
Fyra i rad (droppa ner brickorna)
Kalaha (Mancala)
Memory
Master Mind (fyra färger räcker)
Lätta projekt
Sänka skepp
Othello
Yatzy
Blackjack
Uno
No Thanks!
Coup
Stratego
Domino
Love Letter
Medelsvåra projekt
Kinaschack
Fia med knuff (Ludo/Sorry!)
Poker (Texas Holdem)
Schack
Backgammon
Risk
Catan (spelet tidigare känt som "Settlers")
Agricola / Power Grid / Puerto Rico (euro-spel)
King of Tokyo
Shogun / Wallenstein
Ca$h'n Guns
Sokoban (1 klient, servern har highscores)
OBS! Om ni skall hålla på med processer får ni klara er på egen hand då det inte finns krav på detta i kursen.

Här följer ett par lite enkla varianter av projekt som kan vara "rimligt" stora (det kommer garanterat att ta mer tid än de ovanstående projekten) om man har lite mer erfarenhet (observera att alla i gruppen bör vara lite erfarna):

Svåra projekt
Masken (två användare räcker)
Tetris (två användare räcker)
Pong (två användare räcker)
Space invaders (två användare räcker)
Rally (två användare räcker)
Arkanoid / Breakout
Något PacMan-likt (två användare ...)

Om någon vill ge sig på detta (vilket endast rekommenderas till studenter med lite mer erfarenhet) går det bra, men isåfall vill vi varmt rekommendera att först genomföra åtminstone en del av den laboration vi kallar för "laboration 7". I denna laboration skapar man en enkel "chat" som sen kan byggas ut om man vill.

Vi har även en lista på mycket svåra projekt som vi gärna skulle vilja se utförda.

"Mycket svåra" projekt
The Sims on Kravall
Minecraft 4D
Final Fantasy XXVI-3

Sidansvarig: Torbjörn Jonsson
Senast uppdaterad: 2016-04-05