DM573 Introduktion til Datalogi / DM500 Studieintroduktion

Efterår 2025
Rolf Fagerberg


Kurset starter mandag den 1. september. Der skal ikke købes nogen lærebog.

Pensum til eksamen i DM573 er materialet (som regel slides) angivet på denne webside under de relevante F-timer. Hvis der til et emne er angivet yderligere materiale, som ikke er pensum, er dette ikke nødvendigt at læse for at kunne regne opgaverne eller gå til eksamen (dette ekstramateriale er blot ment som en service for personer, der efterspørger noget sådant).

Timer

Uge Type Dato Tid Lokale Indhold
36 F Mandag 1/9 12-14 U55 DM500: Mød din studiegruppe. Introduktion til SDUs systemer, ved Søren Sten Hansen. Se Itslearning for materialer.
36 F Tirsdag 2/9 12-14 U23 Kursusintroduktion (slides med overlays/uden overlays). Repræsentation af tal (side 1-9 i slides med overlays/uden overlays).
36 F Torsdag 4/9 10-12 U1 Afslutning af repræsentation af tal (side 10-19 i slides med overlays/uden overlays). Programmet brugt til forelæsningen til at vise bits i filer (ikke pensum).
37 F Tirsdag 9/9 12-14 U23 Boolsk algebra og gates (side 1-18 i slides med overlays/uden overlays). Programmet binexpand.py vist til forelæsningen.
37 F Torsdag 11/9 08-10 U23 Afslutning af Boolsk algebra og gates (resten af slides med overlays/uden overlays).

