Programmering

2020/2021

Modulets indhold, forløb og pædagogik

FORMÅL          
At sætte de studerende i gang med imperativ og funktionsorienteret programmering, så de kan anvende de grundlæggende begreber og kompetencer til at konstruere, forstå og vurdere programmer. De studerende skal derfor opnå forståelse af den samlede vifte af nøglebegreber i de to paradigmer og hvad der kendetegner disse paradigmer. De studerende skal opnå viden om forskellene mellem algoritmer og programmer og skal opnå færdigheder i udvikling af imperative programmer og funktionsorienteret programmer af god kvalitet.

BEGRUNDELSE   
Programmering er kernen i Datalogi/Software-uddannelserne. Derfor erdet væsentligt at de studerende opnår kendskab til begreber i både imperativ og funktionsorienteret programmering på et tidligt tidspunkt i studiet. Det er også væsentligt at dette kendskab suppleres med færdigheder som tillader de studerende at løse datalogiske/software-relaterede problemer med brug af såvel imperativ som funktionsorienteret programmering.

 

Læringsmål

Viden

Den studerende skal opnå viden om grundlæggende begreber inden for imperativ og funktionsorienteret programmering, hvilke roller de spiller i de to paradigmer og hvordan forskellene mellem dem udmønter sig for de grundlæggende begrebers vedkommende.

Den studerende skal opnå kendskab til følgende sproglige begreber med relevans for et eller begge programmeringsparadigmer:

  • erklæringer og bindinger, herunder scoperegler

  • typer, herunder grundlæggende og sammensatte typer, deres repræsentation, typetjek og typeinferens

  • udtryk og deres evaluering, herunder sideeffekter

  • kommandoer, herunder assignment

  • kontrolstrukturer, herunder selektion og iteration

  • abstraktion med procedurer og funktioner, herunder parametermekanismer, lambdaudtryk, rekursion og simple højereordensfunktioner

  • grundlæggende datastrukturer, herunder arrays, records, lister og træer

  • input og output

Den studerende skal opnå kendskab til disse begreber inden for programmeringsmetodologi:

  • top-down og bottom-up programmering

  • test for korrekthed, herunder unittest

Færdigheder

Den studerende skal efter kurset have opnået færdigheder inden for funktionsorienteret og imperativ programmering, for mere præcist at kunne

  • konstruere programmer ud fra beskrivelser af algoritmer og data

  • udarbejde overskuelige og læsbare programmer

  • anvende typebegrebet til at ræsonnere om og forebygge fejl i programkode

  • dokumentere programmer

  • planlægge tests af programkode

  • anvende en programmerings/køretidsomgivelse til at udvikle og køre et program

  • anvende korrekt fagterminologi

Kompetencer

Den studerende skal efter kurset kunne

  • skelne klart mellem imperative og funktionsorienterede aspekter af programmering

  • løse en defineret, mindre opgave selvstændigt og i samarbejde med andre ved at implementere programmer af god kvalitet i de to paradigmer

  • vurdere og, om nødvendigt, forbedre kvaliteten af et program i  de to paradigmer

Undervisningsform

Undervisningen tilrettelægges i henhold til de generelle undervisningsformer for uddannelsen

Omfang og forventet arbejdsindsats

Det forventes at den studerende bruger 30 timer per ECTS, hvilket for denne aktivitet betyder 150 timer.

Eksamen

Prøver

Prøvens navnProgrammering
Prøveform
Skriftlig eller mundtlig
ECTS5
Bedømmelsesform7-trins-skala
CensurIntern prøve
VurderingskriterierVurderingskriterierne er angivet i Universitetets eksamensordning

Yderligere informationer

Kontakt: Studienævn for datalogi via cs-sn@cs.aau.dk eller 9940 8854

 

Fakta om modulet

Engelsk titelProgramming
ModulkodeDSNDATFB112
ModultypeKursus
Varighed1 semester
SemesterEfterår
ECTS5
UndervisningssprogDansk og engelsk
TompladsJa
UndervisningsstedCampus Aalborg
Modulansvarlig

Organisation

StudienævnStudienævn for Datalogi
InstitutInstitut for Datalogi
FakultetDet Tekniske Fakultet for IT og Design