Projektarbete

Deadline 14:e november 23:55

Projektarbetet består av flera delar som alla är obligatoriska. Vissa delar utförs vid specifika tidpunkter men i övrigt bestämmer ni själva i vilken ordning som ni utför dem och i vilken utsträckning ni jobbar på dem parallellt.

Projektarbetet går ut på att implementera ett GUI-program med C# och Windows Forms som simulerar en nätbutik. Utöver en liten mängd gemensam funktionalitet bestämmer ni själva hur ert program ska vara utformat och vilken funktionalitet det ska ha. Ni bestämmer också själva vad som ska säljas i nätbutiken och har här möjlighet att anpassa projektet till era egna intressen.

Del 1: gemensam funktionalitet

Följande funktionalitet måste finnas i ert program och måste visas upp för användaren genom ett GUI om inget annat anges:

Viktigt: Ovanstående punkter är den enda funktionalitet som måste finnas med i alla inlämningar, men det är inte all funktionalitet som krävs för att få godkänt. För att få godkänt måste även allting under de övriga delarna utföras.

Nedan följer några punkter som inte ingår ovan:

Samtliga av dessa punkter skulle dock kunna implementeras i form av egna utökningar, som beskrivs i nästa del.

Del 2: egna utökningar

Utöver den gemensamma funktionaliteten ska ert program också innehålla utökningar som ni själva bestämmer över. Ni ska göra så många utökningar som ni behöver för att uppvisa kunskap i de flesta (men inte nödvändigtvis exakt alla) av kursens innehållsområden.

De innehållsområden som innefattas är följande:

De innehållsområden som täcks in av lektionerna efter projektarbetets start innefattas inte i det som ni förväntas ta med i ert program, men om ni vill så kan ni välja att ta med dessa ändå. I såna fall kommer ert arbete på dessa innehållsområden att ingå i betygsättningen precis som resten av programmet, men i utbyte har ni då möjlighet att betona dessa innehållsområden framför några av dem från tidigare lektioner.

Del 3: dokumentation

Ni ska dokumentera ert program på följande sätt:

  1. Skriv ett dokument på max två A4-sidor som beskriver hur ert program fungerar på hög nivå: vilken slags data det jobbar med, vilka de viktigaste klasserna och metoderna är och hur de olika delarna av programmet interagerar med varandra. Syftet med detta dokument är att jag ska förstå var i koden jag ska titta för att se hur något utförs. Skriv max två sidor. Om ni behöver mer utrymme än det så tyder det på att ni beskriver programmet på för låg nivå och istället behöver beskriva det på högre nivå. Spara denna dokumentation i filen Overview.txt eller Overview.pdf i projektmappen.
  2. Om någon del av er kod (exempelvis en klass, en metod eller enskild rad) gör någonting på ett ovanligt eller svårförståeligt sätt, skriv en kortfattad kommentar direkt ovanför koden som förklarar vad den gör och varför. Gör detta enbart för sånt som inte påverkar programmet i sin helhet utan bara klassen/metoden/raden i sig. (Om er kommentar förklarar hur programmet beter sig på hög nivå så ska den inte ligga i koden utan i dokumentet som beskrivs i föregående punkt.) Syftet med dessa kommentarer är att jag ska kunna läsa igenom er kod utan att fastna på avsnitt som är svåra att förstå.
  3. Om ni vill ha chans till betyget VG, skriv ett dokument på max en A4-sida som beskriver de viktigaste designbesluten som ni tog angående kodens struktur samt de för- och nackdelar som ni såg med dessa. Ni kan resonera dels utifrån era egna erfarenheter och dels utifrån egenskaper som ni har läst om i kursboken och andra källor. Skriv max en sida. Om ni behöver mer utrymme än det så tyder det på att ni beskriver er design på för låg nivå och istället behöver beskriva den på högre nivå. Spara denna dokumentation i filen Design.txt eller Design.pdf i projektmappen.

Del 4: presentation

