Kursöversikt
DAT044/DIT013 Introduktion till Objektorienterad programmering lp2 HT25 (7,5 hp)
Kursen ges av institutionen för Data- och informationsteknik.
Kursens upplägg
Denna kurs består av föreläsningar och laborationer, och avslutas med en skriftlig tentamen. Laborationerna och tentamen är obligatoriska, dvs man måste klara dem för att bli godkänd på kursen.
Det finns en Discord-server för löpande kommunikation under kursens gång; alla som går kursen bör helst vara där.
Laborationerna
Laborationerna sker på campus som vanligt. Man får gärna göra labbarna på egen tid på egna datorer, men handledning i labbarna sker i huvudsak i datorsalarna.
Labbar görs i grupper om tre. Varje student bör gå med i en grupp. Varje grupp lämnar in sina lösningar här på Canvas under Assignments.
Ett seriöst försök på varje laboration ska lämnas in på Canvas innan deadline, och sedan redovisas muntligt för en handledare under laborationspass. Redovisningen har ingen särskild deadline, men det blir bäst om ni tar det när ni fortfarande har det färskt i huvudet. Alla gruppmedlemmar bör delta på redovisningen, och kunna svara på frågor om inlämningen. Handledare kan vid redovisning välja att antingen godkänna eller ge komplettering. Laboration 6 är ett undantag: den behöver endast lämnas in, inte redovisas.
Kursens laborationer:
- Lab 1: Den första labben — deadline 9 Nov
- Lab 2: Arrays — deadline 16 Nov
- Lab 3: Rationella tal — deadline 23 Nov
- Lab 4: Beräkning av pi — deadline 30 Nov
- Lab 5: Testning— deadline 7 Dec
- Lab 6: Ett ritprogram — deadline 21 Dec (behöver ej redovisas)
Föreläsningarna
Föreläsningar sker på campus, men livesänds också via Zoom och spelas in.
Kursens föreläsningar:
- Introduktion, verktyg, grunder
- Kontrollflöde: if, while, for
- Arrays, referenstyper, likhet
- Metoder, funktionell nedbrytning
- Algoritmer: sökning och sortering
- Använda klasser & objekt
- Att skriva egna klasser
- Att skriva en egen datastruktur
- Immutable och Java generics
- Interface, Iterator, polymorphism
- Arv och UML
- Abstrakta klasser, enum, exceptions och felhantering
- Programmera GUI, händelsehantering
- Rita grafik med Graphics
- Oplanerad (fylles efter behov och önskemål)
- Designmönster: MVC
- Mera MVC och filhantering
- Problemlösning: rita i 3D och djup kopiering
- Inför tentan
- Tentaövning
- Era önskemål!
Presentationerna som används på föreläsningarna kommer upp (som PDF) på kurshemsidan
Schema
Kontaktuppgifter
Föreläsare och examinator för kursen:
- Johannes Åman Pohjola pohjola@chalmers.se
Handledare:
- Alexander Appelin
- Daniell Cole
- David Bohman
- Erik Dahlkvist
- Jacob Sundh
- Jonathan Otten
- Julius Marozas
- Linda Jonsson
- Mario Carneiro
- Oscar Karlsson
- Sebastian Sandstig
Kursrepresentanter:
-
TBD
Kursens syfte
Kursen syftar till att ge en god grund inom imperativ programmering och att ge en introduktion till objektorientering. Kursen går genom hur man utvecklar imperativa program m.h.a funktionell nedbrytning och testning samt relevanta tekniker. Den objektorienterade delen går igenom grundläggande tekniker för objektorientering samt hur objektorienterade program är konstruerade.
Kurslitteratur
Denna kurs har ingen obligatorisk kurslitteratur, men boken Objects first with Java : a practical introduction using BlueJ skriven av David J. Barnes och Michael Kölling rekommenderas för den gärna vill ha en bok ändå.
Lärandemål
De formella lärandemålen är formulerade lite olika för GU- och Chalmers-versionen av kursplanen. Här är ett försök till syntes som nog stämmer bättre med vad vi kommer göra i praktiken:
- konstruera små imperativa och objektorienterade program.
- använda några vanligt förekommande programutvecklingsverktyg.
- behärska tekniker för grundläggande imperativ programmering (data, algoritmer, testning).
- behärska tekniker för datainkapsling, arv och polymorfism i ett objektorienterat programmeringsspråk.
Länk till kursplaner: (DAT044, Chalmers) (DIT013, GU)
Examination
Examinationsmomenten i denna kurs är följande:
- Laborationer: Alla studenter ska (i grupp) lösa laborationsuppgifterna, lämna in dem under Assignments innan deadlines, och redovisa sin lösning för handledare under laborationspass. För laborationerna får man antingen godkänt eller underkänt. För att få godkänt i kursen måste man ha fått alla laborationer godkända.
- Skriftlig tentamen: Under tentaveckan i slutet av LP2 kommer alla att sitta en skriftlig tentamen som betygsätts på skalan U, 3, 4, 5. Studenter som har fått laborationerna godkända får tentamensbetyget som betyg för hela kursen.
Nytt för i år
Kursens föreläsningar och laborationer är helt nya för DAT044/DIT013, även om det nya materialet är mestadels lånat från en liknande kurs (DAT050 Objektorienterad Programmering). Mer specifikt syftar ändringen på att åstadkomma följande:
- Spendera mindre tid på imperativ programmering, och mer tid på objektorienterad programmering. Detta eftersom det senare är mer verklighetsnära och idiomatisk användning av Java.
- Ha fler, men överlag enklare, laborationer. Detta för att ni ska kunna komma igång snabbare och förhoppningsvis öva mer kontinuerligt.
- Använd Swing istället för JavaFX för grafikprogrammering. JavaFX är visserligen modernare, men Swing har den stora fördelen att den ingår i standarddistributioner av Java, till skillnad från JavaFX som är ett externt bibliotek som måste importeras. Förra året var det alldeles för mycket strul med att få JavaFX att fungera på folks datorer.
- Mer grafikprogrammering än tidigare år. Detta för att få lite mer fokus på praktik än teori jämfört med tidigare år.
Gamla tentor
En sida med gamla tentor finns här: Gamla tentor
Kurssammanfattning:
| Datum | Information | Sista inlämningsdatum |
|---|---|---|