NDAB15009U Programmering og problemløsning (PoP)

Årgang 2024/2025
Engelsk titel

Programming and Problem Solving (PoP)

Uddannelse

Bacheloruddannelsen i bioinformatik
Bacheloruddannelsen i datalogi
Bacheloruddannelsen i datalogi-økonomi
Bacheloruddannelsen i machinelearning og datavidenskab
Bacheloruddannelsen i kognitions- og datavidenskab

Kursusindhold

Kurset giver en introduktion til programmering og til hvordan problemløsning struktureres vha. et program. Der gennemgås grundlæggende koncepter og terminologi indenfor programmering.  Der undervises i funktionelle, imperative og objektorienterede programmeringsparadigmer.

Målbeskrivelser

Viden om

  • Grundlæggende begreber indenfor imperativ, objektorienteret og funktionsprogrammeringsparadigmerne: Funktioner og metoder, variabler, udtryk, typer, kontrolstrukturer, løkker, blokstruktur, klasser og objekter, objektinteraktion, nedarvning, rekursion, polymorfi, abstraktion, undtagelser, pattern matching over rekursive datatyper, m.m.
  • God programmeringsskik: Dokumentation i koden, design patterns, afprøvning inkl. unit testing, håndtering af køretidsfejl, m.m.
  • Teknikker til problemløsning: Teknisk analyse af naturligsprogsproblemer, objektorienteret design, modelleringssprog, håndkøring, m.m.
  • God rapportskrivningsteknik.

 

Færdigheder i

  • At kunne læse og skrive mindre programmer (op til ca. 1000 linjer) i de programmeringsparadigmer, der undervises i på kurset, med overholdelse af god programmeringsskik og -stil.
  • At kunne evaluere fordele og ulemper ved at opskrive løsningen i de underviste programmeringsparadigmer, og at kunne implementere, afprøve, dokumentere, og evaluere løsningens kvalitet.
  • Et sideordnet mål er, at den studerende opnår passende studieteknik således, at dette og parallelkurser bestås svarende til et fuldtidsstudium.

 

Kompetencer til

  • Ud fra en præcist defineret problemformulering at kunne analysere problemet, udforme et program til løsning af dette, samt at verificere, afprøve, og dokumentere løsningen. 

     

Undervisningsmateriale

Offentliggøres på kursets Absalon-side ved kursusstart.

Kurset vil blande video og live forelæsninger, klasseundervisning, samt gruppe- og individuelle afleveringsopgaver.
  • Kategori
  • Timer
  • Forelæsninger
  • 54
  • Forberedelse (anslået)
  • 106
  • Øvelser
  • 108
  • Projektarbejde
  • 144
  • I alt
  • 412
Skriftlig
Individuel
Kollektiv
Løbende feedback i undervisningsforløbet
Point
15 ECTS
Prøveform
Løbende bedømmelse
Prøveformsdetaljer
Eksamen består af obligatoriske opgaver med mulighed for genaflevering i den efterfølgende uge ( 4 opgaver i alt).

En af de første (1 eller 2) opgaver samt de to sidste (3 og 4) skal bestås.

Alle afleveringer er individuelle og baseret på personlig refleksion over løsninger.
Opgaverne er opdelt således, at den ene halvdel af opgaverne løses og udarbejdes individuelt, og den anden halvdel indledningsvist drøftes som gruppe og derefter løses og udarbejdes individuelt.
Det vil fremgå klart af opgaven, når den udleveres, hvordan den skal gribes an.

Størrelsen af opgaverne vil variere og vil blive offentliggjort ved kursusstart. Opgaverne afleveres i Absalon.
Hjælpemidler
Alle hjælpemidler tilladt

Det er tilladt at anvende AI-baserede værktøjer og Large Language Models (LLM)/Large Multimodal Models (LMM). Kode skrevet af ChatGPT, GitHub Copilot eller lignende skal betragtes som et citat og skal følges af en citation med dato for kodegenereringen. Da kursets fokus er på at lære at programmere, anbefales det, at AI bruges som en læringsresurse fremfor et værktøj til at generere kode.

Bedømmelsesform
bestået/ikke bestået
Censurform
Ingen ekstern censur
Flere interne bedømmere
Reeksamen

30 minutters individuel mundtlig eksamen (inklusive bedømmelse) i kursets pensum.

Til eksamen vil der være 1 times forberedelse, og alle hjælpemidler er tilladt.

Det er tilladt men ikke anbefalelsesværdigt at bruge Large Language Models under forberedelsen.

Under hele eksamen er det ikke tilladt at kommunikere med udenforstående.

Kriterier for bedømmelse

For at bestå skal den studerende vise beherskelse af viden, færdigheder og kompetencer, som beskrevet i målbeskrivelsen.