Print

Diskret matematik og algoritmer

Code

SW-DMA1

Version

3.0

Offered by

Software Ingeniør

ECTS

5

Prerequisites

Kurset kræver matematik svarende til adgangskravene til softwareingeniør programmet. Kurset kræver også grundlæggende Java programmering færdigheder. Sidstnævnte kan erhverves ved at følge kurset PRO1 (tidligere SDJ1) samtidig med DMA.

Main purpose

Formålet med kurset er at uddanne studerende i de matematiske begreber og processen med algoritmisk tænkning, så de ved at bygge videre på principperne i matematik, kan skabe enklere og mere effektive løsninger på beregningsmæssige problemer i den virkelige verden.
 
Kurset vil gøre det muligt for den studerende at anvende en bred vifte af eksisterende algoritmer og datastrukturer til grundlæggende problemer samt generelle metoder til udvikling af nye algoritmer og matematiske værktøjer til analyse af algoritmernes korrekthed og effektivitet. Dette er af afgørende betydning for evnen til at udvikle effektiv software, og er centralt for forståelsen af øvre og nedre grænser for beregningsmæssige problemer.
 
I forhold til Software Technology-programmets kompetenceprofil er det kursets udtrykkelige fokus at:
 
• Give kompetencer til at anvende nye varianter af centrale algoritmer og datastrukturer udviklet inden for softwareteknologi.
• Give færdigheder til at analysere fordele og ulemper ved algoritmer, især med hensyn til brugen af ressourcer.
• Give viden og forståelse for et udvalg af kernealgoritmer og datastrukturer udviklet inden for softwareteknologi.

Knowledge

Efter gennemførelse af dette kursus vil de studerende kunne:
• Beskrive grundlæggende begreber i talteori og modulo aritmetik
• Skitsere de grundlæggende principper for forskellige sorteringsalgoritmer
• Opsummere nøgleaspekter af forskellige datastrukturer

Skills

Efter gennemførelse af dette kursus vil de studerende kunne:
• Give præcise argumenter for en algoritmes korrekthed eller ukorrekthed
• Bruge nøglebegreber i diskret matematik til at løse programmeringsproblemer effektivt
• Analysere og sammenligne tids- og rumanvendelse af algoritmer og datastrukturer

Competences

Efter gennemførelse af dette kursus vil de studerende kunne:
• Tilpasse kendte algoritmer og datastrukturer til specielle tilfælde af kendte eller nye problemer
• Designe og implementere små programmer ved hjælp af de algoritmer og datastrukturer, der undervises i kurset.
• Vurdere ydeevnen af Java-kode med det formål at designe og implementere algoritmer, der optimerer koden.

Topics

Teaching methods and study activities

Undervisningsformen er baseret på klasseundervisning og vil indeholde forelæsninger fra underviseren og øvelser lavet i undervisningstimerne. De studerende forventes også at arbejde på øvelser både før og efter undervisningstimerne.
 
Den samlede arbejdsbyrde for den studerende forventes at være omkring 130 timer.

Resources

Weiss, M A , Data Structures and Algorithm Analysis in Java, 3rd ed., Pearson Education, Inc., Upper Saddle River.
 
Yderligere materiale vil blive uploadet til Itslearning.

Evaluation

Examination

​Eksamensforudsætning: ​

1. Fremmødekrav (≥ 75%) 
2. 6 ud af 8 afleverede obligatoriske opgaver godkendt. 

Hvis eksamensforudsætning ikke er opfyldt, skal den studerende gennemføre en skriftlig opgave i WISEflow for at blive indstillet til reeksamen. 
Denne opgave planlægges efter den ordinære eksamen. 

Eksamensform:
Kurset evalueres ved en skriftlig eksamen, 3 timer.
Besvarelsen afleveres i FLOWlock browseren i WISEflow.
Intern bedømmelse

Tilladte hjælpemidler:
De studerende har lov til at bruge noter, bøger og/eller andet skriftligt/trykt materiale. Enhver form for kommunikation mellem studerende eller mellem en studerende og en ekstern part er forbudt og vil blive betragtet som en overtrædelse af eksamensreglerne.

​Reeksamen:
Reeksamen kan være mundtlig

Grading criteria

Karakter efter 7-trinsskala

Additional information

Responsible

Richard Brooks (rib)

Valid from

01-08-2023 00:00:00

Course type

Keywords

Talsystemer, Modulo aritmetik, Summering & sekvenser, Algoritme effektivitet, Sortering, Binære træer, Datastrukturer