DM573 Introduktion til Datalogi

Efterår 2024
Rolf Fagerberg


Kurset starter torsdag den 5. september. Der skal ikke købes nogen lærebog.

Pensum til eksamen er alt materiale (som regel slides) angivet på denne webside under F-timer. Hvis der til et punkt 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 Torsdag 5/9 14-16 U23 Kursusintroduktion. Repræsentation af tal (side 1-12). Programmet binexpand.py vist til forelæsningen.
37 F Onsdag 11/9 08-10 U42 Afslutning af Repræsentation af tal (side 13-19). Programmet brugt til forelæsningen til at vise bits i filer (ikke pensum).
37 F Fredag 13/9 12-14 U23 Boolsk algebra og gates.
37(-38) E       Opgaver. Løsninger (med nummerering fra E21).
38 F Tirsdag 17/9 08-10 U42 Afslutning af Boolsk algebra og gates. [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. CPU simulator (Johan Fagerberg, baseret på forlæg af J. Glenn Brookshear).

38 F Torsdag 19/9 10-12 U23 Afslutning af CPUer og maskinkode. 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.

38(-39) E       Opgaver. Løsninger (med nummerering fra E21).
39 F Mandag 23/9 10-12 U42 Afslutning på algoritmer, asymptotisk notation, invarianter, ved Lene Monrad Favrholdt.
39 F Onsdag 25/9 08-10 U48A Start på merging og hashing.
39(-40) E       Opgaver. Løsninger (med nummerering fra E21).
40 F Mandag 30/9 14-16 U48A Første del (ud af seks) af eksamen i kurset: 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)). For evt. yderligere materiale angivet i gråt og med betegnelsen "(ikke pensum)" er dette naturligvis ikke med i pensum.

Mere om merging og hashing.

40 F Torsdag 3/10 14-16 U48A Afslutning af merging og hashing. [For yderligere detaljer (ikke pensum) om hashing i Python, se her. For Java, se her og her.]
40(-41) E       Opgaver. Løsninger (med nummerering fra E21).
41 F Mandag 7/10 10-12 U55 Start på modeller for beregning: DFA (slides ved Fabrizio Montesi). [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 Onsdag 9/10 14-16 U55 Mere om modeller for beregning: CFG (slides ved Fabrizio Montesi) og regulære udtryk. [For yderligere materiale (ikke pensum) om CFG'er, se f.eks. noter 11 af Sariel Har-Peled og Madhusudan Parthasarathy.]
41(-43) E       Opgaver. Løsninger (med nummerering fra E21).
43 F Mandag 21/10 14-16 U55 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)). For evt. yderligere materiale angivet i gråt og med betegnelsen "(ikke pensum)" er dette naturligvis ikke med i pensum.

Mere om modeller for beregning: regulære udtryk.

43 F Onsdag 23/10 10-11 U23 Mere om modeller for beregning: regulære udtryk. 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(-44) E       Opgaver. Løsninger (med nummerering fra E21).
44 F Onsdag 30/10 08-10 U23 Afslutning af modeller for beregning: beregnelighed, Turing maskiner, halting problemet. Dette sæt slides er ikke eksamenspensum, dvs. vil ikke danne baggrund for eksamensspørgsmål. [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 Fredag 1/11 10-12 U23 Overblik og status for kursets emner. Start på databaser. Lidt om kompleksitet og P vs. NP problemet: side 27-31 i slides fra UNF foredrag april 2023 (dette sæt slides er ikke eksamenspensum, dvs. vil ikke danne baggrund for eksamensspørgsmål).
44(-45) E       Opgaver. Løsninger (med nummerering fra E21).
45 F Mandag 4/11 14-16 U23 Tredie del (ud af seks) af eksamen i kurset: 35 minutters online multiple-choice test i klassen. Pensum for denne del er materialerne om merging og hashing og materialerne om DFA'er og om CFG'er. For alle emner inkluderer materialerne både slides og de tilhørende opgaver i øvelsestimerne (uge 41(-43) og uge 43(-44)). For evt. yderligere materiale angivet i gråt og med betegnelsen "(ikke pensum)" er dette naturligvis ikke med i pensum.

Afslutning på databaser. Et eksempel på et ER-diagram, dets oversættelse til den relationelle model og til SQL, samt nogle queries. [For yderligere materiale (ikke pensum) om ER-modellen, relational algebra og SQL, se f.eks. Christopher Painter‑Wakefields online bog A Practical Introduction to Databases, Johannes Gehrkes slides, Tutorialspoints, w3school, Khan Academy, Phil Spectors slides, PostgreSQLs dokumentation.]

45 F Torsdag 7/11 10-12 U23 Satisfiability (intro-slides samt 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 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 bag SAT-solvers, se Simon Prince og Christopher Srinivasa's tutorial og Inês Lynce's slides.]
45(-46) E       Opgaver. Løsninger (med nummerering fra E21).
46 F Mandag 11/11 14-16 U48A Start på korteste veje i grafer (kode fra slides), materiale ved Daniel Merkle.
46 F Onsdag 13/11 08-10 U48A Mere om korteste veje i grafer, materiale ved Daniel Merkle. Note med bevis for den centrale sætning om min-plus matrix-multiplikation og korteste veje.
46(-47) 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.
47 F Mandag 18/11 12-14 U55 Fjerde del (ud af seks) af eksamen i kurset: 30 minutters online multiple-choice test i klassen. Pensum for denne del er materialerne om regulære udtryk og materialerne om databaser. For begge emner inkluderer materialet både slides og de tilhørende opgaver i øvelsestimerne (opgaver uge 44(-45) og uge 45(-46)). For evt. yderligere materiale angivet i gråt er dette ikke med i pensum.

Afslutning af korteste veje i grafer, materiale ved Daniel Merkle. I nogle af figurerne på slides er molekyler vist som skeletal formulas, hvor C-atomer og H-atomer ikke skrives direkte - principperne for dette kan man f.eks. finde her. [For yderligere materiale (ikke pensum) om alkaner, se f.eks. kapitel 7 i denne online lærebog fra Western Oregon University]

47 F Onsdag 20/11 08-10 U48A Start på kryptologi. Pythonprogram til brute-force attack på Caesar cipher. [For yderligere materiale (ikke pensum): Her er en side med oversigt over krypteringsteknologier relevante for SSL/TLS-protokollen, der bl.a. er grundlaget for de sikre webforbindelser (HTTPS), som vi bruger dagligt. Her er en side, som beskriver rekorder for faktorisering af RSA-nøgler. Disse rekorder en noget af baggrunden for, at man for RSA anbefaler nøgler N med mindst 2048 bits.]
47(-48) E       Opgaver.


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