---
# System prepended metadata

title: Slutprojekt programmering 2

---

# Slutprojekt programmering 2

Nu är det dags för ett sista projekt i programmeringskursen. Här får ni frihet att utveckla något som ni tycker verkar roligt och spännande, samt visa era kunskaper inom Java och objektorienterad programmering.

![image](https://hackmd.io/_uploads/rJ7laUija.png)

### Bedömning
I bedömningen kommer jag titta på:

* planering av projektet med hjälp av UML diagram
* komplexitet
* användning av de verktyg vi har lärt oss i kursen: filhantering, internetkommunikation, generiska klasser
* användning av objekt orienterad programmering
* kodstil
* utformning av interaktion med användaren
* programmets funktion
* felsökning och problemlösning
* utvärdering av programmet


### Idéer

Här är några förslag på olika idéer som kan göras både med grafik (med swing) eller som en ren konsol-applikation. Man får gärna komma med en helt egen idé, men kolla med Johan för att se om den är görbar!

Olika slags spel:
* snake
* memory
* breakout
* variant på RPG-spelet vi arbetade med tidigare
* rougelike med ascii-grafik, till exempel med [detta bibliotek](https://github.com/trystan/AsciiPanel)

Övriga projekt:
* todo-list
* anteckningsapp
* tränings-schema
* betting-system för vänner
* fantasy-football

### Planering

Innan ni börjar koda ska ni planera ert projekt med hjälp av UML-diagram. Planeringen är något ni ska lämna in tillsammans med koden. I planeringen ska det finnas:

* En kort beskrivning av vad projektet innebär
* En lista på features som är *krav* och som är *önskemål*
* Ett översiktligt UML-diagram över klasserna i projektet. Gör diagrammet för hand eller med ett digitalt verktyg, till exempel https://www.drawio.com/ 

### Tidsplan

| Vecka | Innehåll | 
| -------- | -------- | 
| 8     | Planering och UML-diagram     | 
| 9     | Sportlov     | 
| 10     | Eget arbete    | 
| 11     | Eget arbete + avstämning     | 
| 12     | Eget arbete     | 
| 13     | Deadline och redovisningar    | 