Course syllabus
Home | Föreläsningar | Projektarbete | Produkt | Presentationer | Betygsättning
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.
Veckoplanering
Här är en (grov, förslag) översikt över kursen per vecka.
(Läsvecka / Att introducera, göra och diskutera på veckomöte)
- Bilda grupp. Gruppkontrakt, bestäm projekt, preliminärt GUI, user stories, prototypning; workshop Maven/Git
- Domänmodell, mer prototypning; workshop JUnit/Travis
- Designmodell (torrköra User Stories m.h.a. design modell); körbar (ev. i form av tester bara); Gruppavstämning
- Design, MVC
- Mer design, services, hantering av resurser
- Bygga på mer funktionalitet, tester, kvalitetsverktyg, dokumentation
- Gör peer review; fortsätter med 6
- Samma som 6
- (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 |
---|---|---|