02322 Maskinnær programmering

2024/2025

Kursusinformation
Machine oriented programming
Dansk
5
Diplomingeniør
Obligatorisk kursus (B Eng), IT-elektronik
Obligatorisk kursus (B Eng), Softwareteknologi
F1B (tors 13-17)
Campus Lyngby
Forelæsninger, øvelser og projekt(er)
13-uger
F5B
Skriftlig eksamen og bedømmelse af rapport(er)
Den endelige karakter gives på baggrund af en helhedsvurdering. Grupperapporterne er individualiserede.
Skriftlig eksamen: 4 timer
Alle hjælpemidler - uden adgang til internettet
7-trins skala , intern bedømmelse
62409
02312/02314 , Færdighed i programmering i et imperativ programmeringssprog (som for eksempel Java).
Edward Alexandru Todirica , Tlf. (+45) 4525 3748 , eato@dtu.dk
01 Institut for Matematik og Computer Science
http://www.compute.dtu.dk/courses/02322/
I studieplanlæggeren
Kontakt underviseren for information om hvorvidt dette kursus giver den studerende mulighed for at lave eller forberede et projekt som kan deltage i DTUs studenterkonference om bæredygtighed, klimateknologi og miljø (GRØN DYST). Se mere på http://www.groendyst.dtu.dk
Overordnede kursusmål
At give deltagerne en god viden om simple computer-systemers opbygning og virkemåde ved gennemgang af de involverede komponenter og abstraktionsniveauer, som bruges til at håndtere kompleksiteten af et sådant system. At give deltagerne en forståelse af grænsefladen mellem en processor/​microcontroller og eksterne enheder.
At gøre deltagerne i stand til at designe, implementere, fejlfinde, teste og dokumentere computer programmer på forskelige abstraktionsniveauer: maskinkode, assemblersprog, og højniveau programmeringssprog (som for eksempel C).
Kurset give en generel forståelse af, hvorledes et simpelt computer system er opbygget omfattende:
- processor instruktionssæt arkitektur (ISA)
- organisering af hukommelse og "adressing modes"
- "memory mapping", interface til IO kredsløb
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • Redegøre for arkitekturen af en simpel computer
  • Beskrive de forskellige abstraktionsniveauer brugt i et computer system.
  • Forklare binært repræsentationen af forskellige datatyper (signed/unsigned integer, char etc) og konvertering mellem talrepræsentationer (f. eks. binært, decimalt, hexidecimalt)
  • Forklare og programmere software programmer skrevet i maskinkode, assembler kode og højniveau sprog
  • Forklare memory mapped I/O
  • Beskrive og bruge pointere i programmer, eksempelvis til at konstruere simple dynamiske datastrukturer såsom lænkede lister.
  • Forstå, hvorledes programvariable lagres i hukommelsen (heap, stak, globale variable).
  • Forstå sammenhængen mellem maskinprogram (assembler kode) og et højniveau sprog (eksempelvis C).
  • Skrive software programmer hvor CPU'en styrer I/O enheder
  • Fungere som medlem af en mindre arbejdsgruppe og deltage konstruktivt i styringen heraf.
Kursusindhold
• Instruktionssæt for en simpel CPU.
• Lav-niveau programmering i maskinkode og assembler.
• Virkemåde og intern organisation af en simpel computer.
• ANSI C programmering
• Hukommelseslayout (stak, heap osv.)
• Interaktion med I/O enheder: polling, interrupts, memory mapping
• Programmer, der styrer I/O enheder
• Pointere: Pointere generelt, pointere til arrays, pointere til pointere, void pointere
• Structs og brugerdefinerede typer. Array af strukturer.
• Preprocessor: Filinkludering, symbolske konstanter
• Funktioner: Syntaks. Pointere til strukturer og funktioner, static og register variabler. Pointeraritmetik
• Bitwise operationer: Operatorer, shift, bit-field
• I/O: Formatted I/O, streng formattering, filer
Sidst opdateret
02. maj, 2024