Samarbeid

Sosialgeometri

Dette er neppe et begrep som vil få stor annerkjennelse eller anvendelse blandt matematikkdidaktikere, men det er nyttig for å skape litt oppmerksomhet og nysgjerrighet. Det jeg er ute etter er å lage et laboratorium der en gruppe mennesker skal samarbeide om å løse en geometrisk utfordring. Hver av deltagerne har bare kontroll over en del av løsningen. Den sosiale prosessen er svært interessant. I beste fall er det, tror jeg, noe å lære av å delta i slik problemløsning, både for den som lanserer problemet og for de som deltar i løsningen.

Et eksperiment

Teknisk sett er oppsettet nøyaktig likt det som er forklart i detalj på siden: radio

De 4 microbitene (MB1, MB2, Mb3, MB4) sender identifikasjon av seg selv og hvilken button (A eller B) som er klikket til MB5, som så i sin tur sender meldingen til PC. Det eneste som skal endres er Processing skissen (programmet på PC)

Programmet åpner med å vise en lang sammenhengende linje. 4 Personer får hver sin Microbit og oppgaven går ut på å lage et kvadrat. Ingen flere instruksjoner eller forklaringer annet enn at de kan snakke sammen så mye de vil.

Deltagerne vi raskt oppdage at linjestykket består av 4 linjer som ligger etter hveandre og de kan kontrollere vinkelen mellom dem. Utfordringen blir da å finne ut hvem som har kontroll over vilken vinkel og hvordan de skal koordinere arbeidet.

De eksperimentene jeg har gjort med dette så langt er ikke analysert eller kategorisert, men det oppstår noen interessante prosesser og gode råd og forslag til strategier tar fort av.

Når gruppa har løst problemet er det mulig å lansere problem 2: Gjør om figuren til en trekant. Her finnes det flere løsninger.

Programmet

Det er selvsagt mange måte å programmere skissen på PC. En løsning kan være slik:

import processing.serial.*;
Serial port;
//Tegn et kvadrat
float side=100;
float[] vinkel;
float dv=5;// vinkel endring

void setup(){
  size(600,800);
  printArray(Serial.list());  
  port = new Serial(this,Serial.list()[0],115200);
  port.bufferUntil(10);
  
  vinkel=new float[4];
  vinkel[0]=vinkel[1]=vinkel[2]=vinkel[3]=0;
}
void draw(){
  background(255,255,255);
  translate(120,400);//origo
  scale(1,-1);// y oppover
  stroke(204, 102, 0);
  strokeWeight(3);
  for(int ix=0; ix < vinkel.length; ix++){
    rotate(radians(vinkel[ix]));
    line(0,0,side,0);
    translate(side,0);
  }  
}

void serialEvent(Serial port) {
	String inData = port.readString();
	// print(inData);
	decodeAndSet(inData.trim());
}

void decodeAndSet(String S){
  S=S.trim();
  String hva=S.substring(0,2);
  if(!hva.equals("MB")){
    println("error: "+hva);
    return;
  }
  //MB-indeks
  int ix=Integer.parseInt(S.substring(2,3));
  // button A or B
  String button=S.substring(4,5);
  println(ix+" : "+button);
  if(button.equals("A"))
    vinkel[ix-1]+=dv;
  else
    vinkel[ix-1]-=dv;
   
}
// mens vi tester:
void keyPressed(){
  if(key=='a') vinkel[0]+=dv;
  if(key=='A') vinkel[0]-=dv;
  if(key=='b') vinkel[1]+=dv;
  if(key=='B') vinkel[1]-=dv;
  if(key=='c') vinkel[2]+=dv;
  if(key=='C') vinkel[2]-=dv;
  if(key=='d') vinkel[3]+=dv;
  if(key=='D') vinkel[3]-=dv;
}

Det du trenger å gjøre er å kopiere den katalogen som er beskrevet på siden radio og bytte ut .pde-fila med koden over. (husk at pde-fila må ha samme navn som katalogen) i

Mulige utvidelser

Dette enkle oppsettet gir mange muligheter. Basisen er at 4 personer kontrollerer 4 eller 8 parametere, og de må samarbeide for å løse et problem. Hvis vi tar utgangspunkt i dette kan vi f.eks.:

I sum sitter vi etter min mening med et utgangspunkt som både kan gi noen konstruktive utfordringer i programmering, matematikk og samarbeid.