Överkursböcker, labbar och en svårare P-uppgift
Ni som redan kan en del om programmering kan välja om ni vill gå samma grundkurs som nybörjarna eller gå en svårare kurs med högre krav, svårare böcker och en svårare P-uppgift. Ni får inte fler högskolepoäng eller högre betyg för att göra det här och ni får inte heller lägre krav på uppgifterna trots att de är svårare.
Överkursen rekommenderas för studenter som tycker att programmering är roligt och gärna investerar extra tid i det. Det rekommenderas också för studenter som vill arbeta på sin portfölj med arbetsprover för att kunna gå direkt till ett jobb som normalt sett inte anställer nyutexaminerade teknologer.
En medelsvår bok för överkurs.
Dive into Python Links to an external site. är en medelsvår bok som beskriver mer avancerade funktioner i Python. Den finns gratis på Internet och kan också köpas i kårbokhandeln.
Svårare böcker för överkursens överkurs.
Fluent Python Links to an external site. är en tung och svår bok om språkets mer avancerade funktioner.
En mindre tjock och också bra bok är Effective Python Links to an external site. av Slatkin som också beskriver några av språkets mer avancerade funktioner.
Introduction to Algorithms
Links to an external site. - En klassisk text om datalogi, mer specifikt algoritmer och tidskomplexitet.
Överkurslabbar
Nedanstående labbar kan göras istället för ordinarie labbar, med samma deadline, men de ger automatiskt extrauppgifterna eftersom de är svårare. De är tänkta för studenter med högre förkunskapsnivå/ambitionsnivå.
Överkurslabb 1: Skriv ett schackspel.
Labben går ut på att implementera ett schackspel som uppfyller följande krav:
- Spelet ska implementera alla regler från schack.
- Spelet behöver ett grafiskt användargränssnitt där man kan klicka på pjäser och målrutor för att flytta pjäser.
- Spelet behöver ett textgränssnitt där du kan ange schacknotation för att flytta pjäser.
- Spelet behöver en mycket enkel AI där motståndaren gör slumpmässiga, men regelmässigt korrekta schackdrag.
- Spelet behöver en lite smartare AI som besegrar slump-AI:n i åtminstone 75% av fallen.
Överkurslabb 2: Implementera ett grafiskt program för strålföljning (ray tracing).
Labben går ut på att träna optik genom att implementera strålföljning. Skapa en scen med åtminstone några ljuskällor, minst 2 blanka sfärer och ett schackbräde. Skriv en funktion som beräknar vilken färg en pixel skulle få genom att följa ljusets väg genom scenen. Använd sedan ett par for-loopar för att generera en hel bild av ljuskällor, sfärer och schackbräden.
- Kameran behöver gå att flytta (men det behöver inte gå snabbt)
- Sfärerna och schackbrädet behöver reflekteras i varandra.
- Ni får använda externa bibliotek som PyGL, PyGame eller liknande.
Överkurslabb 3: Skriv ett textäventyr Links to an external site..
Ordinarie labb 3 går ut på att träna stränghantering genom att ändra om textsträngar till strängar på andra språk. Den här labben går djupare och tränar på att läsa mer komplicerade strängar. För ett exempel på hur textäventyr kan vara utformade rekommenderas att läsa på om Stugan
Links to an external site..
Krav på programmet:
- Det behöver finnas minst 3 rum som skiljer sig från varandra.
- Det behöver finnas ett system för att hantera föremål som kan plockas upp, till exempel en lista.
- Spelet behöver ha (minst) ett mål och när det uppfyllts ska spelet avslutas.
- Spelet behöver ha en kommandotolk där man kan skriva kommandon som består av minst två tokens, till exempel "gå norrut", "ta svärdet", "attackera orchen", "öppna kistan" men korta kommandon som "vila" är också tillåtna.
Labb 4: Implementera Kloss Royale med ray casting Links to an external site..
Implementera ett first person shooter Links to an external site.-spel, men utan våld. Låt istället klossar slåss mot varandra. Om du klickar på en motståndarkloss så förlorar den. Om någon motståndare klickar på din kloss så förlorar du. Sista klossen i spelet vinner.
Krav på programmet:
- Du behöver implementera en egen 3D-motor. Att använda Unreal Engine eller likande ger inte godkänt.
- Spelet behöver inte ha hög framerate. Ett spel som kryper fram på Kth:s labbdatorer ger godkänt.
- Story, grafik och ljudeffekter ger inte högre betyg. Klossar går utmärkt.
- Nätverksstöd behövs inte utan alla andra klossar kan vara styrda av datorn och ha en liten fördröjning från det att de ser spelaren tills dess att de försöker klicka på hens kloss. Du kan ge motståndarklossen en viss sannolikhet att den träffar när den försöker klicka på din kloss.
Överkurs P-uppgift, individuell
Skapa något nytt som vi inte har sett förut. Som alla andra uppgifter i kursen så behöver den vara skriven i Python. Den behöver liksom ordinarie P-uppgift använda klasser och objekt, filhantering och ha ett grafiskt användargränssnitt. Hör med kursledaren om uppgiften verkar lagom omfattande.