Forfatterne søgte om og fik i 2004 tid til et pædagogisk udviklingsprojekt knyttet til indsatsområderne i Erhvervsakademiet Århus Købmandsskoles kvalitetsplan.
Projektets indhold var at planlægge og afvikle et pædagogisk introduktionsarrangement for nystartede multimediedesignerstuderende og at fremstille undervisningsmaterialer til samme.
Arrangementet sigtede mod at give en ny og anderledes pædagogisk vinkel på programmering for at fremme den mere grundlæggende programmeringsmæssige forståelse.
De systemer vores studerende skal programmere i har nogle problemer i forhold til nybegyndere. Generelt kan man sige at tærsklerne er for høje. Der er for langt mellem en programlinie er skrevet og til man kan se resultatet af den.
Undervisningsmaterialerne sigter mod at visualisere programmeringsmæssige begreber på en umiddelbar og lettilgængelig måde hvor selv de aller pæneste piger og de aller følsomste fyre kan være med.
Konkret har vi til projektet fremstillet nogle læringsobjekter der kan anvendes i den nystartede studerendes introduktion til programmeringsverdenen. Målet er at den studerende på egen hånd kan tilegne sig nogle grundlæggende begreber som kontrolstrukturer, variable og funktioner og få et indblik i udvalgte matematiske begreber som er aktuelle for multimediedesignere. (Læringsobjekterne kan også kunne bruges af andre studerende der synes programmering er svært.)
Læringsobjekterne er knyttet til en interaktiv "sandkasse" med umiddelbar grafisk respons på brugernes programmering. Denne interaktive legeplads er udviklet til projektet udfra vore egne ideer kombineret med eksisterende viden på området. (Papert, Newmann, Knudsen m.fl.)
| Eksempler | |
|---|---|
Progressionen i læringsobjekterneLæringsobjekterne er tilrettelagt så både de studerende der har forudsætninger i programmering og de der ikke har kan have glæde af materialet. Efter introduktion af hvert nyt begreb tilbydes et træningsobjekt hvor begrebet foldes ud gennem eksempler. Begreberne der gennemgås i læringsobjekterne er listet her i studieordningsterminologi:
Den tilgivende syntaks - filosofi og virkelighedDen grundlæggende ide med Pastelsnak er at brugeren straks kan gå i gang med at programmere og straks kan se resultaterne af anstrengelserne. Læringsobjekterne, som ganske vist er i HTMLform, kan ligge i papir ved siden af computeren så der kun er et program aktivt i computeren. Syntaksen i Pastelsnak er den samme som i JavaScript og ActionScript, men fortolkningen er tilgivende. (Nogle vil sikkert kalde den sloppy.) Det er fx ikke vigtigt om man husker semikolon efter linien eller om der er to lighedstegn i konditionen i en IFsætning. Ideen med dette er at der skal være så få og så lave tærskler for brugeren som muligt. Virkeligheden er selvfølgelig stadig barsk. Der skal være balance i paranteser, funktionsdefinitioner og iterationer skal have en ganske bestemt form og programkode som ikke kan fortolkes afvises med fejlmeddelelser. Der kan i kommende versioner arbejdes mere med fortolkeren så den bliver endnu mere tilgivende. Omvendt vil nogen mene at det er en vigtig aktivitet at lede efter sine egne syntaksfejl. Man kunne forestille sig at kommende versioner af pastelsnak har en indstillingsmulighed for læreren på dette punkt. Sprogets elementerHvad er det lige man kan i pastelsnak - ja det er sådan set kun to ting: Man kan styre en blyant rundt på tegnefladen og lade den tegne figurer og mønstre i forskellige (pastel og andre) farver. Man kan lægge farvede flader (rektangler og ovaler) ud på tegnefladen. - men det er vel heller ikke så ringe endda. Liste over Pastelsnaks basale kommandoer:
Koordinatsystem, linier og vinklerKoordinatsystemet er defineret umatematisk ligesom i Flash, Director og webbrowsere dvs. X-aksen går mod højre og Y-aksen går NEDAD. Enheden for koordinaterne er en pixel. Vinkler angives i grader og positive vinkler drejer med uret. (umatematisk igen, men nu begrundet i en brugerundersøgelse) Linier kan tegnes i forskellige bredder men der er tendens til huller og takker når bredden er større end 1. Farver og fladerFarver defineres med tre talværdier mellem 0 og 255 som repræsenterer hhv Red, Green og Blue Firkant tager 4 parametre som er hhv x og y koordinat for det ene hjørne og x og y koordinater for det modstående hjørne. Oval tager også 4 parametre, de definerer på samme vis det rektangel som omslutter ovalen. FunktionerFunktioner findes i to varianter: dem man definerer selv ved hjælp af:
function minfunk (par1) {
....programlinier
....
}
- og de der er indbygget i sproget fx random(), sin(), abs() og date(). En mere udførlig liste kommer som bilag A. Avancerede anvendelserBilag A: Indbyggede funktionerabs(x) absolut værdi, abs(2)=2, abs(-2)=2, abs(1.35)=1.35, abs(-1.35)=1.35 atan(x) arctangent, atan(1)=0.7854 (bemærk vinkler betegnes i radianer) cos(x) cosinus, cos(1)=0.5403 date() a=date() , a får strengværdien af dags dato ex: "03-01-2005" exp(x) opløfter e til x potens (e er de naturlige logaritmers grundtal) integer(x) afrunder x til nærmeste heltal, integer(3.75)=4 log(x) den naturlige logaritme til x, log(4.3)=1.4586 PI, pi (pi er ikke en funktion men snarere en konstant) PI=3.1416 power(a,x) potens, opløfter a til x'nde potens, power(4,3)=64 random(x) danner et tilfældigt heltal mellem 1 og x, random(5)=3 (eller måske 2? 1? 4? eller 5?) sin(x) sinus til x, sin(1.57)=1.0000 (bemærk vinkler betegnes i radianer) sqrt(x) kvadratroden af x, sqrt(100)=10 tan(x) tangens til x, tan(2.0)= -2.1850 (bemærk vinkler betegnes i radianer) time() computerens ur, a=time() , a får strengværdien af klokken ex: "09:45 " Funktionerne date() og time() som returnerer strenge har vi ikke meget glæde af, men vi kan dog se værdierne hvis de tildeles til en variabel og vi kigger på variabelviseren . Bilag B: AnsøgningProgrammeringsforståelse for forsigtige piger og følsomme drenge Hermed ansøges om 240 timer til følgende pædagogiske udviklingsprojekt knyttet til kvalitetsplanens indsatsområder 2 og 3. (Formindskelse af frafald og Kompetenceudvikling og e-læring) Projektets indhold er at planlægge og afvikle et pædagogisk introduktionsarrangement for nystartede multimediedesignerstuderende og at fremstille undervisningsmaterialer til samme. Arrangementet sigter mod at give en ny og anderledes pædagogisk vinkel på programmering for at fremme den mere grundlæggende programmeringsmæssige forståelse. Undervisningsmaterialerne sigter mod at visualisere programmeringsmæssige begreber på en umiddelbar og lettilgængelig måde hvor selv de aller pæneste piger og de aller følsomste fyre kan være med. Konkret vil vi til projektet fremstille nogle læringsobjekter der kan anvendes i den nystartede studerendes introduktion til programmeringsverdenen. Målet er at den studerende på egen hånd kan tilegne sig nogle grundlæggende begreber som kontrolstrukturer, variable og funktioner. (Læringsobjekterne vil også kunne bruges af andre studerende der synes programmering er svært.) Læringsobjekterne vil være knyttet til en interaktiv "legeplads" med umiddelbar grafisk respons på brugernes programmering. Denne interaktive legeplads vil vi udvikle til projektet udfra vore egne ideer kombineret med eksisterende viden på området. (Papert, Newmann m.fl.) Hvis skolen ønsker det kan vi efter projektets gennemførelse give undervisningsmaterialerne en form der gør det muligt at stille dem til rådighed for andre undervisere i landet. Tid til dette aftales særskilt. |
frem(60) drej(45)
.. efter 6 klik på KØR base; ny; nyfarve(220,230,175); oval(50,50,250,250); nyfarve(175,230,230); oval(100,100,200,200); nyfarve(230,160,255); oval(130,130,170,170);
Ovaler kan være cirkler
togvogn
function kvadrat6(side){
frem side
drej 90
frem side
drej 90
frem side
drej 90
frem side
drej 90
frem side
drej 90
frem side
}
ny
base
a=1
b=2
for (i=1;i<20;i++){
c=a+b
a=b
b=c
kvadrat6(c)
}
Fibonacci
Rekursion
Jan Skovgård |