Projekt

Kursens projekt är en programmeringsuppgift som genomförs väsentligen utan handledning och utan detaljerade anvisningar. Får utföras av två personer tillsammans eller enskilt. Om två personer jobbar tillsammans ska båda kunna redogöra för programmets alla delar. Projekt för betyg A är större än kursens labbar men projekt för E behöver inte vara det.

Redovisning

Projektet redovisas som en vanlig labb men vi avsätter minst 20 minuter för varje redovisning. Information om tidsbokning kommer senare.

Vi kommer att erbjuda bokningsbara redovisningstider i vecka 2 i januari. Men är du klar i december så är det bara kontakta vahid@kth.se för att boka redovisningstid. Om du inte blir klar med projektet inom kursens gång, d.v.s. senast vecka 2 i januari, så får du redovisa projektet i början av juni i samband med labbveckan. Om du inte är klar med projektet innan höstterminen 2025 så får du välja en ny projektuppgift ifall det projektuppgift du valt är borttaget från projektuppgifterna.

Tänk på följande inför redovisningen:

  • Ha UML-diagrammet till hands vid redovisningens början, gärna så att man kan se diagrammet samtidigt som program-demo eller programlistning.
  • Förbered redovisningen genom att planera hur ni ska berätta översiktligt om programmet och vem som ska berätta om vilken programdel. Båda gruppmedlemmarna ska vara beredda att svara på frågor om alla programdelar.
  • Om ni bokat tid men inte kan komma så AVBOKA förstås.

 

UML

UML-klassdiagram ingår i alla projektuppgifter. Små hjälpklasser som String och ArrayList behöver inte tas med. Markera metoder (och ev. variabler) som används från andra klasser som public och ta med dem i diagrammen. Andra metoder och variabler kan utelämnas. Var noga med diagrammen! Det duger bra att rita för hand men rita tydligt och skriv läsligt.

Betygsättning

Betyg E, C eller A ges på projektet.  

Kvalitetskrav för alla betygsnivåer: Programmet ska bestå av flera klasser med olika ansvarsområden och väldefinierade gränssnitt (publika metoder). Kodupprepning får förekomma endast mycket sparsamt eller inte alls. Namn på variabler och metoder ska väljas så att de bidrar till att göra programmet tydligt. Använd gärna något designmönster! Vi kräver inte strikt att ni använder designmönster men en lämplig användning av ett sådant räknas som ett plus som kan kompensera för någon liten brist i programmet.

 

Projektförslag

Projektförslag 1: Projektförslag: Brownsk rörelse

Projektförslag 2: Projektförslag: Pac-Man-spel

Projektförslag 3: Projektförslag: Othello-spel

Projektförslag 4: Projektförslag: Tetris

Projektförslag 5: Projektförslag: 2048-spel

Projektförslag 6: Spelet Lines and dots

Projektförslag 7: Projektförslag: Intelligent schackbräde