Undervisningsbeskrivelse
Stamoplysninger til brug ved prøver til gymnasiale uddannelser
Termin(er)
|
2023/24
|
Institution
|
2023/24 - NEXT
|
Fag og niveau
|
Programmering B
|
Lærer(e)
|
|
Hold
|
S2022 Pro/m (S2m Pro)
|
Oversigt over gennemførte undervisningsforløb
Beskrivelse af de enkelte undervisningsforløb (1 skema for hvert forløb)
Titel
1
|
Intro til programmering med P5 og javascript
Fokus er på grundlæggende begreber herunder sekvens-selektion-iteration paradigmet, variable og datatyper, funktioner, fil input og output. Efterfølgende kigges på objekt-orienteret programmering. Dernæst arbejdes med videregående emne. Herunder en mere detaljeret liste.
Vi indleder med sekvens-selektion og iteration. Dernæst kigges på objektorienteret programmering. Herunder en mere detaljeret liste:
Betinget udførsel
Data typer og variabler,
Operatorer, udtryk og udsagn
For-løkker
Arrays og lister
Metoder og funktioner - call by value og call by reference
While-løkker
Datoer og tid
Strenge
Variabler og deres scope
Fil input og output
Input fra mus og tastatur
Lyd og billeder i p5
Introduktion til klasser - oprette og instantiere vha af konstruktører samt implementere simple metoder
Derudover introducerede vi også to forskellige IDE herunder Visual Studio og Visual Studio Code.
Vi kiggede kort på git og github samt installerede forskellige plugins til at lette teamkode (herunder Visual Studio Live Share).
Undervejs lavede vi små øvelser samt nogle lidt større projekter, hvor der var flere frihedsgrader. Projekterne bestod af følgende
Algoritmisk flagkonstruktion - Konstruere en algoritme først i pseudokode og dernæst i p5 der konstruerer og farvelægger et flag.
Algoritmisk kunst: Ud fra use-modify-create skulle eleverne tage udgangspunkt i eksisterende algoritmisk kunst og modificere det og til sidst skabe deres egen kunst
Katten efter musen spil: Konstruere vha af betinget udførsel et katten efter musen spil
Musikalsk instrument: Bruge p5 til at implementer et simpelt musik instrument eller en prototype heraf (trommer, klaver eller guitar). Træne eleverne i at bruge billeder og lyde i p5
Aktier, minigolf eller talrækker: De kunne selv vælge en af følgende projekter hvor de kunne simulere aktiers udvikling/renters rente, simulere minigolf eller konstruere talrækker. Primært handlede øvelsen om at øve eleverne i at bruge løkker
Litteratur og videoer:
Videoerne hentes fra codingtrain på youtube: https://thecodingtrain.com/beginners/p5js/
Man får en playliste ved at følge linket her: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA
Udover videoer bruger vi også nogle lærebøger/noter herunder:
[B1]: Programmering af Jesper Buch (se systime: https://programmering.systime.dk/)
[B2]: Nature of code af Daniel Shiffman (se https://natureofcode.com/)
[B3]: Introduktion til programmering i P5 af Henrik Sterner og Peter Sterner
|
Indhold
|
Kernestof:
|
Omfang
|
Estimeret:
50,00 moduler
Dækker over:
42 moduler
|
Særlige fokuspunkter
|
|
Væsentligste arbejdsformer
|
-
Eksperimentelt arbejde
-
Forelæsninger
-
Gruppearbejde
-
Individuelt arbejde
-
Lærerstyret undervisning
-
Pararbejde
-
Projektarbejde
|
Titel
2
|
Projekt: Programmering i teori og praksis
Et større projekt i programmering, hvor eleverne fik mulighed for at prøve deres teorien i praksis. Undervejs blev de også introduceret til dokumentation (herunder også flowdiagrammer, pseudokode, test, softwarearkitektur og rapportskrivning).
Herunder en gennemgang af de temaer de kunne vælge:
Tema 1: Spil
Lav en prototype på et spil. Det kan være et brætspil, som I digitaliserer. I må gerne lave et spil, som I selv har fundet på. Det kan også være et spil, som eksisterer allerede, men som I så videreudvikler på.
Spillet bør rumme muligheden for enten at spille mod en anden spiller eller mod computeren.
Tema 2: Formidling af en faglig problemstilling i et andet fag
Lav et program, som har til formål at formidle en faglig problemstilling eller aspekt fra et andet fag.
Det kan eksempelvis være:
Simulering og visualisering af et eksperiment i fysik/kemi eller biologi hvor man kan justere på forskellige parametre.
Modellering og beregning af noget i matematik. F.eks. regression eller finde nulpunkter for funktioner.
En samfundsfaglig problemstilling
Et bog eller et digt i dansk
Krav: Der skal gerne være en grafisk brugergrænseflade.
Tema 3: Din favorit algoritme
En algoritme er en sekvens af instruktioner, der løser en opgave eller et problem. I denne opgave skal du udvælge en konkret algoritme, som du forsøger at implementere og evt visualisere hvis muligt. Eksempler på typiske algoritmer:
Sortering af tal
Søge efter et element i en liste.
Sammenlign hvor ens to tekststrenge er
Find korteste vej i grafer
osv.
Som en del af opgaven bør du overveje hvorledes din algoritme kan benyttes eller inddrages i applikationer i den virkelige verden.
Tema 4: Simpel Chatbot
I det følgende tema skal I prøve at implementere en simpel chatbot.
Et eksempel på en sådan er Eliza Chatbot. Herunder en kort introduktion til Eliza Chatbot (hentet fra wikipedia): ELIZA er et tidligt computerprogram til behandling af naturligt sprog udviklet mellem 1964 og 1966 på MIT Artificial Intelligence Laboratory af Joseph Weizenbaum.[1] Programmet blev skabt til at demostrere det overfladiske i kommunikationen mellem menneske og maskine, idet ELIZA simulerede en samtale ved brug af mønstergenkendelse og metodisk substitution, som gav brugeren en oplevelse af at blive forstået af maskinen, til trods for at programmet ikke havde nogen forståelsesramme for miljø og hændelser.[2] ELISA var en af de første chatbots, men blev også anset for at være et af de første programmer med mulighed for at bestå Turing-testen. I sin enkleste form virker ELIZA på følgende måde:[3]
En prioriteret liste med nøgleord anvendes overfor brugerens indtastede sætning. Nøgleordet med højest prioritet, som findes i brugerens sætning, anvendes. Eksempler på nøgleord kunne være:
"can you" (kan du) → svar 1-3 anvendes
"can I" (kan jeg) → svar 4-5 anvendes
"you are" (du er) → svar 6-9 anvendes
...
(ikke fundet) → svar 106-112 anvendes
Nøgleordet har ledt til et sæt af svar; et af disse vælges tilfældigt. Fx kan svarene til "can you" (kan du) være:
"Don't you believe that I can<*" (Tror du ikke jeg kan ...?)
"Perhaps you would like to be able to<*" (Du vil måske gerne være i stand til at ...?)
"You want me to be able to<*" (Du vil gerne, om jeg kan ...?)
Svaret gøres komplet, ved at den del af brugerens sætning, som kommer efter nøgleordet, indsættes i svaret. I eksemplerne ovenfor erstattes "<*" af den del af brugerens sætning, som kommer efter nøgleordet.
Svaret vendes, således at 1. person (jeg, mig) erstattes af 2. person (du, dig) og modsat. (På engelsk kan denne udskiftning også omfatte verbet, som bøjes efter stedordet; I am, you are.)
Udover selve chatbotten må I også meget gerne lave en simpel brugergrænseflade.
Tema 5: Et selvvalgt projekt
Hvis I har en god ide, som I gerne vil forsøge at implementere, så kom og snak, så finder vi ud af det :-).
|
Indhold
|
Kernestof:
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
18 moduler
|
Særlige fokuspunkter
|
|
Væsentligste arbejdsformer
|
|
Titel
3
|
Studieretningscase i Computer Science - Rekursion
Eleverne arbejdede i forbindelse med deres studieretningscase med rekursion og rekursive talfølger i forskellige sammenhænge.
De blev trænet i at bruge rekursion til at løse simple problemstillinger samt kende forskel på iteration og rekursion
Forløbet blev afrundet med en mundtlig præsentation i mindre grupper og evalueret af de to studieretningslærere
|
Indhold
|
Kernestof:
|
Omfang
|
Estimeret:
10,00 moduler
Dækker over:
26 moduler
|
Særlige fokuspunkter
|
|
Væsentligste arbejdsformer
|
|
Titel
4
|
Avanceret programmering i Python med projekt
Først genopfriskes grundlæggende begreber herunder sekvens-selektion-iteration paradigmet. Men denne gang i Python. Efterfølgende kigges på objekt-orienteret programmering i Python. Dernæst arbejdes med videregående emne herunder avanceret konstruktioner i Python og datascience/machine learning teamer. Vi introducerede eleverne til værktøjer såsom numpy, scipy og matplotlib samt grundlæggende algoritmer indenfor maskinelæring.
I kilden [P1] er en lang og detaljeret lister over de enkelte temaer.
Som grundbog til Python brugte vi [P2]. Kilden [P3] blev brugt som supplement til dem der ville vide mere.
Afslutningsvises laves et større projekt (som udgør årsprøveprojekt for studieretningsklasser).
Udover videoer bruger vi også nogle lærebøger herunder:
[P1]: Kursus hjemmeside af Henrik Sterner (se https://github.com/HenrikSterner/IntroPython)
[P2]: A Whirlwind Tour of Python af Jake Vanderplas (se https://jakevdp.github.io/WhirlwindTourOfPython/)
[P3]: Dive into Deep Learning af A. Zhang et al
|
Indhold
|
Kernestof:
|
Omfang
|
Estimeret:
40,00 moduler
Dækker over:
28 moduler
|
Særlige fokuspunkter
|
|
Væsentligste arbejdsformer
|
|
{
"S": "/lectio/20240518/stamdata/stamdata_edit_student.aspx?id=666\u0026prevurl=studieplan%2fuvb_hold_off.aspx%3fholdid%3d56671235224",
"T": "/lectio/20240518/stamdata/stamdata_edit_teacher.aspx?teacherid=666\u0026prevurl=studieplan%2fuvb_hold_off.aspx%3fholdid%3d56671235224",
"H": "/lectio/20240518/stamdata/stamdata_edit_hold.aspx?id=666\u0026prevurl=studieplan%2fuvb_hold_off.aspx%3fholdid%3d56671235224"
}