---
title: "Introduktion till programmering"
course_code: D0009E
term: VT2026
period: LP3
pågående: false
---
Första programmeringskursen på civilingenjörsprogrammet. Språk: **Python**. Startar från variabler och aritmetik och bygger upp till **funktioner**, **rekursion**, **iteration**, **filhantering** och slutligen **objektorientering**. Ingen tidigare erfarenhet krävs — tempot är anpassat för nybörjare, men sista labbarna (ordlista, kontoregister) tvingar fram riktig strukturell kodkvalitet.

## Snabbfakta

|                |                                                                                                    |
| -------------- | -------------------------------------------------------------------------------------------------- |
| **Poäng**      | 7,5 hp (4 × 1 p labbar + tenta)                                                                    |
| **Period**     | VT2026, LP3                                                                                        |
| **Examinator** | [Fredrik Bengtsson](https://www.ltu.se/personal/b/fredrik-bengtsson) (bson@ltu.se · 0920-49 24 31) |
| **Språk**      | Python 3                                                                                           |
| **Kursbok**    | Föreläsningsslides räcker — se kapitelhänvisningar                                                 |

## Reflektion

> Om du aldrig kodat förut: räkna med att labb 3–4 tar betydligt mer tid än labb 1–2. "Ingen spaghetti-kod i main" är den enda regel som faktiskt betyder något — lär dig dela upp i funktioner tidigt, så blir resten lätt. Om du redan kan programmera: använd tiden att lära dig Pythons *idiom* (list comprehensions, unpacking, dict-tricks) istället för att repetera grunder.

## Innehåll

### Grunder
1. [[Variabler]]
2. [[Datatyper]]
3. [[Aritmetik]]
4. [[Logiska uttryck]]
5. [[Vägval]]

### Iteration och funktioner
6. [[While-loopar]]
7. [[For-loopar]]
8. [[Funktioner]]
9. [[Parametrar]]
10. [[Returvärden]]
11. [[Rekursion]]
12. [[Scope]]

### Datastrukturer
13. [[Strängar]]
14. [[Listor]]
15. [[Tupler]]
16. [[Kataloger]] (dictionaries)

### IO
17. [[Filer]]
18. [[Felhantering]]

### Objektorientering
19. [[Objektorientering]]
20. [[Klasser]]
21. [[Objekt]]
22. [[Metoder]]
23. [[Konstruktorer]]

## Examination

### Skriftlig tenta
Se Canvas för datum och hjälpmedel.

### Laborationer (4 × 1 hp, alla obligatoriska)

| Lab | Titel | Deadline |
|---|---|---|
| Lab 0 | Inledande övning (ej betygsatt) | — |
| Lab 1 | Aritmetik och utskrift | 2026-01-29 |
| Lab 2 | Rekursion och iteration | 2026-02-11 |
| Lab 3 | Ordlista | 2026-02-23 |
| Lab 4 | Kontoregister | 2026-03-10 |

### Kodstilskrav (lab 3–4)

- Väl kommenterad kod
- Ingen spaghetti i `main`
- Inga globala variabler
- In/ut via parametrar och returvärden
- Egna felmeddelanden (inte låta Python krascha)

## Resurser

- Föreläsningsslides + sammanfattning (Canvas / `meta/raw course dump/D0009E`)
- Kodexempel från föreläsningar — se [[D0009E - Kodexempel]]
- [Python 3 (python.org)](https://www.python.org/downloads/)
- [Python Tutor — kodvisualiserare](https://pythontutor.com/visualize.html)
- [Kattis — programmeringsproblem](https://open.kattis.com/)

## Statistik

<img src="../meta/bilder/kursstatestik/D0009E_stats_light.png" alt="Statistik D0009E" class="kursstat kursstat-light">
<img src="../meta/bilder/kursstatestik/D0009E_stats_dark.png" alt="Statistik D0009E" class="kursstat kursstat-dark">
