Kursplan fastställd 2024-01-26 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 49114
- Sökbar för utbytesstudenterNej
- Endast studenter med kurstillfället i programplan.
Poängfördelning
Modul | LP1 | LP2 | LP3 | LP4 | Sommar | Ej LP | Tentamensdatum |
---|---|---|---|---|---|---|---|
0104 Laboration 3 hp Betygsskala: UG | 3 hp | ||||||
0204 Tentamen 4,5 hp Betygsskala: TH | 4,5 hp |
|
I program
Examinator
- Alex Gerdes
- Universitetslektor, Computing Science, Data- och informationsteknik
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
redogöra för datavetenskapens historik och nyckelpersoner, med beaktande av jämlikhet, mångfald och inkludering, för att förstå hur dessa aspekter har påverkat och fortsätter forma fältet.
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)
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.