02100 Indledende programmering og softwareteknologi

2025/2026

Kurset er forbeholdt civilbacheloruddannelserne i Softwareteknologi og Computer Engineering.
Kursusinformation
Introductory Programming and Software Technology
Dansk
10
Bachelor
E5 (ons 8-17)
Campus Lyngby
Forelæsninger og øvelser. Øvelserne omfatter løsningen af mindre opgaver, som laves i grupper.
13-uger
E5A
Skriftlig eksamen og bedømmelse af opgave(r)
Karakterbedømmelsen fremkommer ved en helhedsvurdering på basis af de afleverede individualiserede opgaver samt den skriftlige eksamen.
Skriftlig eksamen: 2 timer
Alle hjælpemidler - uden adgang til internettet
7-trins skala , intern bedømmelse
02002/02003/02101/02102
Jørgen Villadsen , Lyngby Campus, Bygning 322, Tlf. (+45) 4525 3733 , jovi@dtu.dk
Carsten Witt (Primær kontaktperson) , Tlf. (+45) 4525 3722 , cawi@dtu.dk
01 Institut for Matematik og Computer Science
I studieplanlæggeren
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 samarbejde med andre
  • 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, 2025