KURSPLAN
Programmeringsteknik, 7,5 högskolepoäng
Computer Programming, 7.5 credits
Kursplan för studenter höst 2022
Kurskod:TPTG11
Fastställd av:VD 2021-03-01
Reviderad av:Utbildningschef 2021-09-27
Gäller fr.o.m.:2022-08-01
Version:2
Utbildningsnivå:Grundnivå
Utbildningsområde:Tekniska området
Ämnesgrupp:DT1
Fördjupning:G1N
Huvudområde:Datavetenskap

Lärandemål

Efter genomgången kurs skall studenten

Kunskap och förståelse

- visa förståelse för grundläggande konstruktioner i språket C: kontrollstrukturer, inbyggda datatyper, funktioner och parameteröverföring, modularisering av program, stränghantering, sammansatta datatyper, pekare, dynamisk minneshantering, samt filhantering
- visa förståelse för den generiska programmeringsmetodiken för stegvis nedbrytning (stepwise refinement)

Färdighet och förmåga

- visa färdighet i att analysera och stegvist bryta ner ett problem till en nivå som möjliggör implementering i språket C
- visa färdighet i att tillämpa vedertagna krav på kodkonventioner, dokumentation och principer för god programvarukonstruktion
- visa färdighet i att tillämpa grundläggande konstruktioner i språket C
- visa förmåga att tillämpa och anpassa kodbibliotek
- visa förmåga att systematiskt felsöka i ett egenutvecklat program

Värderingsförmåga och förhållningssätt

- visa förmåga till ett strukturerat förhållningssätt till programvarukonstruktion utifrån ett givet problem
- visa förmåga att kritiskt granska och utvärdera kod med avseende på vedertagna konventioner och principer för god programvarukonstruktion.

Innehåll

Kursen är en introduktion till strukturerad programmering i ett imperativt språk. Speciellt fokus lägg på modulär utveckling.

Kursen innehåller följande moment:
- Grundläggande koncept i programmering och programmeringsspråk, t.ex. variabler, operatorer och datatyper
- Kontrollstrukturer i C, t.ex. villkorssatser och konstruktioner för att uppnå iterationer (loopar), samt rekursion
- Grundläggande datastrukturer: vektorer (arrayer), poster (structs) och länkade listor, samt egendefinierade typer (typedef)
- Kodkonventioner för namngivning av konstanter, variabler och funktioner samt val av idiom
- Uppdelning av ett program i funktioner samt parameteröverföring via call-by-value och call-by-reference
- Principer vid programkonstruktion, främst hantering av komplexitet via stegvis nedbrytning av problem/program
- Modularisering: Uppdelning av ett program i entiteter, med separation av gränssnitt och implementering
- I/O och filhantering: med hjälp av biblioteksfunktioner och standard C
- Stränghantering, som en vektor av tecken och via moduler i kodbibliotek
- Sökning och sortering med basala sök- och sorteringsalgoritmer
- Pekare: Pekaroperationer och -aritmetik samt dess roll i parameteröverföring, delade data och minneshantering
- Dynamisk minnehantering: Allokering och avallokering av minne under programexekvering
- Felsökning: Tekniker för felsökning i egna program under utveckling
- Koddokumentation på programnivå, funktionsnivå och satsnivå

Undervisningsformer

Föreläsningar, övningar och handledning av laborationer.

Undervisningen bedrivs normalt på svenska men undervisning på engelska kan förekomma.

Förkunskapskrav

Grundläggande behörighet samt Fysik 2, Kemi 1, Matematik 4. Eller: Fysik B, Kemi A, Matematik D (eller motsvarande kunskaper).

Examination och betyg

Kursen bedöms med betygen 5, 4, 3 eller Underkänd.

Poängregistrering av examinationen för kursen sker enligt följande system:
ExaminationsmomentOmfattningBetyg
Tentamen14,5 hp5/4/3/U
Laborationer3 hpU/G
1 Bestämmer kursens slutbetyg vilket utfärdas först när samtliga moment godkänts.

Kurslitteratur

Kurslitteraturen fastställs 8 veckor innan kursstart.

Titel: C How to Program, Global Edition, 8th Edition
Författare: Paul Deitel and Harvey Deitel
Förlag och år: Pearson, 2015.
ISBN-13: 978-1292110974