MatematikForAlla / gr-programmering-7till9

Material för att komplettera matematiken i åk 7-9 med programmering
Other
0 stars 0 forks source link

Vilket språk? #1

Open dbosk opened 6 years ago

dbosk commented 6 years ago

Python. Jag har sett ett antal studier som visat att Python är bland de bästa språken man kan börja programmera med (och därav har de flesta universiteten bytt till Python som första språk när de introducerar programmering). Det har bra egenskaper som att det är lätt att lära sig, man har inget större problem att gå över till ett annat språk senare (lättare att byta från Python än om man börjat med något annat språk).

http://tucs.fi/publications/view/?pub_id=phdMannila09a https://research.it.abo.fi/personnel/lgrandel

Python är gratis, öppen källkod. Det finns en online-version här:

https://www.python.org/shell/

Du har även några öppna tjänster som fokuserar på att lära ut Python, exempelvis CodingBat brukar vara populär:

http://codingbat.com/python

Det finns även många bra bibliotek (som också är öppen källkod och
gratis) som du kommer att ha nytta av när du integrerar programmeringen i ämnet (tillämpar det). De jag tror är absolut mest relevanta för er är

Med dem får du i Python i princip allt som är bra med Matlab ;-) SciPy
(https://scipy.org) är en samling av bibliotek som är inriktade mot
vetenskaperna, så du hittar några fler där.

Med dem så passar detta väl in i alla de naturvetenskapliga ämnena. För att få en ännu mer matematisk prägel så har du SymPy:

http://sympy.org

Det är inriktat på symbolisk matematik, så ett "Computer-Algebra System"
i Python.

Jag körde Python med åk 7-9 när jag undervisade
på en grundskola parallellt med exjobbet våren 2011. Du hittar allt
material här:

http://progtk.bosk.se/

I vilket fall finns det flera gränssnitt till Python. Ett som jag tror är bra för skolan är Jupyter Notebook (tidigare IPython Notebook). Där kan man blanda text och Python-kod, så i princip kan eleverna använda det för att skriva labbrapporter. Du har ett exempel här:

https://try.jupyter.org/

(Jupyter notebooks funkar med fler programmeringsspråk än Python.)

Python 3 är det mest strategiska valet. Då har
man ett språk som enkelt kan användas i samtliga ämnen, även de
samhällsvetenskapliga (som också ska ha programmering).

dbosk commented 6 years ago

Haskell (också öppen källkod, naturligtvis). Det är ett funktionellt
språk, vilket betyder att det är lite mer "som matematik" än vad Python
är (Python är ett procedurellt språk). Ett exempel:

divides a b   = b `mod` a == 0         
divisors n    = [ x | x <- [1..n], x `divides` n ]                               

Som du kan se är notationen för listor väldigt lik den för mängdläran.
Funktionen divides testar delbarhet medan divisors ger en lista. Så
allt görs genom dessa "mer matematiska" funktioner; du har inga for-
eller while-iterationer, utan dessa gör du med rekursion.

Så den här typen av programmering skiljer sig från "vanlig"
programmering (de flesta börjar med procedurell programmering), men
börjar man med denna så blir det den procedurella programmeringen som är
konstig. Så jag tror inte att det borde vara några problem att köra med
detta. Det som talar emot är att man helst vill ha ett språk, man vill
inte lära eleverna Python i grundskolan och sedan gå över till Haskell i
gymnasiematematiken och fortfarande köra Python i andra kurser. Jupyter
Notebooks går att köra med Haskell också, Matplotlib finns också, så
rent tekniskt är de väl lika. Men Python är ett av de mest använda
språken, så jag tror att det är mer motiverande för eleverna också ---
då kan de faktiskt läsa och förstå många projekt som finns på GitHub
exempelvis.