Programmeringsspråk, 15 poeng

Innholdet i kurset kommer å foreleses i følgende orden.

  1. Fundamentale begreper som semantikk og syntaks for programmeringsspråk og beskrivelse ved hjelp av kontekst-frie gramatikker (CFGs). Introduksjon til programmering i C. Prosessering av strukturert tekst ved hjelp av Yacc og Lex.

  2. Funksjonelle språk. Det eldste funksjonelle språket er Lisp, men nyere språk som Standard ML og Haskell er bedre fra i stort sett alle synsvinkler. Haskell er noe lettere å formulere seg i, men gir ikke like rask eksekvering som Standard ML. Det mest moderne funksjonelle språket som er allment kjent er Clean, som har elegante, rent funksjonelle, biblioteker for systemprogrammering og grafiske brukergrensesnitt. Clean er sannsynligvis det beste programmeringsspråk som eksisterer, men er relativt lite i bruk.

  3. Logikkspråk. Prolog (PROgramming in LOGic) er det i særklass mest dominerende logikkspråket, men finnes i mange varianter, blandt annet i kombinasjon med objektorientering og funksjonell programmering. Målet er å si hva som skal gjøres og ikke eksakt hvordan det skal eksekveres.

    I så kalt induktiv logikkprogrammering (ILP), er målet å automatiskt lage logikkprogrammer fra input-output data.

  4. Scriptingspråk. To av de beste scriptingspråkene er Python og Perl. Siden risikon for programmeringsfeil er mindre i Python enn i Perl er Python oftest å foretrekke. Python inneholder også bedre mekanismer for modularisering og objekt-orientering.

Kurslitteratur er boken Programming Languages av Ravi Sethi, Addison-Wesley, 1996 og utvalgte dokumenter som kompletterer den, for eksempel om C, Standard ML, logikkprogrammering og Python.

Undervisningen består av forelesninger mandager 13.15 - 15.00 og fredager 9.15 - 11.00 i auditoriet i Os Alle' 11. Tom Heine Nätt er undervisningsassistent og hjelper til med oppgaveløsning og tilbakemelding på innleverte løsninger.

En sentral del av kurset er oppgavesett som deles ut under løpet av kurset. Det er svært viktig å jobbe kontinuerlig med disse under hele semesteret. Hver students løsninger på oppgavene leveres til Tom for feedback.

Minst 50% av eksamen kommer å velges fra de oppgaver som er delt ut. Hver student må selv programmere løsninger på oppgavene og sjekke sin kode ved hjelp av kompilatorer som finnes på odin eller installeres på egen hånd.

Eksamen er på fem timer med alle skrevne og trykte hjelpemidler tilatt. Det er altså anledning til å ta med den kode man laget under semesteret og bruke den til eksamen.

Bidra til et intressant og morsomt kurs gjennom å stille spørsmål på forelesninger og være aktiv i praktisk problemløsning.