Under kursens sista vecka ska ni genomföra en kortfattad presentation av ert program inför klassen. Syftet med denna presentation är att jag ska få en överblick av hur ert program fungerar samt att klassen ska kunna se hur olika grupper har löst liknande problem.

Presentationerna äger rum på torsdag den 16:e november.

Del 5: muntlig tentamen

Den muntliga tentamen är en liten del av den totala bedömningen och är främst till för att komplettera sånt som inte framgick av er inlämning, samt för att underlätta bedömningen av enskilda insatser i de projektgrupper som består av flera deltagare.

Det enda som ni behöver förbereda till den muntliga tentamen är att ha koll på de olika delarna av er kod, vilka beräkningar som utförs var och hur era olika klasser och metoder interagerar. Om ni arbetar i en projektgrupp med flera deltagare och har valt att dela upp ansvaret för olika filer/klasser/metoder så behöver inte varje person ha detaljkunskap om hela kodbasen, men ni måste ha översiktlig kunskap om all kod i ert program. Det bästa sättet att skaffa detta är att inför den muntliga tentamen be er gruppkamrat att förklara de delar av koden som ni själva inte skrev, och vice versa.

Den muntliga tentamen äger rum på måndag den 20:e november. Ni bokar tider till den via PingPong under Verktyg > Inbjudningar. Ha med en dator med källkoden till ert projektarbete.

Notera att datumet på den muntliga tentamen har ändrats på grund av EU-toppmötet. Det är alltså den 20:e november som gäller, inget annat. Tiderna som går att boka i PingPong reflekterar detta.

Inlämning

Deadline för projektarbetet är den 14:e november klockan 23:55. För att lämna in ert arbete, följ dessa instruktioner:

  1. Se till att alla textfiler som ert program läser in (produkter, rabattkoder och eventuella egna utökningar) innehåller lämplig exempeldata, så att programmet kan köras utan att ändra på filerna.
  2. Se till att alla textfiler som ert program läser in ligger i projektmappen och öppnas med relativa sökvägar. (Om ert program exempelvis öppnar en fil med en sökväg som börjar på C:\ så behöver det ändras.)
  3. Se till att filen Overview.txt eller Overview.pdf finns i projektmappen. Denna fil beskrivs under Dokumentation. Endast .txt och .pdf är tillåtna.
  4. Om ni vill ha chans till betyget VG, se till att filen Design.txt eller Design.pdf finns i projektmappen. Denna fil beskrivs under Dokumentation. Endast .txt och .pdf är tillåtna.
  5. Öppna ert projektarbete i Visual Studio och kör kommandot Build > Clean Solution.
  6. Stäng ner samtliga instanser av Visual Studio.
  7. Öppna mappen på datorn som innehåller era Visual Studio-solutions (vanligtvis C:\Users\[användarnamn]\source\repos).
  8. Högerklicka på mappen som innehåller ert projektarbete och välj Send to > Compressed (zipped) folder.
  9. Extrahera ZIP-filen till valfri plats på datorn och öppna .sln-filen i den.
  10. Kör programmet i Visual Studio och bekräfta att allting fungerar som det ska.
  11. Lämna in ZIP-filen via PingPong.

Om ni misslyckas med något av stegen, kontakta mig i god tid före inlämning.

Följ instruktionerna noga! Om er inlämning är felaktig så kommer jag inte att kunna bedöma och betygsätta ert arbete.

Betygsättning

De möjliga betygen för projektarbetet är G och VG, och ni som får VG på projektarbetet kommer också att få VG på kursen i sin helhet (förutsatt att ni har fått G på alla andra kursmoment). Betygsättningen sker individuellt och kan alltså skilja sig mellan deltagare i samma projektgrupp.

De fullständiga betygskriterierna finns i kursplanen, som är den officiella och fullständiga beskrivningen av vad som gäller för både projektarbetet och kursen i sin helhet. Det som följer är några tips på vad ni bör fokusera på för att kunna få det betyg som ni siktar på i projektarbetet och i förlängningen kursen i sin helhet:

Övrigt