1 of 34

Oplæg om Computationel Tankegang

2 of 34

Hvor stammer computational thinking fra?

Meget tidligt et begreb først nævnt i matematikundervisning�(compute = beregne)

  • Opgør med udfordringer ved facitorienteret “regning” uden transferværdi.
  • Behov for problemløsningsstrategier til at identificere og udføre beregninger (computing) med afsæt i realistiske kontekster.

3 of 34

Seymour Papert 1980, Konstruktionisme�Støtte og udvikle kognition

… my central focus is not on the machine but on the mind (…) C.T is the use of programming as an extension of our mind

Papert created Logo as ‘objects to think with’ and was interested in giving children cognitive artifacts that bridged the gap between the physical sensory world and the abstract inner world

… I shall be talking about how computers may affect the way people think and learn. I begin to characterize my perspektive by noting a destinction between two ways computers might enhance thinking and change patterns of access to knowledge

4 of 34

CT - Jeanette Wing

“CT is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an informationprocessing agent” (Wing J. , 2011)

”The solutions can be carried out by a human or machine, or more generally, by combinations of humans and machines”

“It represents a universally applicable attitude and skill set everyone, not just computer scientists, would be eager to learn and use.”

5 of 34

6 of 34

Kernen i Computational thinking

CT indebærer:

  • at bryde problemer op i mindre delproblemer (dekomposition),
  • identificere kernen i dem (abstraktion),
  • finde eksisterende løsninger, der kan bruges på delproblemerne (mønstre)
  • og udvikle generelle løsninger, der vil kunne bruges på andre tilfælde (algoritmer).

(BBC Bitesize, 2017).

7 of 34

Computational thinking og didaktik

8 of 34

Spil LightBot: kortlink.dk/2ewct

9 of 34

10 of 34

  • Læs de 2 eksempler på hvordan (abstraktion) kan se ud i praksis.
  • Find 1 eksempel mere på en aktivitet, hvor strategien kommer til udtryk.
  • Gør det samme for dekomposition, mønstre og algoritmer

11 of 34

Computational thinking og Computationel tankegang?

Same same?

12 of 34

Teknologiforståelse�- kompetenceområdet “Computationel tankegang”

13 of 34

HELT KORT

Eleverne skal lære at anvende, skabe, vurdere og visualisere data som afsæt for deres problemløsning.

Data kan f.eks. være:

  • Spørgeskemaer
  • Datalogning fra sensorer
  • Video
  • Interview

Data kan lagres i f.eks. regneark og kan visualiseres som grafer og diagrammer. Video og lyd kan lagres som filer på en computer eller i skyen. De kan bearbejdes og visualiseres v.h.a. redigeringsværktøjer.

COMPUTATIONEL TANKEGANG

Mønstre: Se efter mønstre og tendenser i indsamlet data.

Algoritmer: Beskriv en trinvis og logisk procedure for behandling af et datasæt.

Dekomposition: Identificere flere problemstillinger i de indsamlede data

Abstraktion: Se bort fra irrelevante data, udvælge et blandt flere fokusområder.

14 of 34

Idé udvikling

  • Find på 2 datatyper, der kan skabe “afsæt” for et forløb i teknologiforståelse.
  • Hvilke CT strategier kan være i fokus i forløbet?
  • Hvordan kan I skabe opmærksomhed på CT i forløbet?

15 of 34

HELT KORT

Eleverne skal lære at skabe egne algoritmer, analysere andres algoritmer og vurdere disse.

Skab algoritme:

  • Et script i Scratch der udfører en specifik funktion - f.eks. bruger en variabel til at huske et input.

Analyser en algoritme:

  • Beskriv et script i Makecode ved at kigge trin-for-trin på koden, og forudse hvad scriptet gør.

Vurder en algoritme:

  • Vurdér om et adgangskodescript virker godt nok, eller om det kan omgås.

COMPUTATIONEL TANKEGANG

Mønstre: Undersøg lignende scripts (algoritmer) for ligheder (mønstre) til udvikling af egne algoritmer.

Dekomposition: Skil et script ad i dets enkeltdele og test hver del (analyse).

Algoritmer: “trin-for-trin” tankegang, test efter hvert trin. Skab flowcharts (mindmaps) over en funktion/program.

Abstraktion: Fjern al overflødig kode og andre funktioner for at skabe et script, der udfører en bestemt funktion.

16 of 34

Algoritmisk tænkning�Unplugged

17 of 34

Spil 3 gange.

Når I er færdige, skal I lave en algoritme (en række af trin), som en anden kunne bruge for at lære, hvordan man spiller “terningeræs”.

18 of 34

Gentag 3 gange

