02100 Indledende programmering og softwareteknologi

2024/2025

Kurset erstatter DTU's generelle programmeringskursus 02002 for uddannelsesretningerne Softwareteknologi og Computer Engineering.
Kursusinformation
Introductory Programming and Software Technology
Dansk
10
Bachelor
Polyteknisk grundlag (BSc), Computer Engineering
Polyteknisk grundlag (BSc), Softwareteknologi
Retningsspecifikt kursus (BSc), Computer Engineering
Retningsspecifikt kursus (BSc), Softwareteknologi
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 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