Course syllabus

Home | Föreläsningar | Projektarbete | Produkt | Presentationer | Betygsättning

Smurf-oriented mega-smurfing project

Välkommen!

Välkommen till kurshemsidan för DIT213/TDA367 Objektorienterat programmeringsprojekt. Kursen ges av Institutionen för Data- och informationsteknik på Campus Johanneberg under läsperiod 2, 2023.

Programvaruutveckling kräver mycket mer än bara teknisk förståelse för programmering. Ni har i tidigare kurser lärt er om olika aspekter av programvaruutveckling som hantverk: design, implementation, användargränssnitt, mm. Denna kurs bygger vidare på detta genom att

  • ni får möjlighet att omsätta och öva dessa hantverkskunskaper i ett större praktiskt projekt
  • introducera försteget till design, med analys och kravspecifikation
  • introducera och vidareutveckla kompetenser och processer kring arbete i team.

Denna kurs också en för många uppskattad och efterlängtad möjlighet att få vara kreativ, att utveckla något helt eget och nytt.

Officiella kursplanen hittar du här:

 

Kontaktuppgifter

Kursansvarig & examinator: Niklas Broberg, niklas.broberg@chalmers.se, tel. 031 772 1058. Kontor i EDIT 6446. Kontakta mig helst via Slack (se nedan). 

Övriga handledare:

  • Arthur Alexandersson
  • Egor Diatchkov
  • Felix Jönsson
  • Love Lindqvist
  • Oscar Palm
  • Wincent Stålbert Holm

Det finns ett slack-workspace för kursen här: 
https://join.slack.com/t/tda367objekto-tl25086/shared_invite/zt-25tz6o4k0-36wtnRikLp2_K2ezeYV2PQ

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

I Slack kommer finnas 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.

Samtliga föreläsningar streamas via https://chalmers.zoom.us/my/tda367oopp (Passcode: 102030)

 

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.

 

Kursens upplägg och schema

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.

Notera att tiderna för handledning i schemat är en rekommendation om när gruppen ska möta sin handledare en gång per vecka. 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

Veckoplanering

Här är en (grov, förslag) översikt över kursen per vecka.

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

  1. Bilda grupp. Gruppkontrakt, bestäm projekt, preliminärt GUI, user stories, prototypning; workshop Maven/Git
  2. Domänmodell, mer prototypning; workshop JUnit/Travis
  3. Designmodell (torrköra User Stories m.h.a. design modell); körbar (ev. i form av tester bara); Gruppavstämning
  4. Design, MVC
  5. Mer design, services, hantering av resurser
  6. Bygga på mer funktionalitet, tester, kvalitetsverktyg, dokumentation
  7. Gör peer review; fortsätter med 6
  8. Samma som 6
  9. (Tentavecka): Slutredovisningar. Mer information följer.

 

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.
  • Redogöra för centrala utmaningar i gruppsamarbete, samt metoder och strategier för att möta dessa.

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.
  • Planera och genomföra en muntlig presentation med ett professionellt och akademiskt förhållningssätt
  • Tillämpa och redogöra för kompetenser, metoder och verktyg som stödjer samarbete i grupp.

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

  • Reflektera över god objektorienterad design och implementation i projektet.
  • Reflektera över kommunikativa, relationella och organisatoriska strategier som stödjer samarbete i grupp.

 

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. 
  • Självrapportering genom veckorapporter. 
  • Dokumenterad aktivitet i projektet.
  • Dokumenterat väl fungerande arbete i grupp.
  • Väl genomförda presentationer.

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

Sen inlämning av projekt eller dokument kan påverka betyget negativt.

Course summary:

Date Details Due