Overordnede kursusmål
Formålet med kurset er at formidle de grundlæggende begreber inden
for programmering, herunder imperativ og objektorienteret
programmering samt grundlæggende konstruktioner inden for
funktionsprogrammering som f.eks. lambda-udtryk, og at sætte den
studerende i stand til at anvende disse begreber med relevante
softwareteknologier.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Beskrive og anvende de grundlæggende begreber, der er fælles
for alle imperative programmeringssprog
- Omdanne en uformel problembeskrivelse til en entydig
specifikation, der kan implementeres i et programmeringssprog
- Forklare og anvende begreberne procedurer, virkefelter og
bindinger
- Forklare og anvende begreberne objektorienteret programmering,
herunder polymorfisme, nedarvning, indkapsling og refleksioner
- Vælge, vurdere, anvende og designe egnede datatyper og
datastrukturer
- Sammenligne forskellige implementeringer og begrunde deres
korrekthed
- Forklare og anvende programmeringsteknikker, herunder
rekursion, og relatere dem til deres eksekvering
- Anvende relevante softwareteknologier og værktøjer til
udvikling, dokumentation, afprøvning og implementering af
programmer
- Beskrive og anvende moderne programmeringsparadigmer som f.eks.
begivenhedsdrevne og grafiske miljøer
- Forklare og anvende grundlæggende softwaredesignmønstre
- Designe, implementere, dokumentere og evaluere en
softwareløsning af moderat størrelse i et programmeringssprog
- Anvende relevant faglitteratur på dansk og engelsk
Kursusindhold
Kurset vil introducere algoritmisk problemløsning og tænkning på en
måde, der er stort set uafhængig af programmeringssproget. Der vil
blive undervist i konkrete programmeringsparadigmer inden for
objektorienteret og imperativ programmering samt i
software-designmønstre primært i programmeringssproget Java.
Desuden vil programmeringssproget Python blive introduceret.
Følgende elementer vil blive dækket:
grundlæggende programmeringskonstruktioner (løkker, forgreninger
osv.); input og output; datatyper, primitive og refererede;
bindinger; værdier, operatorer og udtryk; klasser, objekter,
felter, metoder; design af klasser, hierarkier, nedarvning,
refleksion; abstraktion (abstrakte og generiske klasser,
interfaces); grundlæggende elementer af funktionsprogrammering
(lambda-udtryk); rekursion; mental model for udførelse af
programmeringssprog; begrundelse af korrekthed af programmer; brug
af biblioteker; kommandolinjeskripter; fejl- og
undtagelseshåndtering; fejlfinding, versionsstyring, dokumentation,
enkle softwaredesignmønstre; grafiske brugergrænseflader; udvalgte
avancerede emner.
Endelig vil ca. et modul på 4 timer af kurset omhandle
studierelaterede aktiviteter for de studerende på
bacheloruddannelsen i softwareteknologi, der sikrer overgangen fra
elev til studerende, f.eks. studieteknikker og studieplaner.
Bemærkninger
En del af kurset formidler kompetencer relateret til
kernefagligheden i Softwareteknologi og dækker over elementer fra
retningens tidligere kursustype "Ingeniørarbejde".
Sidst opdateret
02. maj, 2024