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.

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å. Projektet ger också en chans att öva lite mer inför omtentan i juni och bör därför genomföras så att alla får en vettig programmeringsuppgift att utföra. Det är alltså inte fullt så viktigt för er som redan klarat tentan att ta på er den största programmeringsdelen.

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

* Nätverkskommunikation mellan (minst) en klient och en server

* 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.


Starta terminaler med olika färg eller storlek

Lite information om hur man kan starta terminaler med "rätt" storlek direkt. Dessutom lite information om hur man kan göra detta utan att skriva allt varje gång (hur man skapar ett såkallat startscript).


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 ...)

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):

Luffarschack (fem i rad)
Fyra i rad (droppa ner brickorna)
Master Mind (fyra färger räcker)
Sänka skepp
Othello
Yatzy
Fia (med knuff)
Poker (Texas Holdem)
Sokoban
Memory
Schack (har lite för många regler, men ...)
Kalaha
Andra brädspel ...

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.

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):

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
Något PacMan-likt (två användare ...)

Sidansvarig: Torbjörn Jonsson
Senast uppdaterad: 2014-01-14