Course syllabus

Kurs-PM

TDA367 / DIT213 TDA367 / DIT213 Objektorienterat programmeringsprojekt lp1 HT22 (7,5 hp)

Kursen ges av institutionen för Data- och informationsteknik

Mycket kursinformation presenteras i Föreläsning 1.

Ytterligare information om projektet presenteras löpande under "Modules" på den här sidan. 

Kontaktuppgifter

Kursansvarig & examinator: Jonas Duregård, jonas.duregard@chalmers.se, tel. 031 772 1028. Kontor i EDIT 6108. Kontakta mig helst via Slack (se nedan). 

Övriga Lärare:

  • Pelle Evensen
  • Beata Ringmar
  • Anwarr Shiervani
  • Imad Alihodzic
  • Martin Jonsson
  • Timothy Nilsson

Det finns ett slack-workspace för kursen här: 
https://join.slack.com/t/tda367-dit21322/shared_invite/zt-1eck309yo-VYHxuPFAucP7jkGdacYMgg

Slack är bästa sättet att få svar på frågor (direktmeddelande går bra), men givetvis kommer mail också besvaras. 

I Slack finns en kanal för varje grupp. Efter att ni gått med i en projektgrupp här i Canvas hittar ni er kanal (#projektgruppXY) under "All channels" i vänstermenyn i Slack. 

Kursens syfte

Kursen avser att ge kunskap om och övning i professionell utveckling av mjukvara genom praktiskt projektarbete. Kursen presenterar en enkel, testdriven, objektorienterad process. Begrepp som iterativ utveckling, objektorienterad analys och design, domän- och designmodell introduceras. Olika aspekter på design gås igenom: testbarhet, beroenden, krav, m.fl. Utifrån detta implementerar studenter, i grupper om 4 eller 5, ett projekt.

Officiella kursplanen hittar du här:

Schema

Notera att tiden för handledning är en rekommendation om när gruppen ska möta sin handledare. I praktiken handlar det om en tid på runt 45 minuter, som bestäms genom överenskommelse med gruppens handledare. Ni behöver alltså inte vara tillgängliga all den tid som visas i schemat. 

TimeEdit

Kursens upplägg

Vi kommer att ha:

  • ett mindre antal föreläsningar,
  • ett seminarium,
  • en kollegial granskning (peer review) av andras design och kod,
  • och några ‘workshops’.

Parallellt med detta genomför studenterna, i grupper om fyra/fem, ett fullständig utvecklingprojekt i form av ett mindre mjukvaruprojekt. I projektet ingår obligatoriska veckovisa handledarmöten och en muntlig slutpresentation.

Veckoplanering

Här är en (grov) översikt över kursen per vecka. Ämnena spiller förmodligen ut över från ena vecka till den andra.

(Läsvecka / Att göra och diskutera på veckomöte)

  1. Bilda grupp. Bestäm projekt, preliminärt GUI, user stories, prototypning, samt workshop Maven/Git
  2. Domänmodell, mer prototypning, samt workshop JUnit/Travis
  3. Designmodell (torrköra User Stories m.h.a. design modell); körbar (ev. i form av tester bara)
  4. Design, MVC
  5. Mer design, servicess hantering av resurser
  6. Bygga på mer funktionalitet, tester, kvalitetsverktyg, dokumentation
  7. Gör kollegial granskning och fortsätter med 6
  8. Samma som 6
  9. (Tentavecka): Slutredovisningar. Tider finns bokade i Timeedit, säg till om dessa funkar dåligt så kan vi kanske ordna det.

Lärandemål

Efter fullgjord kurs skall studenten besitta följande kunskaper, färdigheter och förmågor:

Kunskap och förståelse

  • Redogöra för arbetsmetodik i tekniska utvecklingsprojekt, speciellt mjukvaruprojekt.
  • Beskriva alla faser i ett utvecklingsarbete: problemidentifiering, problemformulering, användaranalys, specifikation, design, implementation, testning, utvärdering, etc.
  • Beskriva grundläggande koncept inom mjukvaruutveckling, t.ex. krav och utvecklingsprocess.

Färdigheter och förmågor

  • Genomföra ett mindre objektorienterat mjukvaruprojekt i grupp enligt fastställd utvecklingsprocess och tidsplan.
  • Dokumentera projektarbetet i form av en grundläggande kravspecifikation och ett enklare designdokument.
  • Tillämpa färdigheter från tidigare programmeringskurser, så som design-principer och -mönster, i en projektliknande miljö.
  • Använda moderna hjälpmedel för programutveckling t.ex. testramverk, ‘build automation’, och versionshanteringssystem.

Värderingsförmåga och förhållningssätt

  • Reflektera över god objektorienterad design och implementation i projektet.

Examination

Examination sker genom individuell bedömning av deltagande i grupparbete. Underlag för bedömningen är bland annat:

  • Aktivt deltagande i veckomöten med handledare. 
  • Synlig aktivitet i versionshanteringssystem. 
  • Självrapportering genom veckorapporter. 

Ett peer-review system där studenter "bedömer varandra" i gruppen kommer finnas, men inte användas direkt som underlag för betyg. 

Course summary:

Date Details Due