At gøre deltagerne i stand til at skrive software som kan løse numeriske problemer på baggrund af en matematisk model.
At give deltagerne en indføring i imperativ og objekt-orienteret programmering samt evnen til at kunne gøre brug af disse paradigmer vha. gængse imperative og objekt-orienterede programmeringssprog. I kurset anvendes C++ da det over hele verden anvendes i stor udstrækning til programmering af matematisk software.
Deltagerne indføres også i de grundlæggende algoritmer og datastrukturer der ofte anvendes til programmering af matematisk software. Desuden betragtes matematiske algoritmers numeriske stabilitet. Dvs. om de er robuste overfor afrundingsfejl og overflow/underflow.
For at sikre at man som deltager udvikler praktiske færdigheder, arbejdes der i kurset med mindre matematiske projekter hvor programmering indgår som et uundværligt værktøj. Desuden trænes dokumentering af software i rapporter som afleveres for hver projekt.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
Designe og dokumentere strukturen i imperative og objekt-orienterede programmer.
Implementere et udarbejdet design.
Definere og konstruere datastrukturer og funktioner.
Analysere kørslen af et program.
Beskrive og anvende programmeringssprogs basale objekt-orienterede funktionaliteter (indkapsling, nedarvning, polymorfi).
Beskrive og anvende dynamiske datastrukturer.
Beskrive og anvende sekventielle og associative containere.
Kalde eksterne (tredjeparts) programmer og biblioteker.
Diskretisere simple kontinuerte matematiske udtryk og evaluere dem på en computer.
Implementere software til effektive beregninger på PC og andre platforme.
Redegøre for et implementeret programs numeriske stabilitet.
Kursusindhold:
Programmeringsparadigmer: imperativ programmering, objekt-orienteret programmering. Datastrukturer: vektorer, køer, træer, nøgletabeller, lister, grafer. Algoritmer: sortering, grafalgoritmer. Programmeringsprojekter omfatter: - Indlæsning af rigtige data. - Kald af eksterne programmer og biblioteker (især numeriske). - Andre platforme end en PC (mobil/GPU). - Praktisk diskretisering af simple ligninger. - Numerisk stabilitet.
Mulighed for GRØN DYST deltagelse:
Kontakt underviseren for information om hvorvidt dette kursus giver den studerende mulighed for at lave eller forberede et projekt som kan deltage i DTUs studenterkonference om bæredygtighed, klimateknologi og miljø (GRØN DYST). Se mere på http://www.groendyst.dtu.dk/kursustilmelding.aspx