{

Trin 1:

___________________________________________________

Trin 2:

___________________________________________________

Trin 3:

___________________________________________________

Trin 4:

___________________________________________________

Trin 5:

___________________________________________________

Trin 6:

___________________________________________________

Trin 7:

___________________________________________________

Skab en algoritme

Brug de “trin” du brugte, da du spillede spillet. Skriv dem ind i felterne til højre.

Udnyt “gentag loopet” for at undgå at skrive de samme instruktioner ned flere gange.

Sammenlign jeres algoritmer.

19 of 34

Terninge ræs

  • Sammenlign algoritmer
  • Ville en computer kunne udføre algoritmen?
  • Hvorfor/hvorfor ikke?
  • Ville eleverne kunne lave det her til et computerprogram i Scratch, hvor man spiller mod computeren?

20 of 34

Pseudokode

21 of 34

LEVEL 1 - pseudokode

SPØRGHvor gammel er din hund?”

SÆT Alder til Svar*7

SIGDin hun er “;Alder;” hundeår”

  • Hvad hvis programmet skulle vurdere, om man havde en ung eller gammel hund?
  • Hvad hvis programmet skulle give et bud på, hvor mange år hunden har tilbage at leve i?

22 of 34

Pseudokode

Lav et gættespil hvor spilleren skal gætte, hvor mange gaver julemanden har i sin sæk!

Der er mellem 1-100 gaver. Man får at vide hvis man gætter for højt eller lavt - og selvfølgelig når man gætter rigtigt!

23 of 34

Pseudokode

variabler?

Spørg

Hvis - Så

Vælg et tilfældigt tal

større end

mindre end

sig

Udvidelser

  • Hvad hvis man skal have at vide hvor mange forsøg man brugte?
  • Hvad hvis man max har 6 forsøg?
  • Hvad hvis man får at vide hvis man laver et dumt gæt?
  • Vil det her hjælpe eleverne med at programmere?

24 of 34

LEVEL 2 - pseudokode

SÆT variablen Forsøg til 0

TØM listen Gæt

SÆT TilfældigtTal til tilfældigt tal mellem 1-100

GENTAG INDTIL Svar = TilfældigtTal

SPØRG “Hvilket tal gætter du på?”

SÆT variablen Svar til dit svar.

ÆNDR Forsøg med 1

HVIS Svar er i listen Gæt sig “Dumt gæt!!” ELLERS

TILFØJ Svar til listen Gæt

HVIS Svar > TilfældigtTal, sig “For højt!”

HVIS Svar < TilfældigtTal, sig “For lavt!”

SIG “Du gættede tallet i ”;Forsøg;“ forsøg”

RØD = Variabel/liste

ORANGE = Kommando

25 of 34

Pseudokode

Hvad nu hvis DU var julemanden og computeren skulle gætte?

Hvordan ville algoritmen så se ud?

26 of 34

HELT KORT

Eleverne skal lære at analysere og tilrettelægge effektive strukturer for processer og funktioner vha. computationelle begreber såsom: gentagelse, rækkefølge, forgrening, betingelse og logiske operatorer.

COMPUTATIONEL TANKEGANG

Algoritmer: Eleverne øver sig på at udvikle de mest effektive scripts, der udfører en given funktion. Eleverne strukturer og opmærker koden, så den er let at forstå for andre. De bruger flowcharts/mindmaps som redskab i udvikling af script.

Mønstre: Eleverne præsenteres for kodeeksempler og lærer herigennem at genkende og genanvende strukturer/mønstre i hvordan programmer struktureres effektivt.

Dekomposition: Eleverne skiller kode ad i dets enkeltdele for at undersøge og forstå den bagvedliggende struktur.

Abstraktion: Eleverne skaber “proof of concept”, og udvikler et script, hvor de viser, at en bestemt funktion “kan lade sig gøre” sådan her. De fjerner alt andet - f.eks. layout, brugerinterface, grafik og afledte funktioner. Scriptet gør kun denne ene specifikke ting og kan senere bygges ind i et større program (modulisering).

Beskrivelsen læner sig af didaktiske årsager, primært op af definitionen på “strukturering”, som beskrevet i ordlisten: https://emu.dk/grundskole/teknologiforstaaelse/ordliste

27 of 34

Flowchart�Procesdiagram

28 of 34

Flowdiagram/Rutediagram/procesdiagram

https://app.diagrams.net/

29 of 34

Flowdiagram/Rutediagram/procesdiagram

Start program

Gentag for altid

Vent 10 minutter

Hvis

temp >= 80 grader F

Tænd AC�Ellers

Sluk AC

Pseudokode

30 of 34

Flowdiagram/Rutediagram/procesdiagram

31 of 34

FLOWCHART

I skal designe en password algoritme, der består af en pinkode på 4 cifre.

  • Tegn et flowchart over algoritmen.
  • Hvilke CT strategier er i fokus?
  • Vil det her hjælpe eleverne med at programmere?

Hvad hvis…

Man bliver låst ude efter 3 forkerte gæt og brugeren får en underretning. Hvis det ikke er brugeren der har forsøgt at bryde ind, skal koden nulstilles.

32 of 34

Hvilke SIMPLE algoritmer kan fungere som øvebane for eleverne ift. strukturering af dataprocesser?

  • Diskutér med din sidemakker og find på et par eksempler.�
  • Ideudveksling

33 of 34

HELT KORT

Eleverne skal kunne anvende, justere, konstruere og analysere modeller, der repræsenterer udvalgte dele af virkeligheden. Modellerne kan være skabt af eleven selv eller af andre. Endvidere skal eleverne kunne vurdere begrænsninger i digitale modelleringer.

Hvad kan en modellering bestå af?

  • En tegning, et diagram eller en pseudokode (et opdigtet logisk sprog til at modellere en eller flere funktioner)
  • En flowchart der modellerer/viser strukturen i en proces.
  • En simulation (virus, fysiske fænomener, regneark, matematik)
  • Et computerprogram, en robot eller en app, der på en eller anden måde modellerer eller simulerer elementer af virkeligheden.

COMPUTATIONEL TANKEGANG

Mønstre: Sammenlign en model med modeller man allerede kender for at spotte ligheder og forskelle.

Dekomposition: Skil eller analyser modellen i dens enkeltdele, for at forstå hvordan hver del har betydning for resten.

Algoritmer: Kortlæg en models virkemåde trin-for-trin. Lav en opskrift på hvordan modellen virker.

Abstraktion: Skab en model af et afgrænset område af virkeligheden og fjern alle andre parametre og forhold.

34 of 34

Modeller udsnit af virkeligheden.

Hvilke modeller vil eleverne kunne:

  • Kunne anvende?
  • Kunne skabe?
  • Kunne analysere?
  • Kunne vurdere?