NDAB10012U Programmering og problemløsning (PoP)

Årgang 2013/2014
Engelsk titel

Programming and Problem Solving (PoP)

Uddannelse
Bacheloruddannelsen i naturvidenskab og it
Kursusindhold
Formålet med kurset er at introducere centrale programmeringsbegreber i en naturvidenskabelig kontekst.

Indhold:
  • Programmeringssprog
  • Objektorienteret programmering
  • Problemmodellering
  • Kontrol- og datastrukturer
  • Indkapsling
  • Anvendelse af klasser og biblioteker
Målbeskrivelser
Efter kurset forventes deltagerne at
Viden:
  • have opnået viden om programmel-lagdeling, herunder basisprogrammel og brugerprogrammel, samt eksistens og funktion af operativsystem, filsystem etc. 
  • kende forskellene mellem fortolkede og oversatte sprog.
  • kende til, men ikke beherske, programmering i et funktionsorienteret programmeringssprog.

Færdigheder:
  • beherske grundprincipperne i imperativ og objektorienteret programmering.

Kompetencer:
  • kunne skrive programmer, som løser simple problemer på matematisk eller anden abstrakt form.
Kurset forudsætter at man enten inden eller sideløbende med kurset følger kurset Lineær Algebra (LinAlg) eller tilsvarende.
Forelæsninger og øvelser
  • Kategori
  • Timer
  • Eksamen
  • 25
  • Forberedelse
  • 118
  • Forelæsninger
  • 28
  • Praktiske øvelser
  • 35
  • I alt
  • 206
Point
7,5 ECTS
Prøveform
Skriftlig aflevering
Afsluttende tag-hjem eksamen (6 dage). Aflevering sker i Absalon.
Krav til indstilling til eksamen
Løbende afleveringer af 7 opgaver, evalueret internt og alle skal bestås for at kvalificere sig til eksamen.
Bedømmelsesform
7-trins skala
Censurform
Ekstern censur
Eksamensperiode
Opgaven stilles kl. 15.00 fredag i blok uge 7 og afleveres torsdag kl. 15.00 i blok uge 8.
Reeksamen
25 minutters mundtlig eksamen uden forberedelse.
Kriterier for bedømmelse

Ved kursets afslutning skal den studerende:

* Kunne omsætte et naturvidenskabeligt problem til et eksekverbart program, der løser problemet

* Kunne evaluere kvaliteten af løsningen i forhold til problemdomænet

* Anvende og relatere imperative kontrolkonstruktioner og grundlæggende datastrukturer  til hinanden

* Forklare, anvende og diskutere indkapsling af datatilstande ved hjælp af objekter

* Udføre objektorienteret problemmodellering, herunder identificere klasser, deres ansvar/funktionalitet og indbyrdes afhængigheder

* Specificere grænsefladeegenskaber for klasser ved angivelse af klassegrænseflader og metodekontrakter

* Implementere og dokumentere klasser i et objektorienteret programmeringssprog i henhold til grænsefladeegenskaberne

* Bruge arv og komposition og analysere deres indbyrdes fordele og ulemper i konkrete designsituationer

* Anvende og definere klasser og biblioteker i et objektorienteret programmeringssprog ud fra deres dokumentation og uden adgang til deres kildekode

* Kunne kvalitetssikre et program