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:

  1. Introduktion, verktyg, grunder
  2. Kontrollflöde: if, while, for
  3. Arrays, referenstyper, likhet
  4. Metoder, funktionell nedbrytning
  5. Algoritmer: sökning och sortering
  6. Använda klasser & objekt
  7. Att skriva egna klasser
  8. Att skriva en egen datastruktur
  9. Immutable och Java generics
  10. Interface, Iterator, polymorphism
  11. Arv och UML
  12. Abstrakta klasser, enum, exceptions och felhantering
  13. Programmera GUI, händelsehantering
  14. Rita grafik med Graphics
  15. Oplanerad (fylles efter behov och önskemål)
  16. Designmönster: MVC
  17. Mera MVC och filhantering
  18. Problemlösning: rita i 3D och djup kopiering
  19. Inför tentan
  20. Tentaövning
  21. Era önskemål!

Presentationerna som används på föreläsningarna kommer upp (som PDF) på kurshemsidan

Schema

TimeEdit

Kontaktuppgifter

Föreläsare och examinator för kursen:

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:

Kurssammanfattning
Datum Information Sista inlämningsdatum