Vad är Programmering?

Programmering innebär att du skriver koder till din data så att den ska förstå vad du vill utföra.

Programerming är ganska enkelt, du behöver bara lära dig ett programmeringsspråk och kunna matematik!

Ur kursplan i matematik

…”Vidare ska eleverna genom undervisningen ges möjligheter att utveckla kunskaper i att använda digitala verktyg och programmering för att kunna undersöka problemställningar och matematiska begrepp, göra beräkningar och för att presentera och tolka data” (Skolverket, 2018).

Algoritm är en ny term i det centrala innehållet för årskurs 4–6 och 7–9. I det centrala innehållet i årskurs 7–9 står det:

  • Hur mönster i talföljder och geometriska mönster kan konstrueras, beskrivas och uttryckas generellt.
  •  Hur algoritmer kan skapas och användas vid programmering. Programmering i olika programmeringsmiljöer.
  •  Hur algoritmer kan skapas, testas och förbättras vid programmering för matematisk problemlösning. (Skolverket, 2018)

En del av svar på enkätundersökning där 30 av 41 elever svarade på frågan " Vad kan du om programmering just nu?

Hitta primtal

Uppgiften är tagen från Gleerups matematikbok. (Gert Mårtensson, 2018, s. kod a616)

Emilie har fått som uppgift från sin lärare att undersöka talet 179 424 691, för att se om det är ett primtal. Problemet är att talet är för stort för att hon ska orka göra ett faktorträd. Emilie brukar använda sin dator för att lösa problem, och hon skriver följande kod:

var  talet = 179424691;
var primtal = true;
var test = 2;
while (test < talet)
{
    if (talet % test == 0) { primtal = false; }
    test += 1;
}

alert(primtal)

  • Hitta primtal test

  • Hitta primtal svar

Hitta primtal b) uppgift

b)      I Emilies kod finns det en bugg. Om man provar att ange talet 1 så svarar datorn att talet är ett primtal, vilket är fel. Hur kan man rätta buggen?

Det rätta koden är 

var talet = prompt("Ge mig ett tal!");

var primtal = "Det är ett primtal";

 

var test = 2;

while (test < talet)

{

if (talet % test == 0) { primtal = "Det är inte ett primtal"; }

test += 1;

}

 

if (talet == 1)

primtal = "Det är inte ett primtal";

 

alert(primtal);

  • Frågan om talet 1 är ett primtal?

  • Svar

upgift c

c)      Emilies lärare provar jättestora tal, men då tar det väldigt lång tid. Hur kan man ändra koden så att det går fortare? Kan du hitta lösningar på webben som du kan använda i din kod?

var talet = prompt("Ge mig ett tal!");
var primtal = true;
 
var test = 2;
var max = sqrt(talet)
 
while (test < max)
{
if (talet % test == 0) { primtal = false; }
test += 1;
}
 
if (talet == 1)
primtal = false;
 
alert(primtal);

Slutsats

  • Att lära sig programmera är effektivare sätt att komma fram till lösningen av ett valt problem
  • Eleverna har lär sig på ett nytt sätt resonera och analysera matematiska begrepp. 
  • De lärde sig bäst genom att de testade fram olika lösningar / koder det betyder ”Learning by doing”.
  • Eleverna lärde sig matematiska begrepp genom redskap dvs programmeringsmiljö som förstärker deras inlärning av abstrakta matematiska begrepp i detta fall ”ett primtal”.
  • Fokus ligger på förståelse av begrepp
  • Eleverna vill ha flera lektioner med programmering