Göm menyn

Programmering och algoritmer, PAL

Presentation av profilkurser

Formella språk och automatateori (G2). Kursen behandlar olika klasser av formella språk och grammatikor för dessa, ss reguljära uttryck och kontextfria språk, samt koppling till automatateori, ss ändliga tillståndsautomater, push-down-automater. Kursen är förkunskap till Kompilatorkonstruktion.

Programmeringsteori (A). Kursen behandlar olika metoder att beskriva semantik för programspråk (axiomatisk, operationell och denotationssemantik), korrekthetsbevis och introduktion till lambda-kalkylen.

Kompilatorkonstruktion (A). Kurs behandlar hur en kompilator är uppbyggd med parsingteknik, analys, optimering och kodgenerering.

Logikprogrammering (A). Kursen tar upp logikprogrammering dels i ett logiskt, deklarativt perspektiv och dels ur ett exekveringsperspektiv där programspråket Prolog ingår.

Databasteknik (G2). Kursen introducerar de grundläggande begreppen inom databasområdet. Metoder för konceptuell modellering och design av databasstrukturer introduceras och olika datamodeller och operationer för dessa studeras t.ex. relationsbaserade och objektorienterade datamodeller. Vidare tas implementeringsaspekter upp.

Artificiell intelligens (A). Kursen ger en översikt över metoder och tillämpningar inom AI. Där studeras bland annat sökning som problemlösningsmetod, generering av planer för t ex robotar, logik som representation av kunskap, resonemang med ofullständig kunskap och AI-metoder för naturligt språkbehandling.

AI-programmering (A). Kursen behandlar agentorienterad AI-programmering med exempelvis maskininlärningsmetoder, kommunikation, samordning av och samarbete mellan intelligenta agenter. Ett projekt med roborfotboll (RoboCup) genomförs. Kräver en grundkurs i artificiell intelligens.

Designmönster (A). Kursen behandlar olika sätt att strukturera program genom sk "design patterns", som växt fram som standardmässiga sätt att lösa olika klasser av programmeringsproblem.

Komponentbaserad programvara (A). Kursen behandlar olika kriterier för komponent-baserade system och kompositionssystem. Genomgång och jämförelse av olika komponentmodeller (Corba, JavaBeans, EJB, COM, Software Architecture Systems) och moderna kompositionssystem, såsom metaprogrammering, generativ programmering, aspektorienterad programmering (Aspect-J) och invasiv komposition av programvara.

Avancerad programmering i C++ (A). Kursen ges varje termin med datortentamen 4 gånger om året. Kursen behandlar språket C++ med bibliotek. Kräver god progrmameringsvana.

Konstruktion och analys av algoritmer (A). Kursen tar upp principer för sekventiella och parallella algoritmkonstruktion och olika mått om algoritmers effektivitet, samt presenterar klasser av problem där effektiva lösningar saknas. En fortsättning på en kurs i Datastrukturer och algoritmer.

Datasäkerhet (G2). Kursen behandlar frågor som: användarautenticering, behörighetskontroll, krypteringstekniker och säkerhet för t.ex. nät och databaser.

Software Security (A). Kursen tar upp säkerhetsproblem i samband med utveckling av programvara. Metoder för att föhindra intrång, säkerthetstestning och utvärdering mm. Kursen kräver en grundkurs i datasäkerhet.

Data- och programstrukturer (G2). Kursen kan delvis ses som en fortsättning på Programmeringskursen i D1 där man studerar beräkningsmodeller som en bas för olika programmeringsparadigmer. Nya paradigmer (utöver funktionell, imperativ och objektorienterad) som studeras är bl a strömmar, lat evaluering, constraint-programming, logikprogrammering och icke-deterministisk programmering. Kursen behandlar implementering av dessa olika modeller i form av interpretatorer och avslutas med kompilering av Scheme (en Lisp-dialekt) till en registermaskin.

Programvarutestning (A). Systematiska metoder för testning av programvara, på enhets. modul- och systemnivå, automatisk och manuell teknik för generering och validering av test data, statisk och dynamisk analys.

 

Sidansvarig: Fredrik Heintz
Senast uppdaterad: 2012-08-03