Kursplan för Introduktion till funktionell programmering

Kursplan fastställd 2023-02-04 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnIntroduction to functional programming
  • KurskodTDA555
  • Omfattning7,5 Högskolepoäng
  • ÄgareTKDAT
  • UtbildningsnivåGrundnivå
  • HuvudområdeDatateknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 49126
  • Sökbar för utbytesstudenterNej
  • Endast studenter med kurstillfället i programplan.

Poängfördelning

0104 Laboration 3 hp
Betygsskala: UG
3 hp0 hp0 hp0 hp0 hp0 hp
0204 Tentamen 4,5 hp
Betygsskala: TH
4,5 hp0 hp0 hp0 hp0 hp0 hp
  • 25 Okt 2023 em J
  • 03 Jan 2024 em J
  • 20 Aug 2024 fm J

I program

Examinator

Gå till kurshemsidan (Öppnas i ny flik)

Behörighet

Grundläggande behörighet för grundnivå
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Särskild behörighet

Samma behörighet som det kursägande programmet.
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Syfte

Detta är en introduktionskurs i programmering som använder det funktionella programmeringsspråket Haskell. Det primära syftet är att lära ut grundläggande datavetenskapliga begrepp, samtidigt som studenterna lär sig skriva realistiska (små) program. Sekundära mål är att ge en grund för kommande kurser (specifikt datastrukturer, algoritmer, digitala kretsar, formella metoder och kurser i programspråk), samt att ge en inblick i karriärsmöjligheter inom data genom inbjudna talare.

Lärandemål (efter fullgjord kurs ska studenten kunna)

  • beskriva grundläggande begrepp inom modern funktionell programmering, såsom: datatyper, funktioner inklusive högre ordningens funktioner, lat evaluering, oändliga datastrukturer
  • beskriva en grundläggande uppsättning av programmeringstekniker, såsom: rekursion, testning, användning av datatyper för modellering och problemlösning
  • skriva små funktionella program för olika tillämpningar
  • strukturera program så att de blir lätta att förså och förändra, genom lämplig användning av datatyper, abstraktion, och återanvändbar kod
  • genomföra effektiv testning av funktionella program med hjälp av lämpliga verktyg
  • visa färdigheter att i olika programmeringssammanhang bedöma vilka programmeringstekniker som lämpar sig bäst för att lösa det aktuella problemet

Innehåll

Detta är en introduktionskurs i programmering som använder ett funktionellt programmeringsspråk. Det primära syftet är att lära ut grundläggande datavetenskapliga begrepp, samtidigt som studenterna lär sig skriva små program. Sekundära mål är att ge en grund för kommande kurser (specifikt datastrukturer, algoritmer, formella metoder och kurser i programspråk).

Specifika ämnen som behandlas i kursen är:
  • värden, typer och funktioner
  • sammansatta datastrukturer (listor, tupler, användardefinierade typer)
  • högre ordningens funktioner
  • användning av abstraktionsmekanismer för att undvika repetitiv programmering
  • rekursion och rekursiva datatyper
  • effektiva och ineffektiva program
  • input-output
  • verifiering med hjälp av testning

Organisation

Undervisningen består av föreläsningar, gruppmöten samt handledda programmeringsövningar. Kursen kan komma att ges på svenska eller engelska. 

Övrigt

Studenter som redan har programmeringskunskaper uppmuntras att välja DIT143/TDA452 Funktionell programmering istället. Kursen kan inte ingå i en examen där kursen DIT143/TDA452 ingår, inte heller i en examen som baseras på en annan examen där DIT143/TDA452 ingår.

Litteratur

  • Slides och annat material från föreläsningarna
  • Bok: 'Programming in Haskell' av Graham Hutton (2nd edition)
Se kurshemsidan för detaljer.

Examination inklusive obligatoriska moment

Kursen examineras genom en individuell skriftlig salstentamen, samt ett antal obligatoriska laborationer som normalt genomförs i grupp om 2-3 studenter.

Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om pedagogiskt stöd på grund av funktionsnedsättning.