Vi antager, at der forud for dette forløb er arbejdet med simplere programmeringsformer, hvor grundlæggende begreber er introduceret. Det kunne f.eks. være blok-programmering med skift mellem blokke og tekstkode. Herunder variable, løkker og forgreninger. Systemer der tilbyder træning heri er bl.a. Grasshopper (https://grasshopper.app/), som er gamificerede JavaScript-øvelser på mobilen og OzoBlockly (https://ozobot.com/create/ozoblockly), som er et udviklingsmiljø til Ozobot-robotterne, som snart tilbyder JavaScript blok- og tekstprogrammering.
Aktivitetens længde
Hver lektion er normeret til 90 minutter.
Materialer
Når du downloader forløbs materialet, får du adgang til forløbets filer, arbejdsark, samt andet relevant materiale.
Beskrivelse af aktiviteten
Som beskrevet ovenfor, er temaet for forløbet at modellere et problemområde (håndtering af at basketball hold). For at holde styr på basketballholdet er der udviklet et system, hvor de mest basale attributter omkring spillerne er kodet ind (navn, alder, værdi). Der er også lavet nogle grundlæggende funktioner (displayTeam, findAge, findNumberOfPlayers).
Afprøvning
–
Forslag til forbedring
På B-niveau vil det være oplagt at arbejde med lagring og håndtering af data i et separat format. En mulighed kunne være at arbejde med JSON som datamodel. Herved opnår man at eleverne kan arbejde med repræsentation af data uden at skulle arbejde med databaser.
JSON er det mest brugte format til udveksling af data mellem forskellige IT systemer og en rigtig database er en stor udvidelse af forløbet. En mulighed for at bruge JSON i forløbet er skitseret herunder: De skal konstruere af en udvidelse til programmet som kan gemme spillerdata i JSON format (create). Oplægget er, at klubben skal sælges, og at den den nye klub har sit eget system til håndtering af spillere. Den nye klub er altså kun interesseret i data om spillerne, og de skal leveres i JSON format, så de kan indlæses i det nye system. Eventuelt skal data indlæses et andet sted for at sikre at de kan anvendes. Eftersom JSON primært anvendes som et udvekslingsformat er det dog mere oplagt at koble en underliggende database til programmet hvor spillerdata hentes og gemmes.
På B-niveau er der krav, om at eleverne skal implementere en database i et it-system og på denne måde kan eleverne arbejde med E/R diagrammer og normalformer. Også denne del vil kunne overføres til andre lignende problemområder.
Andet
I forløbet har vi først og fremmest lagt vægt på princippet “use-modify-create” eller en variation heraf, nemlig “use-analyze-modify-extend”. Arbejdet med JavaScript kræver noget erfaring, før det bliver naturligt for eleverne, at skabe selvstændigt. Meget tid vil gå med
finde og debugge syntaks, for at skabe et script fra bunden, hvorfor vi har valgt, at eleverne i dette forløb skal være skabende ved at udvide et eksisterende script. Vi bruger stepwise improvement til de større modifikationer eller udvidelser af koden. Generelt arbejder eleverne i par, og mødes med andre elever eller par for at få ideer og sparring på deres arbejde, hvorefter de kan forbedre deres kode. Man skal her være opmærksom på, at direkte afskrift af kode ikke er hensigtsmæssig. Til at introducere konkret syntaks og teknikker bruger vi Worked Examples, hovedsageligt med video, som er særdeles velegnet til at vise og forklare en proces. Efter et forløb med blok-programmering kan eleverne gennemskue tekstbaseret programmering. Da vi giver dem koden, skal eleverne ikke skrive fra bunden og skal i første omgang delvis kopiere kode fra den, de får. Eleverne vil støde på JavaScript mange steder, da nettet er bygget op om det, og koden kan ses i alle browsere. Til eksamen vil man kunne udlevere noget tilsvarende, hvor eleverne skal ændre casen til den, der er spurgt om.
Velkommen til CCTD Library for undervisningsforløb!
Biblioteket indeholder undervisningsforløb i Computational Thinking (CT) – rettet mod gymnasiefag (fx dansk, samfundsfag, fysik, m.fl.) og som sit eget fag (informatik).