NDAB15009U Programmering og problemløsning (PoP)

Årgang 2023/2024
Engelsk titel

Programming and Problem Solving (PoP)

Uddannelse

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 lave 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. 

     

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

Kurset vil blande forelæsninger, klasseundervisning, gruppeøvelser og individuelle opgaver.
  • 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
Kurset organiseres ud fra en ugentlig cyklus med obligatorisk ugentlige opgaver (12-14 i alt), som alle på nær én skal bestås for at bestå kurset. Der vil være mulighed for genaflevering. 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) – fx ChatGPT og GPT-4. 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 mundtlig eksamen (inklusive bedømmelse) i fuldt pensum. Til eksamen vil der være 1 times forberedelse, og skriftlige hjælpemidler (notater og bøger mv.) er tilladt.

Kriterier for bedømmelse

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