Programmering 1 – Inlämningar

Inledning

Här presenterar vi 6 större uppgifter som skulle kunna fungera som inlämningsuppgifter i kursen Programmering 1. Varje uppgift har sina egna fallgropar och det finns utrymme för bedömning för alla betygsnivåer.

Vi kommer detaljerta beskriva uppgifternas för- och nackdelar. Det finns färdiga mallar att ladda hem för uppgiftsbeskrivning som kan delas ut till eleverna. Vi bidrar även med några videogenomgångar tänkta för att stödja läraren samt att ge färdiga lösningsförslag på olika nivåer.

Uppgifterna som kommer att diskuteras är:

  • Kalkylatorn. Ett projekt främst i Windows Forms
  • Sokoban. Ett spel i Console Application eller MonoGame
  • Snake. Ett spel i Console Application eller MonoGame
  • Memory. Ett spel i Windows Forms eller MonoGame
  • Luffarschack. Ett spel i Windows Forms eller MonoGame
  • MS Röj. Ett spel i Windows Forms eller MonoGame

Till alla inlämningsuppgifter bör man uppmuntra till kommunikation mellan eleverna/grupperna. Gärna i ett forum där läraren kan se vilka som är drivande och som hjälper andra med förklaringar. Detta kan ge ytterligare pusselbitar till en betygsbedömning.

I beskrivningarna av inlämningarna så blandas en del funktionella krav med krav som lättare går att koppla till kursplanen. Se dessa beskrivningar endast som förslag. Som lärare behöver du anpassa dessa. Vissa funktionella krav bör redigeras bort för att inlämningen inte ska bli för stor. Egentligen kan man säga att inlämningens funktionella krav kan vara samma för alla betygsnivåer men att kraven på implementation (kommenterad kod, klasser, grafisk UI, etc) bör vara annorlunda. Viktigt som alltid att eleven förstår förutsättningarna för bedömning.

Väldigt förenklat skulle man kunna översätta betygsmålen till:

  • E - Kopierat kod men har förståelse för den och kan redovisa lösningen i sin helhet med viss säkerhet.
  • C - Kopierat mycket kod men ändå gjort vissa anpassningar samt kan redovisa lösningen med viss säkerhet.
  • A - Använder egna lösningar till nyckelproblem eller gjort många anpassningar i koden samt redovisar lösningen med säkerhet.

Kalkylatorn

bild

Kalkylatorn är en mindre uppgift som främst tränar GUI-hantering via Windows Forms. Eftersom det finns många guider på nätet som gör mer eller mindre exakt samma sak så är det viktigt att lägga vikten helt på den muntliga redovisningen. Redovisning med viss säkerhet faller inom spannet E-C och redovisning med säkerhet når A-nivåer.

Samtidigt bör de funktionella krav som ställts i uppgiftsbeskrivningen uppfyllts.

Sokoban

bild

Denna uppgift lämpar sig för grupparbete. Det finns få förlagor att hitta på nätet vilket gör uppgiften betydligt svårare än andra. Eleverna måste i större utsträckning hitta egna lösningar till problemet.

Uppgiften går bra att lösa som Console Application (se lösningsförslag) men passar även bra till t.ex. MonoGame. Det finns många funktioner som kan läggas till eller tas bort så att nivån anpassas till nivån i gruppen. Precis som med kalkylatorn så måste stor vikt läggas på en muntlig redovisning vid betygsbedömning.

Sokoban kan ta lång tid att genomföra och under resans gång kan det vara bra att med genomgångar avslöja några sätt att tackla problemen t.ex. med inläsning av banor. Eleverna måste ändå sätta sig in i koden och anpassa den till sitt eget projekt.

Snake

bild

Snake har faktiskt vissa likheter med Sokoban då denna uppgift också går att lösa i ett Console Application (se lösningsförslag). Dock passar den egentligen bättre i Windows Forms med en Timer eller i MonoGame. Detta spel väntar inte på input från användaren varvid det behövs en timer eller kontinuerlig loop som inte väntar på input.

Uppgiften kan med fördel lösas med hjälp av samlingsklasser, t.ex. List. Ett av de svårare problemen att lösa är bl.a. att upptäcka om "masken" slår knut på sig själv. Precis som tidigare uppgifter så är den muntliga redovisningen viktig. Det finns en hel del exempel på nätet att hitta.

Memory

bild

Detta är logiskt sett en enklare uppgift. Använder man inte fält i två dimensioner så blir det problematiskt. Vissa likheter finns med Sokobans bana då den också enklast hanteras som ett 2D fält. Windows Forms eller MonoGame är att föredra.

Till denna uppgift finns det många förlagor på nätet.

Luffarschack

bild

Luffarschack eller "tic-tac-toe". Detta kan tyckas vara en för enkel uppgift då vi på csharpskolan redan har en färdig Windows Forms lösning. Det skulle kunna vara en bra idé att testa en ny grafisk miljö t.ex. MonoGame om man inte har jobbat med det tidigare.

För högre betyg kan eleverna fokusera på att göra en A.I. (articifiell intelligens). Datorn borde såklart aldrig förlora. Det finns enklare och svårare lösningar på en A.I.

Fundera på vilka frågor du som lärare vill ställa vid en muntlig redovisning. Luffarschack finns i många varianter på nätet så det är viktigt att kartlägga hur mycket eleven verkligen tagit uppgiften till sig.

MS Röj

bild

MS Röj eller Minesweeper är ett klassiskt spel. Denna uppgift lämpar sig för Windows Forms eller MonoGame. I denna uppgift är en "flood fill" algoritm rätt central. Ett utmärkt tillfälle att diskutera algoritmer och olika implementationer.

Detta är en uppgift som, precis som Sokoban, inte har så många lösningar på nätet. Den innefattar mer hantering av 2D fält och algoritmer dels för "flood fill" men även för att beräkna antalet grannar (minor).

Artiklar i serien

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Scroll to top