> For the complete documentation index, see [llms.txt](https://kunskapsbasen.chas.school/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kunskapsbasen.chas.school/kurser/programmeringsmetodik-20yhp.md).

# Programmeringsmetodik, 20yhp

Kursplanen fastställd av ledningsgruppen 2017-06-20

**Utbildning:** Fullstack Webbutvecklare

**Utbildningsnummer:** 201618340

**Omgång:** 1 & 2

**Omfattning:** 20 yrkeshögskolepoäng

**Undervisningsspråk:** Svenska (material delvis på engelska)

**Förkunskapskrav:** Nej

**Valbar kurs:** Nej

## Huvudsakligt innehåll

Syftet med kursen är att ge kunskaper och praktiska färdigheter i programmeringsmetodik.

I kursen kommer flera metodiker introduceras såsom testdriven utveckling, versionshantering, debugging m.m.

Den studerande kommer att lära sig om olika roller/resurser i utvecklingsprojekt och även i specifika webbutvecklingsprojekt. Detta inkluderar gemensamma arbetsflöden samt lämpliga verktyg och tekniker.

Den studerande kommer få kunskap om olika arbetsverktyg för utveckling, test och felsökning.

Genom kursen uppnås följande utbildningsmål:

* Kunskap 34, 35, 36, 37, 38, 39, 40, 41
* Färdighet 13, 14, 15, 16, 17
* Kompetens 3 (delvis)

Siffror inom \[ ] nedan i kursens kunskaper, färdigheter och kompetenser refererar till utbildningens övergripande mål.

## Kursens mål

### Kunskaper

1. Versionshantering (Git) \[34]
2. Benchmarking \[35]
3. Testdriven utveckling \[36]
4. Deploy och staging \[37]
5. Debugging \[38]
6. Dokumentation \[39]
7. Struktur av kod i projekt \[40]
8. Automatisering av arbetsflöde \[41]
9. Virtualisering av utvecklingsmiljö \[41]
10. Bundeling-verktyg \[41]
11. Terminalinterface \[41]

### Färdigheter

1. Kommunicera åtaganden och lösningar inom webbutveckling i nationella och internationella sammanhang \[13]
2. Identifiera, formulera, analysera och lösa problem inom programmering \[14]
3. Kunna använda sig av bundeling- och automatiseringsverktyg i utvecklingen av webblösningar \[15]
4. Arbeta i en virtualiserad utvecklingsmiljö \[15]
5. Arbeta genom ett terminalinterface \[15]
6. Skapa bra kodstruktur och dokumentation i ett projekt \[16]
7. Arbeta med att deploya en webblösning till olika miljöer \[17]
8. Arbeta med testdriven utveckling och debugging av kod \[17]
9. Arbeta med versionshantering både enskild och inom ett team \[17]

### Kompetenser

1. Identifiera, formulera, analysera och använda sig av informationssökning för att lösa problem inom programmering \[3]

## Former för kunskapskontroll

Kursen bedömd genom följande obligatoriska examinationsmoment:

* en individuell skriftlig och muntlig inlämning (kunskap 1-11)
* tre projekt i grupp (färdighet 1-9, kompetens 1)
* observation i arbetet (färdighet 1-9, kompetens 1)

## Principer för betygsättning

Betyg sätts i form av Icke godkänt (IG), Godkänt (G) eller Väl godkänt (VG).

**Icke godkänt (IG)**

* Den studerande har fullföljt kursen men inte nått alla kursens mål

**Godkänt (G)**

Den studerande:

* redogör översiktligt för alla kursens kunskapsmål
* utför alla färdigheter som kursen har som mål med gott handlag
* identifiera, formulera, analysera och använda sig av informationssökning för att lösa problem inom programmering med viss handledning

**Väl godkänt (VG)**

Den studerande:

* redogör utförligt för alla kursens kunskapsmål
* utför alla färdigheter som kursen har som mål med mycket gott handlag vilket omfattar att:
  * i versionshanteringen jobba väldigt strukturerat med commits, bransching och issue-tracking
  * löpande över längre tid effektivisera sin arbetsprocess inom utveckling samt bidra till sitt teams ökade effektivitet
* identifiera, formulera, analysera och använda sig av informationssökning för att lösa problem inom programmering på egen hand
