# Projektuppgift Programmering 1

__ status: alpha author: krm created: 2025-04-29 __

Det finns flera olika metoder du kan använda för att göra ditt projekt, se
nedan. Du ska hitta din egen progam idé och förverkliga denna.

# Sammanfattning

För att klara detta måste du minst ha gjort följande:

- En mapp som innehåller ditt projekt
- Det ska finnas en beskrivning på vad du vill göra.
- Mappen ska lämnas in minst 3 gånger så utvecklingen går lätt att följa
  - En gång efter projektet precis har kommit igång.
  - En gång när du uppsaktar att du har kommit halvägs.
  - En gång när du är klar.
- Ett program som går att köra
- All kod som lämnas in ska du ha skrivit själv.
- Det ska inteagera med en användare.
- Det ska innehålla både for och if loopar.
- Det ska visa på din kreativitet.
- Du ska kunna förklara rad för rad vad programmet gör muntligen för mig om det
  efter frågas.

Observera att dessa punkter är förslag. Du kan utifrån uppgift beskrivningen
lösa detta på ett annat sätt. Dessa punkter kan också ligga till grund för om du
vill lösa uppgiften på ett mer avancerat sätt.

# Bedömining

När det gäller bedömning så kommer det att ske beroende på vilket metod som
väljs och hur det utvecklas. Det är viktigt att inlämningen sker kontinuerligt.
Efter inledningen kommer du få förbättringsförslag, hur du följer dessa är
avgörande för vilket betyg du kan få. Följande punkter kommer var viktiga i
bedömning:

- Förståelse för programmering.
- Nyanserad motivera varför programmer är skrivet så som det är.
- Självständighet.
  - Att följa instruktioner för:
  - Hantering av kod
- Gällande kodstil.
- Program av komplex karaktär.
- Programmet är implementerat på ett effektivt och noggrant sätt.

Se också kursplanen som finns
[här](https://www.skolverket.se/undervisning/gymnasieskolan/laroplan-program-och-amnen-i-gymnasieskolan/gymnasieprogrammen/amne?url=907561864%2Fsyllabuscw%2Fjsp%2Fsubject.htm%3FsubjectCode%3DPRR%26version%3D4%26tos%3Dgy&sv.url=12.5dfee44715d35a5cdfa92a3).

# Sammanfattning

För att klara detta måste du minst ha gjort följande:

- Ett program

Observera att dessa punkter är förslag. Du kan utifrån uppgift beskrivningen
lösa detta på ett annat sätt. Dessa punkter kan också ligga till grund för om du
vill lösa uppgiften på ett mer avancerat sätt.

# Inlämning

Du lämnar in i slutet av varje lektion eller när det känns naturligt. Det kan
också vara så att du lämnar in om du har en svår löst bug i ditt program och
vill få kommentarer. Alla inlämningar ger inte poäng.

- 🦉
  [Att skapa en inlämningsfolder](https://htsit.se/a/project/Tutorial/create-a-submission-folder.sv.html)

# Betygästtning

Varje inlämning kommer få fler eller inga poäng. Dessa kommer ges i tre olika
nivåer 🥉, 🥈 och 🥇. Vid bedömning tas också hänsyn till total poäng 🪙. För
att få de högre betygen krävs poäng av 🥈 och 🥇 vallör. Se nedan för exempel på
förbättringsförslag.

Observera att visa förbättringsförslag har krav för att de ska bedömas.

## Poäng

__**Dessa gränser kan ändras i framtiden för att på ett bra sätt motsvara
kursplenen.** Vidare är det så att vid slutet av kursen skär alltid en
bedömninga utifrån kursplanens kriterium som kan avika från detta.

- För E krävs att du har fått 10 🪙.
- För D krävs att du har fått 12 🪙 plus minst 1 🥈.
- För C krävs att du har fått 15 🪙 plus minst 2 🥈+🥇.
- För B krävs att du har fått 20 🪙 plus minst 3 🥈+🥇 och 1 🥇.
- För B krävs att du har fått 25 🪙 plus minst 4 🥈+🥇 och 2 🥇.

Observera att svårigheten att få ett poäng kan variera något, men generellt blir
svårar desto mer poägn du har tagit.

# Innehåll

Allt som förekommit i denna kurs! Men se skärkilt på detta projekts
lektionsbeskrivningar.

## Guider och exempel

- 🦉
  [Starta ett projekt](https://htsit.se/a/project/Tutorial/start-a-project.sv.html)

# Metoder

## Textbaserade program

Ett progam där du bara använder console.log och prompt för att skapa ett
program. Vi har gjort något liknande förut.

## Webb applikation med DOM

Du skapar en webbsida och ger den funktioner med hjälp av DOM API eller
liknande.

## Alternativa ramverk

Du kan också använda sådana ramverk som nämns nedan. Men observera att ingen
support kan ges.

- p5.js
- Phaser
- Godot
- Three

# Förslag

## Textbaserade program

Något enkelt eller mer avancerat textbaserat spel. Observera att många av dessa
spel skulle också gå att göra som en webbaserat version.

- Black Jack är ett kortspel som inte skulle vara så svårt att göra ett
  textbaserat spel för.
- Hänga gubbe.
- Liar's Dice är ett rätt så avancerat spel som förklaras här.
- Du kan göra något frågespel om t.ex. Matematik.
  - Om bråk.
  - Om procenträkning.

## Webb applikation med DOM

En fördel med webbsida som inte är uppenbar är att du kan använda webstorage för
att spara saker om något.

- Gör en klocka som räknar ned till något viktigt, såsom:
  - Din student
  - Nästa fredag
  - Din födelsedag
  - Nyår.

- Gör ett program för att hålla reda på något, så som:
  - Parfymer.
  - Träning
  - Dataspel
  - Rollspelskaraktärer
  - Böcker

# Förbättringsförslag

Varje inlämning som inte är trivial och följer syfter med uppgiften kommer få
ett 🥉, max ett sådan poäng ges per lektion.

Observera att förbättringsförslag som är konkreta utifrån ett specifikt elev
projekt också kan förekomma.'

## Dålig kod

Dessa är varning, som i värsta fall kan innebär att et poäng dras bort från en
inlämning.

### 😭 Inga space i namn på mappar eller filer!

### 😭 Du ska ha skrivit all kod själv

## Förklaringar

Om du inte har gjort stora inlämningar kommer du ombeds att ge förklaringar på
din kod. Observera att detta oftas innebär att du inte kan få poäng under andra
kategorier.

### 🥉 Förklaring av enkel kod.

## Gundläggande

Max en av dessa olika motivationer för att få poäng kan ges.

### 🥉 Bra inlämning.

### 🥉 Bra början.

### 🥉 Fungerande kod.

### 🥉 Beskrivningen är konkret och lätt att förstå

### 🥉 Programmet följer någorlunda beskrivningen.

## Övriga

### 🥉 Överaskande bra lösning.

## Bedöms efter minst 10 poäng

### 🥈 Variabel namn

Namn skrivs normalt på engelska och är självförklarande.

### 🥈 En bra och innehållsrik beskrivning.

## Bedöms efter minst 15 poäng

### 🥇 En bra och innehållsrik beskrivning.