[Yderligere kommentarer (ikke pensum): For en gennemgang af opbygningen af en af de første CPU'er på én chip, Intels 8008 (1972), se her. Moderne CPU'er indeholder indeholder over 1010 transistorer - se en oversigt over den vilde udvikling i antallet her. Bemærk, at selv om Boolsk algebra på CPU'er implementeres via strøm og elektronik, er dette ikke en nødvendighed. Enhver teknologi, som kan implementere logiske gates, kan i princippet bruges. F.eks. blev der i 1964 bygget en computer baseret på luftstrømme i stedet for elektrisk strøm. Se evt. også denne artikel.]

Start på CPUer og maskinkode (side 1-11 i slides med overlays/uden overlays).

37 F Torsdag 11/9 10-12 U140 DM500: Studiegrupper, studiegruppekontrakter. Se Itslearning for materialer.
37(-38) E       Opgaver. Løsninger (med nummerering fra E21).
38 F Tirsdag 16/9 12-14 U23 Afslutning af CPUer og maskinkode (resten af slides med overlays/uden overlays). CPU simulator (Johan Fagerberg, baseret på forlæg af J. Glenn Brookshear). De to eksempelprogrammer fra slides om CPU: bytOmPåToTal.txt og udskrivStigendeSekvens.txt.

[For yderligere materiale (ikke pensum) om Boolean algebra, gates og CPUer/maskinkode se f.eks. slides fra Alvin Lebeck's kursus, specielt disse, disse og delvist disse.]

Start på algoritmer, asymptotisk notation, invarianter, ved Lene Monrad Favrholdt. Noter om logaritmefunktionen.

[Yderligere kommentarer (ikke pensum): Noterne om logaritmefunktionen antager, at man kender begrebet omvendt funktion. Man kan få genopfrisket dette i afsnit 7.1 og 7.3 af Benjamin Teglbjærgs noter til Matematik B på HHX. ]

38 F Torsdag 18/9 08-10 U23 Datalogiens historie (slides med overlays/uden overlays). Disse emner er ikke eksamenspensum, dvs. vil ikke danne baggrund for eksamensspørgsmål. For nogle danskere med indflydelse på datalogiens historie, se denne artikel på dr.dk. For mere om Charles Babbage, se Computer History Museum.
38 F Torsdag 18/9 10-12 U1 DM500: Studievejlederne, ved Peter Mertz. Se Itslearning for materialer.
38(-39) E       Opgaver. Løsninger (med nummerering fra E21).
39 F Tirsdag 23/9 10-12 U1 Afslutning af algoritmer, asymptotisk notation, invarianter, ved Lene Monrad Favrholdt.

[For yderligere materiale (ikke pensum) om asymptotisk notation og invarianter, se disse slides fra DM578: med overlays/uden overlays (algoritmeanalyse), med overlays/uden overlays (asymptotisk notation), med overlays/uden overlays (invarianter).]

39 F Torsdag 25/9 08-10 U23 Start på merging og hashing (side 1-14 i slides med overlays/uden overlays)
39 F Torsdag 25/9 10-12 DM500: Studiestrategi, tidstyring, noteteknikker. Se Itslearning for materialer.
39(-40) E       Opgaver. Løsninger (med nummerering fra E21).
40 F Tirsdag 30/9 12-14 U23 Første del (ud af seks) af eksamen i DM573: 30 minutters online multiple-choice test i klassen. Pensum for denne del er materialerne om repræsentation af tal, Boolsk algebra og gates. For alle emner inkluderer materialerne både slides og de tilhørende opgaver i øvelsestimerne (uge 37(-38) og uge 38(-39)). Evt. yderligere materiale angivet i gråt og med betegnelsen "(ikke pensum)" er naturligvis ikke med i pensum.

Mere om merging og hashing (side 15-17 i slides med overlays/uden overlays)

40 F Torsdag 2/10 08-10 U23 Afslutning af merging og hashing (sidste del af slides med overlays/uden overlays).

[For yderligere detaljer (ikke pensum) om hashing i Python, se her. For Java, se her og her.]

40 F Torsdag 2/10 10-12 U23 DM500: IMADAs fagråd. Se Itslearning for materialer.
40(-41) E       Opgaver. Løsninger (med nummerering fra E21).
41 F Mandag 6/10 10-12 U150 Start på modeller for beregning: DFA (side 1-75 i slides af Fabrizio Montesi). Programmet vist til forelæsningen, som tester, om en given streng bliver accepteret af en DFA.

[For yderligere materiale (ikke pensum) om DFA'er, se f.eks. noter 2 og noter 3 af Sariel Har-Peled og Madhusudan Parthasarathy.]

41 F Torsdag 9/10 08-10 U42 Mere om modeller for beregning: CFG (resten af slides af Fabrizio Montesi).

[For yderligere materiale (ikke pensum) om CFG'er, se f.eks. noter 11 af Sariel Har-Peled og Madhusudan Parthasarathy.

En vigtig anvendelse af CFG'er er at definere syntaksen for programmeringssprog, ofte med notationen kaldet (extended) Backus–Naur form. Navnet "Naur" refererer i øvrigt her til Peter Naur, som er den eneste dansker, der har modtaget Turing prisen (også kaldet datalogiens Nobelpris).]

41 F Torsdag 9/10 10-12 DM500: Introduktion til LaTeX. Se Itslearning for materialer.
41(-43) E       Opgaver. Løsninger (med nummerering fra E21).
43 F Tirsdag 21/10 10-12 U23 Anden del (ud af seks) af eksamen i kurset: 30 minutters online multiple-choice test i klassen. Pensum for denne del er materialerne om CPUer og maskinkode og materialerne om algoritmer, asymptotisk notation og invarianter. For alle emner inkluderer materialerne både slides og de tilhørende opgaver i øvelsestimerne (uge 39(-40) og uge 40(-41)). Evt. yderligere materiale angivet i gråt og med betegnelsen "(ikke pensum)" er naturligvis ikke med i pensum.

Mere om modeller for beregning: regulære udtryk (slides med overlays/uden overlays).

Info om eksamen i DM500.

43 F Torsdag 23/10 08-10 U23 Mere om modeller for beregning: afslutning af regulære udtryk (slides med overlays/uden overlays).

Eksempelprogram vist til forelæsning og tilhørende datafil med godkendte personnavne (data kommer fra Familieretshuset, version fra 2024.09.16).

[Yderligere materiale (ikke pensum): For de fulde detaljer om regulære udtryk i Python, se dokumentationen for modulet re og Regular Expression Howto for Python. For et hurtigt og velstruktureret overblik (og meget andet) over regulære udtryk, se f.eks. dette Regex Cheat Sheet. Hvis man vil vide mere om effektiv implementation af søgning med regulære udtryk og sammenhængen med forskellige typer endelige automater, se denne webside af Russ Cox.]

43 F Torsdag 23/10 10-12 U23 DM500: God akademisk praksis og eksamensformer, ved Søren Sten Hansen. Se Itslearning for materialer og instruktioner om forberedelse til timen.
43(-44) E       Opgaver. Løsninger (med nummerering fra E21).
44 F Tirsdag 28/10 10-12 U23 Afslutning af modeller for beregning: beregnelighed, Turing maskiner, halting problemet (slides med overlays/uden overlays). Dette sæt slides er ikke eksamenspensum, dvs. vil ikke danne baggrund for eksamensspørgsmål.

Start på satisfiability: intro (slides med overlays/uden overlays).

[For yderligere materiale (ikke pensum) om modeller for beregning og om beregnelighed, se f.eks. samlingen af lecture notes fra Sariel Har-Peleds og Madhusudan Parthasarathys kursus eller Jeff Ericksons notesæt. En online simulator for Turing maskiner kan findes her. Læs mere om Turings imponerende bedrifter på Wikipedia.]

44 F Torsdag 30/10 10-12 U1 Afslutning af satisfiability: slides fra Peter Schneider-Kamp. Eksamensrelevant indhold af Peters slides: side 3-23 og 35-36. Bemærk, at i Peters slides bruges ordene "conjunction" for AND og "disjunction" for OR. For en beskrivelse af inputformatet til SAT solvers, se afsnit 4.1 i dette svar på StackExchange.

[For yderligere materiale (ikke pensum) om Satisfiability, SAT-solvers, og brugen til modellering og løsning af kombinatoriske problemer, se f.eks. Işıl Dilligs slides og Simon Prince's tutorial. For indsigt i algoritmerne inden i SAT-solvers, se Simon Prince og Christopher Srinivasa's tutorial og Inês Lynce's slides. For mere om udviklingen af SAT-solvers evner, se denne artikel. For en liste over SAT-solvers (og mange andre relaterede ressourcer), se Matt Gibsons oversigt.]

44 F Torsdag 30/10 12-14 DM500: Introduktion til Git. Se Itslearning for materialer.
44(-45) E       Opgaver.
45(-46) E       Opgaver. For at afprøve ens CNF-programmer kan man bruge dette web-interface til SAT-solveren MiniSat. Her er et CNF-program for 2x2 tower, som man kan bruge som test. Hvis man gerne vil installere Lingeling på egen computer (et alternativ foreslået i opgaverne), er her en vejledning for Linux.


Maintained by Rolf Fagerberg (rolf@imada.sdu.dk)