INDA F95, Preliminär kursplan

Period 1


Vecka 36-37

Tema: Grunderna i C-programmering.

Under den här delen av kursen ska vi arbeta med programspråket C. Du ska lära dig hur man använder variabler och styrstrukturer samt hur man kan dela upp större program i hanterbara delar med hjälp av procedurer.

Föreläsningar
Introduktion, kursuppläggning. Programspråk, datalogi, begrepp.
Datorns uppbyggnad. Variabler, satser, styrstrukturer.
Procedurer, strukturen hos ett program.
Modularisering, gränssnitt.
Övningar
Skriva enkla program i C
Laborationer
Vi börjar med att skriva några enkla C program för att "komma igång"
Ni ska också få skriva ett program uppdelat i flera moduler

Vecka 38-39

Tema: Programstrukturer

Nu går vi över till en mer abstrakt syn på datorberäkningar. Framför allt ska vi vänja oss vid den funktionella programmeringsstilen. Vi använder programspråket Scheme som verktyg och det är viktigt att du nu lär dig grunderna i Scheme ordentligt.

Föreläsningar
Abstraktion. Funktionell programmering. Scheme intro.
Procedurer som abstraktion. Generalisering. Rekursion.
Rekursion och iteration. Loopinvarianter.
Högre ordningens procedurer. Procedurer som parametrar.
Övningar
Vi jobbar med att skriva små Scheme-procedurer för att komma in i det rekursiva sättet att bryta ner problem.
Laborationer
Ni ska arbeta med Scheme-systemet och konstruera procedurer med hjälp av rekursiv problemnedbrytning.

Vecka 40-41

Tema: Datatyper och datastrukturer

I denna del av kursen ska vi studera olika klassiska tekniker för att representera data. Vi kommer att införa begreppet "abstrakt datatyp", en metod att hindra att hela programmet blir beroende av vilken representation vi har valt.

Föreläsningar
Data: lagring&operationer. ADT. Typer och typkontroll.
Klassiska strukturer: post, lista, association, tabell, stack, kö.
Pekare och minnesadministration (i C). malloc, free, GC.
Mer om poster och datastrukturer i C. Filer.
Övningar
Vi övar på användningen av olika datastrukturer.
Laborationer
Här kommer ni att arbeta med olika datastrukturer i C.

Period 2


Vecka 44-45

Tema: Algoritmer

Föreläsningar
Sökning. Sorteringsproblemet.
Analys av komplexitet. Smartare sorteringsmetoderna.
Träd och sökträd.
Hashtekniker. Representation av data på fil. B-träd.
Övningar
Vi övar framförallt på sorteringsalgoritmerna.
Laborationer
Här ska vi skriva ett program som löser det klassiska problemet att mäta upp en viss mängd vatten med hjälp av ett antal olika stora hinkar. Med hjälp av de tekniker vi lärt oss kan man kontrollera om problemet går att lösa.

Vecka 46-47

Tema: Programorganisation

Föreläsningar
Problemlösning: backtracking, bredden/djupet-först. Optimeringsproblem.
Symbolbehandling. Mönstermatchning.
Generiska operationer, datadriven programmering.
Objektorienterad programmering.
Övningar
Laborationer
Här hade vi tänkt att ni skulle få försöka hitta på mer eller mindre smarta strategier för att styra en simulerad robot som ska hitta ut ur en labyrint. Meningen är att ni ska kunna utnyttja era kunskaper om problemlösning, datarepresentation, högre ordningens procedurer, etc. för att hitta en lösning som är bättre än granngruppens.

Vecka 48-49

Tema: Interaktion m.m.

För att ett program ska bli användbart krävs det ofta mycket mer än att det löser en viss uppgift. Bl.a. är det viktigt med en väl fungerande kommunikation med användaren. Vi ska prata lite om hur man bör och inte bör göra. Vi kommer också att prata om vad som menas med objektorienterad programmering och hur detta kan se ut i Scheme.

Föreläsningar
Simuleringsmetodik. Händelsestyrning. Numerisk simulering.
Människa-dator interaktion. Dialogdesign. Grafik.
Exempel från verkligheten.
Repetition + spill.
Övningar
Vi övar på händelsestyrd simulering m.m.
Laborationer
Dessa veckor ska ni arbeta med en händelsestyrd simulering där man själv finns med som deltagare. Programmet är uppbyggt i objektorienterad stil