Kursöversikt

Kurs-PM

DAT055 Objektorienterade applikationer lp4 VT23 (7,5 hp)

Kursen ges av institutionen för Data- och informationsteknik

Kontaktuppgifter

Kursansvarig & lärare:

Pelle Evensen, evensen@chalmers.se

Examinator:

Jonas Almström Duregård,

Kursassistent:

Beata Ringmar, ringmar@chalmers.se

Kursens syfte

Kursen skall ge fördjupade kunskaper och färdigheter i objektorienterad programutvecklingsteknik, med betoning på modellering och programutveckling i projektform.

Schema

Se TimeEdit.

Börja med att registrera dig på den slack som är uppsatt för kursen: länk till slack.

När du bildat en projektgrupp (bör vara 5 personer i varje grupp), registrera dig här.

Schema för möten med projekthandledare, här.

Kurslitteratur

Kursen kommer inte att ha någon fysisk kurslitteratur utan bara använda sig av webresurser.

Listan kommer att utökas under kursens gång.

Overhead från kursen kommer att läggas upp löpande på Canvas.

En bok som får betraktas som "avancerad" i kursens början men extremt läsvärd när kursens material har tillgodogjorts är "Effective Java, 3rd edition" av Joshua Bloch. Den är inte en konventionell lärobok men för den som vill programmera mer i Java efter kursens slut är den ovärderlig.

Kursens upplägg

Undervisningen består av föreläsningar, (ett fåtal) lärarhandledda övningstillfällen och handledda projektmöten. Kursen innehåller ett laborationsmoment i form av ett projektarbete. Projektgruppen konstruerar och dokumenterar ett program med objektorienterad metodik. Ett lyckat projektresultat förutsätter individuella insatser och engagemang av gruppmedlemmarna!
Aktivt deltagande under hela projekttiden v.12 – v.19 krävs för godkänt projekt.

Lärandemål

De studerande skall efter genomgången kurs kunna:

  • Konstruera objektorienterade program med grafiska användargränssnitt, trådstruktur samt
    kommunikation och filhantering.
  • Konstruera objektorienterade modeller i det grafiska modelleringsspråket UML.
  • Använda vanligt förekommande utvecklingsverktyg för objektorienterad modellering, kodutveckling samt versionshantering.
  • Arbeta med programutveckling i projektgrupp.

Examination

Tentamen: Skriftlig tentamen 2023-06-02, 8:30-12:30, 4.5 hp.

Hjälpmedel: En sammanställning av vanliga standardklasser bifogas tentamenstesen.

Laborationer: I form av projektf ger 3 hp.

För att bli godkänd på projektet krävs aktivt deltagande i projektgrupp under hela projekttiden.

Slutbetyg i skala (U-5) ges efter godkänt projekt (resultat U eller G) och utgår endast från tentamensresultat (U-5).

Innehåll

I kursen används Java som programmeringsspråk och UML som modelleringsspråk.
Uppräkningen är inte kronologisk.

  • Programutvecklingsprocess.
  • Objektorienterad modellering i UML. Olika diagramtyper. Användningsfallsanalys.
  • Distribuerade arbetsflöden och versionshantering av kod. Utvecklingsverktyg.
  • Grafiska användargränssnitt.
  • Model-View-Controller-arkitekturen för program med grafiska användargränssnitt.
  • Orientering om några vanliga designmönster.
  • Strömmar och filer.
  • Program med parallell exekvering.
  • Kommunikation. Sockets, portar, datagram, client-server.

Mjukvaruutvecklingsverktyg

Det står gruppen fritt att välja. Två av de populäraste utvecklingsmiljöerna med bra Git-stöd som finns till Linux, Windows & MacOS är
IntelliJ och Eclipse. Det rekommenderas varmt att alla i gruppen använder samma utvecklingsmiljö.
LucidCharts är en mycket bra, men i gratisversion något begränsad, webapp för att rita diagram.

Gratistjänsten GitHub kommer vi att använda oss av. Er repositories ska i år vara privata. Delas inom en grupp och med gruppens handledare.

Kursplanering

Föreläsning Innehåll Läsanvisning
LV 1/ V12

F1

F2



F3

F4

Kursens mål & syfte

Introduktion till versionshantering & Git


Projektet, beskrivning. Introduktion till OOA/OOD.

Fortsättning OOA/OOD

 

Kapitel 1 & 2 från Pro Git
Övning GitGit på en minut - snabbreferens

https://www.geeksforgeeks.org/object-oriented-analysis-and-design/

LV 2 / V13

F5

F6

F7

Repetition MVC

Mer MVC

God design, design patterns I

Beskrivning av MVC.

Intro till JavaFx



LV 3 / V15

F8

F9

F10 - Serialisering
F10 - Datakomm

Design patterns II

I/O, strömmar, filer

Serialisering. Introduktion till kommunikation, portar, socketar, datagram, client-server, m.m.

 

 

 

LV 4 / V16

F11

Trådar & parallellism

 

LV 5 / V17

F12

F13

Design by contract, undantag (exceptions)

(Enhets)testning

LV 6 / V18 F14 Klassladdning & andra knivigheter

LV 7 / V19

Självstudier/projektarbete
LV 8 / V20 Projektredovisningar 2023-05-16 & 2023-05-17
LV 9 / V21 Självstudier
LV 10 / V22 Tentamen fredag FM 2023-06-02.

Studentrepresentanter

Erik Bejstam bejstam@student.chalmers.se     
Peach Phongam phongam@student.chalmers.se
Anna Olsson olssanna@student.chalmers.se 

Gamla inspelningar av föreläsningar

En student hade noterat att såna fanns och det stämmer, i alla fall bitvis. De följer inte nuvarande version av kursen helt exakt men kan kanske vara till glädje för någon. Var försiktiga med att röra ihop dem med årets version av kursen bara!

F1-Introduktion, F2-GUI, F3-OOA+OOD, F4-Versionshantering, F5-Design patterns, F6-MVC, F7-Strömmar+filer, F8-Serialisering+strömmar, F9-Trådar, F10-Datakommunikation, F11-Metaprogrammering+lite mer versionshantering.

Kursplan

Finns på Studieportalen.

Kurssammanfattning:

Datum Information Sista inlämningsdatum