fredag 18. februar 2011

Fin arbeidsflyt med obligatorisk øving nr 1

Dette var siste økta før innlevering av obligatorisk øving nr 1 og før delprøve nr 1. Oppmøtet var ganske bra i dag da jeg telte opp 39 stk cirka kl ni.
Vi startet dagen med gjennomgang av de praktiske øvingene som vi holdt på med forrige gang. Det handlet om forking av prosesser, dvs opprettelse av prosesser, utskifting av programkode med exec etc.
Deretter fikk studentene slippe til med praktiske oppgaver for å lage zombier og foreldreløse barn. Ja vi snakker fortsatt om prosesser i Linux :-)
Resultatet av disse aktivitetene ble publisert i diskusjonsforumet "Forum for zombier og foreldreløse".

Ingen tvil om at det jobbes og tenkes her.
Etter pausen ga jeg en del tips til siste delen av den obligatoriske øvingen der det handler om pipes, eller kanaler som vi sier på norsk. En kanal er et dataområde som prosesser i Linux kommuniserer via. Dette brukes f.eks i kommandolinjer som ls -l | wc. I øvingen skal studentene selv programmere slike kanaler og opprette prosesser som kommuniserer via disse. Dette gir god innsikt i det sentrale og viktige begrepet standard INN og standard UT samtidig som det også gir et fint eksempel på hvordan prosesser kan kommunisere med hverandre, og til slutt får de en idé om hvordan kommandoskallet bash opererer når kanaler opprettes.

Fin flyt her også.
Til slutt fikk studentene en liten flervalgsprøve på 10 spørsmål for å sjekke hvor mye de hadde lært om prosesser, fork, exec og om kanaler. Resultatet var ganske bra. 3-4 stk hadde alt rett. Men det var også litt skuffende når vi behandlet et gitt tema cirka 5-6 minutter og det ble om og om igjen snakket om hvor viktig dette var (det handlet om at barneprosessen arvet alt fra foreldren inkludert neste instruksjon som skulle utføres) og selv da var det mange som svarte feil på dette spørsmålet.

Alt i alt synes jeg dette var en fin økt. Viktige temaer, relativt godt oppmøte og bra jobbing hos studentene.

fredag 11. februar 2011

Forking av Linux-prosesser

Ja, du lurer kanskje på hva forking er for noe? Det er noe så enkelt som opprettelse av prosesser i Linux. Med et enkelt systemkall fork() kan du lage en ny prosess i Linux. Du innvender kanskje at det er ennå enklere å bare starte et program eller en kommando for å skape en prosess. Det stemmer, men poenget med fork-kallet er at du kan opprette prosesser innenfra dine egne programmer. Systemkallet fork er altså programmererens verktøy.

Frammøtet
Det er bedring igjen i frammøtet. Nå er vi oppe i 36 stk. Det er bra. Om dette skyldes mine tiltak etter spørreundersøkelsen vi hadde forrige gang eller om det skyldes andre ting er jeg ikke sikker på, men hyggelig er det uansett.
Jeg vil jo tro at de som ikke er her jobber med operativsystemfaget de også.

Dagens opplegg
Spørreundersøkelsen forrige gang viste en del ting som jeg nå har tatt til følge (du kan lese om denne undersøkelsen i forrige innlegg). Jeg har f.eks gjort presentasjonene av hjemmeleksen frivillig fra nå av.

Videre var det også ønskelig med litt lengre økter med forelesning. Det har jeg også tatt til følge og kjørt 2 stk miniforelesninger på en halvtime hver.
Men hva ser jeg under disse forelesningene? Jo at cirka halvparten av studentene er mer opptatt av noe på egen skjerm enn det som foregår i rommet, dvs forelesningen. Dette var en gedigen flashback til auditoriet. Det var jo akkurat dette problemet som gjorde at vi skapte Plab. Vi ville bort fra auditoriet der læreren snakker til studenter som er mest opptatt av sin egen laptop og det som foregår der.


Jeg skal ikke glemme den andre halvparten av studentene som faktisk var godt med under begge disse miniforelesningene, og som jeg tror hadde bra utbytte. Det viste seg iallfall etterpå at disse studentene tok seg lett gjennom de praktiske oppgavene vi hadde etterpå.
Sannsynligvis var det disse studentene som også sa fra på spørreundersøkelsen at de ønsket mer forelesning på Plab. Det er forståelig at noen gjør det fordi det er en ganske konsentrert læringsform, dvs mye lærestoff på kort tid, og fikser du denne formen så har du stort utbytte.

Men studenter er forskjellige. De har sine foretrukne læringsstiler. Noen ønsker forelesninger mens andre ønsker studentaktive læringsformer. Det finnes også de som meget greit håndter begge formene. Løsningen ligger nok litt i mellom disse, dvs forelesninger med lærer som greier å aktivisere studentene og studentarbeider/gruppearbeider med innslag av miniforelesninger. 

Praksis med systemprogrammering
Etter miniforelesningene var det en time med c-programmering på mot Linux-systemet. Da gikk det mye på skaping av prosesser med fork. Ja, noen måtte til og med legge et fork-systemkall inni et while-løkke. Da fikk de seg en overraskelse :-)
Når de bare fikk tenkt seg litt om etter denne "fork-bomben" skjønte de at dette bare måtte gå galt. Se mer om fork bomb på Wikipedia.


Studentpresentasjoner
Presentasjonene denne gangen var frivillig. Heldigvis stilte gruppe 06 med Erlend Berge og Magnus Bjerke opp og fortalte oss om trådprosesser i Java. Det var interessant det de fortalte om hvorfor tråder brukes i Java, hvordan de fungerer etc.
Det interessante for oss her er at bakgrunnen for å ha tråder i Java er den samme som i operativsystemet. Det er nemlig lett å lage tråder, vi får veldig responsive systemer med tråder og deling av data går lett når man bruker tråder. Og ikke minst så er det en fin måte å modularisere systemet på. Alternativet til tråder er jo store klumpete programmer som skal håndtere alt av aktiviteter og interaktivitet. Nå legges slike ting til kjøresystemet enten det er hos Java eller i kjernen til operativsystemet.

Den andre oppgaven om flerkjerneprosessorer fikk vi dessverre ingen til å ta.

fredag 4. februar 2011

.... mer om prosesser

Prosessbegrepet er svært sentralt i operativsystemer og helt grunnleggende for å forstå hva et operativsystem er og hvordan det virker. Derfor spanderte vi mer tid på dette sentrale begrepet ved å at en økt til.

Oppmøte
Dårlig oppmøte i dag. Kun 28 personer var med på Plab i dag. Det er under halvparten av studentene i klassen, og det må en kunne si er dårlig med tanke på hvor viktig et tema som var på plakaten i dag. Jeg ser selvsagt at flere studenter kan fikse disse tingene på egen hånd ved selvstudier. Men jeg nekter å tro at dette er så mange som over halvparten av studentene. Videre nekter jeg også å tro at vi har et så dårlig opplegg på Plab at det er ingen vits å være med på læringsaktivitetene der. Kommenter gjerne på dette dersom du har meninger om dette.
Lenger nede i dette innlegget kan du lese noen tilbakemeldinger om dette temaet fra spørreundersøkelsen.

Men når dette er sagt så skal det også sies at de 28 som møtte sannsynligvis er av de beste i klassen. De var iallfall aktive i de praktiske oppgavene, meget villige i presentasjonene og var svært fokuserte på å jobbe faglig uten å la seg forstyrre av utenomfaglige ting. Slikt blir det gode arbeids- og læringsøkter av.

Studentpresentasjoner
Studentene hadde forberedt to presentasjoner i dag. Det var om trådprosesser og om kommandoen vmstat. I dag også spurte jeg om det var studenter/grupper som meldte seg frivillig til å presentere oppgavene. Og det var det. Meget bra. Slik liker jeg det.
Første oppgave om trådprosesser ble presentert av Petter Troseth Almås og Tor Christian Sandbakken fra gruppe 09. De skulle som nevnt gi oss en kort innføring i trådprosesser, hva det er og hvorfor det brukes, hvordan vi kan sjekke hvor mange trådprosesser et program kjører etc. Petter og Tor gjorde en meget god jobb. De viste oss bl.a hvordan både Firefox og Open Office laget nye trådprosesser etter hvert som det var behov. F.eks hadde Firefox til tider 18 trådprosesser i gang. Bare det å navigere til vg.no satte i gang flere trådprosesser.

Petter Troseth Almås og Tor Christian Sandbakken
i aksjon med trådprosesser
    
Neste gruppe i aksjon var gruppe 05 ved Vegard Løkken og Terje Andersen. Også disse meldte seg frivillig til å gjøre presentasjonen. De snakket om kommandoen vmstat som kan brukes for å hente ut ganske mye informasjon om status i systemet. I denne omgangen var det om prosesser. De viste hvordan kommandoen kunne brukes for å se antall prosesser i kø, hvor mange prosesser som var laget (med fork) siden siste reboot, antall kontekstskifter per sekund m.m. Meget bra presentasjon dette også, bl.a la de vmstat inn i en løkke slik at den kontinuerlig kunne vise statusinformasjon, bl.a for å følge med på cpu-køen når man startet nye programmer.
Vegard Løkken og Terje Andersen i aksjon
Motvilje mot studentpresentasjoner?
Jeg aner en viss motvilje blant studentene for å presentere lærestoff foran klassen. Derfor var det ekstra hyggelig i dag siden studentene meldte seg frivillig. Ja de var faktisk meget lysten på å presentere oppgavene de hadde forberedt.

Det er klart at studenter som takler det "presset" det er å stå foran de øvrige studentene på denne måten har en fordel. Dette er jo også en ganske vanlig situasjon seinere i yrkeslivet. Studenter vokser på å "tvinge" seg til å være med på opplegg som dette.

Men også jeg innser at det ikke er like lett for alle å gjøre ting som dette. Pulsen stiger og man begynner å skjelve og svette, stemmen kan bli hakkete etc. Alle har nok et snev av dette i større eller mindre grad. Det kan overvinnes, og eneste metoden slik sett er å tvinge seg til å prøve.

Jeg sa innledningsvis i dette faget at jeg ville peke ut de studentene som skulle presentere oppgaver. Jeg revurderer det nå og vil basere det på frivillighet å presentere oppgavene. Å gjøre dette til tvang passer ikke i dette konseptet med presentasjon av hjemmelekser. Men vi kan også komme langt med frivillighet og overtalelser slik jeg ser det.

Jeg kommer til å beholde kombinasjonen av hjemmelekser og studentpresentasjoner. Dette er bl.a viktige forberedelser som studentene gjør til neste aktivitetsøkt på Plab, og som nevnt er det superviktig for de studentene som faktisk gjør presentasjoner.
Det kan hende at jeg også kobler flervalgsprøver til disse presentasjonene, dvs noen spørsmål slik at studentene kan få sjekket hva de kan om disse temaene, dvs hva de lærte ved å forberede seg på temaet (gjøre hjemmeleksen) og ved å høre på presentasjonen.

Diskusjonsforum til oppgaveløsning
Denne gangen prøvde jeg noe helt nytt. Det var å bruke diskusjonsforum i oppgaveløsning i stedet for det tradisjonelle opplegget med å løse oppgaver gruppevise i hvert sitt dokument. Nå var det individuell løsning av oppgaver i diskusjonsforum, dvs hver student hadde hvert sitt innlegg i forumet der de svarte på oppgavene.
Deretter ble oppgavene gjennomgått av faglærer i plenum samtidig som studentene rettet besvarelsene som var laget i diskusjonsforum. Men det viktige her var at studentene ikke rettet sine egne oppgaver, men i stedet rettet oppgavene til den personen som satt til høyre for seg.
Hva oppnådde vi med dette? Jo stor aktivitet med oppgavene. Studentene tok det seriøst siden oppgavene ble løst i full offentlighet (alle studenten hadde tilgang til alt de andre gjorde) og de fikk raskt tilbakemelding på egne prestasjoner.
Det eneste dumme i opplegget kom fra læreren da det var for mange oppgaver.

Spørreundersøkelse
På slutten av økta i dag var det en ganske stor spørreundersøkelse med over 20 spørsmål. Takk og pris så er studentene positive til å svare på undersøkelser av denne typen. Kanskje de begynner å merke at vi faktisk tar hensyn til resultatet fra undersøkelsene.
De som svarte på undersøkelsen var de 28 som var tilstede i Plab 4. februar. 
Her er noen av resultatene:
  • Påminnelsesmail dagen før ser ikke ut til å påvirke frammøtet til læringsøktene ut fra det studentene svarer. Men derimot viser svarene at mailen medfører en mer positiv innstilling til faget.
  • Tidsplanen som i detalj viser hva som skal skje utover i økta får en positiv mottakelse.  64% mener den er nyttig, resten er nøytral og ingen er negativ.
  • Hjemmelekse: 65% sier dette bidrar positivt til læringen, 16% er nøytral mens resten, dvs 19% mener det ikke bidrar.
  • Forelesninger: Cirka halvparten ønsker et noe større innslag av forelesningsbaserte aktiviteter, dvs aktiviteter der lærer presenterer lærestoffet på sin måte. Den andre halvparten er fornøyd med slik det er nå.
  • På spørsmål om de lærer noe i dette faget svarte 80% ja. Det var da noe :-)  Resten visste ikke om de lærte noe. Visste de ikke om de lærte noe?  Hmm, dette var merkelig. Sannsynligvis er disse i kategorien "ikke lært noe".
  • Liker du faget og opplegget? 45 svarte ja, 35% svarte nøytral og resten svarte nei.
  • Fagbloggen: På spørsmål om de leste fagbloggen svarte 42% ja og 58% nei. Det ser ikke ut til at fagbloggen har så stor innvirkning på motivasjon og innstilling til faget som jeg håpet på. 25% er mener den påvirker motivasjon og innstilling til faget, 50% er nøytral mens 25 mener den ikke har noen innvirkning. Alle har svart, også de som ikke leser bloggen. Regner med at de som ikke leser har svart nøytral her?
  • Flervalgsprøvene ser ut til å bli godt mottatt. Mange har kommentert på disse i de åpne spørsmålene og sier at de liker bruken av slike prøver.
    På direkte spørsmål svarer 78% ja at de liker opplegg med flervalgsprøver og gjennomgang av disse rett etterpå. 22% er nøytral, ingen er negativ.
  • Læringsutbyttene (dvs formuleringene) ser stadig ut til å havne i bakleksa. Jeg går gjennom disse i begynnelsen av en økt. Men studentene rapporterer at kun 13% av dem har et aktivt forhold til utbyttene. 39% har ikke et aktivt forhold til utbyttene, mens resten som er 48% vet ikke.
  • Studentpresentasjoner er både likt og ikke likt med like andeler. 39% sier ja til dette, mens 35% sier nei. Resten er nøytral.
  • Hvor mange timer jobber du med faget utenom Plab-tiden? Her er svaret:
    0 timer:   6,5%
    1 timer:   22,6%
    2 timer:   51,6%
    3 timer:   12,9%
    4 timer:   6,5%
    5 timer eller mer:   0%
  • Åpent spørsmål til de tilstedeværende om de har noen anelse om hvorfor oppmøtet har vært så labert de to siste gangene. Det kom flere mulige svar på dette:
    • "Det har med studentpresentasjoner å gjøre. Ikke alle synes dette er greit." Flere har nevnt dette som en grunn.
    • Flere melder om at fredagen kan være et problem: "Det er også fredag, og da tror jeg at mange tar tidlig helg istedenfor å dra på skolen". "Jeg tror det skyldes at det er fredag, og det er Kjeller'n kveld hver torsdag". "Dette skyldes at studenthelga begynner torsdag kveld". "Noen er flink til å dra ut på torsdagskveldene."
    • Litt rolig start for de som kan en del Linux fra før
    • Det ser ut til at mange tar for lett på dette faget og heller benytter fredager til å slappe av etter en natt på byen e.l.
    • Men generelt sett tror jeg at de fleste synes at det blir litt for mye PLAB.
    • Noen har nok ikke kommet uansett. Slik er det i alle fag. Man kan ikke tilfredsstille alle
Kommentarer til resultatet:
  1. Dette med forelesninger versus studentaktivitet er interessant. Meldingene er ganske klare. Studentene ønsker et større innslag av tradisjonelle forelesninger. Jeg tolker dem ikke dithen at de ønsker seg tilbake til rene forelesningsserier, men at de ønsker en passe blanding av forelesninger og studentaktiviteter.
    Et viktig spørsmål er da: Hvordan kan vi utforme et læringsrom der begge disse typer aktiviteter lett kan gjøres?
En mangel med denne undersøkelsen er selvsagt at kun de studentene som faktisk er til stede i Plab er de som har svart på den. Det vil selvsagt også være interessant å finne ut hva de øvrige studentene mener, de studentene som ikke er til stede i Plab. F.eks kan det være interessant å vite hvorfor de ikke er med på læringsaktivitetene. Er det noe med opplegget som ikke passer eller er det andre utenforliggende grunner?

Det er utrolig viktig å fokusere på de studentene som faktisk er til stede og ikke på dem som ikke er der. Jeg tror jeg nevnte oppmøtet bare en gang, og da i en lett humoristisk vending om at "kanskje studenten som var i Åre forrige helg ennå ikke er kommet hjem".
Jeg tror at vi som var til stede fikk en god arbeidsøkt med både presentasjoner fra studenter og fra lærer, praktisk arbeid med teorioppgaver og gjennomgang av disse, flervalgsprøve for å finne ut hvordan man la an faglig og til slutt en spørreundersøkelse. Ganske variert med andre ord, og med fokuserte og aktive studenter ble dette en god økt, også læringsmessig, tror jeg.
 

fredag 28. januar 2011

Endelig startet vi med prosesser

... dvs. vi startet ikke med en gang. Først måtte vi ha et par studentpresentasjoner fra kl 0830. Oppmøtet i dag var ganske labert. Kun 26 stk møtte i dag. Grunnen til det var at studentene arrangerte den årvisse skituren til Åre. I den sammenheng har ikke faget Operativsystemer mye å stille opp :-)

Presentasjoner
Dagen startet altså med studentpresentasjoner av "hjemmelekse". Det var to slike presentasjoner: Først var det om tilgangsrettigheter til filer og mapper i Linux og deretter var det om kommandolinjeargumenter i C-programmer.

De som presenterte denne gang var:
  • Gruppe 13 ved Simon Mastermo og Jørgen Asphaug som hadde oppgaven om tilgangsrettigheter.
  • Gruppe 12 ved Petter Skog og Lasse Vikås som hadde oppgaven om kommandolinjeargumenter i C. 
    Gruppe 13 ved Simon Mastermo og Jørgen Asphaug som hadde
    oppgaven om tilgangsrettigheter.
      Gruppe 12 ved Petter Skog og Lasse Vikås som hadde
      oppgaven om kommandolinjeargumenter i C.
      Når det gjelder tilgangsrettigheter er kanskje den største utfordringen å skille mellom rettigheter for filer og for mapper, f.eks for å kunne slette en fil så er det mapperettighetene som gjelder og ikke rettighetene til filen.
      Oppgaven med kommandolinjeargumenter er sentral fordi alle kommandoene i Linux bruker dette. Bare tenk på alle argumentene du kan gi inn til hver kommando. Dessuten kommer vi til å benytte oss av kommandolinjeargumenter når vi ganske snart skal lage systemprogrammer i C.

      Flervalgstest
      Vi kjørte gjennom en flervalgstest med 18 spørsmål. 15 minutter ble satt av til selve testen og deretter 10-15 minutter for gjennomgang av resultatet. Dette var en såkalt pedagogisk test der hver enkelt student kan finne ut hvordan han/hun ligger an faglig. Ingen hadde alt rett første gangen. Det skyldes nok også at jeg (dvs læreren) opererte med feil svar på ett av spørsmålene. Det er nå rettet opp. Jeg var ikke helt fornøyd med resultatet. Det ligger nok et forbedringspotensiale her. Jeg tror også at studentene selv merket det og vil ta tak.


      Konstruktivistisk oppgave om prosesser
      Denne gangen prøvde jeg meg på en oppgave av typen konstruktivistisk, dvs studenten måtte selv finne ut av ting. Denne gangen gjaldt det prosesser og studentene måtte finne ut av hvordan et operativsystem administrerer prosessene når vi vet at flere prosesser kjører samtidig, det er et begrenset minne som alle prosessene må bruke, prosesser må vente på tur etc.
      Ut fra en del slike "observasjoner" skulle studentene selv finne ut litt av hvordan operativsystemet må være "skrudd sammen" for å håndtere prosessene når det blir mange av dem i maskinene samtidig.
      Studentene fikk ganske kort tid på oppgaven, kun 15 minutter, så det er grenser for hvor mye vi kan få ut av det. Men jeg tror iallfall de kom i rett modus slik at de fikk tenkt over at det må finnes en eller annen mekanisme i operativsystemet som ordner opp i disse tingene.
      Denne aktiviteten var også en god innledning til at jeg viste noen lysark og fortalte om det samme temaet i cirka 15 minutter.
      Videre fikk også studentene tilgang til en film som jeg har laget som intro til prosesser.

      Prosesser i praksis
      Den siste klokketimen i dag gikk med til praktiske oppgaver der studentene selv skulle utforske prosesser på egen Linux-maskin. Da skulle man starte programmer, sjekke at disse finnes i prosesslista, ta livet av det med kill-kommandoen etc. Videre skulle vi også se på hierarki av prosesser, dvs foreldre-barn-relasjoner mellom prosesser.

      Jeg tror denne oppgaven var ganske nyttig både for å komme nærmere innpå prosessene og se at det å starte et program (eller en kommando) setter i gang en aktivitet i maskinen. Ja vi fikk til og med demonstrert at et program startet mange prosesser.
      Bildet ovenfor viser godt hvordan disse praktiske oppgavene var lagt opp. Det ble startet opp en rekke terminalvinduer der alle hadde forskjellig bakgrunnsfarge. Dermed kunne vi lett identifisere disse i prosesslista og f.eks velge ut en bestemt prosess som vi ville ta livet av eller der vi ville starte en ny kommando.
      Bildet ovenfor viser dette ganske tydelig. Her ser du også hvordan et prosesshierarki vises med ps-kommandoen (under det grønne vinduet).

      fredag 21. januar 2011

      Linux-kommandoer og C-programmering

      Ny fredag og mer om operativsystemer på Plab. Jeg ankom Plab 6-7 minutter før tiden for å rigge meg til med laptop, videokanoner på vegg etc. Og hva så jeg da? Jo at de aller fleste studentene var allerede kommet på plass. Dette må jeg si er seriøse studenter. Veldig bra. All honnør til dere. Dette betyr at vi kan starte kl 0830 presis uten forsinkelser.

      Det er også flere postive ting å melde om. Antallet studenter på Plab øker fra gang til gang. Det er sjeldent at det øker utover. Vanligvis minker det. I dag var det 49 studenter under opptellingen litt før klokka ni. Neste gang runder vi 50 :-) Det er fortsatt litt usikkert hvor mange vi er. Erfaring fra tidligere år viser nemlig at noen ikke kommer tilbake etter jul av forskjellige grunner.

      Linux-kommandoer
      Vi startet som vanlig med at jeg først gjennomgikk planen for dagens økt og deretter læringsutbyttene. Det var to hovedtemaer i dag: 1) Linux-kommandoer og 2) C-programmering. Jeg orienterte kort om Linux GUI og om Linux kommandogrensesnitt. Viste også noen kommandoer og forklarte hvordan kommandogrensesnittet virker. Dette siste var jo ganske ukjent for de fleste. Det var viktig å vise at navigering i mappene til Linux kan gjøres både med filbehandleren i GUI-et og i kommandogrensesnittet.

      Her jobbes det med Linux-kommandoer

      Men det viktigste er at studentene selv får erfaring med kommandogrensesnittet. Derfor fikk de ganske raskt komme i aktivitet selv. Jeg hadde laget en del aktivitetsoppgaver som de selv kunne prøve seg på. Poenget med oppgavene var å beskrive ønskede operasjoner for studentene og ikke hvordan de skal gjøres. Det måte de selv finne ut av. Eksempler på denne typen oppgaver er:
      Naviger til rot-nivå. Vis hvilke mapper du finner på rot-nivå. Naviger til /etc-mappa. List ut innholdet. Mens du står i /etc-mappa skal du ta en lang utlisting av innholdet i hjemmemappa di.
      Gå tilbake til hjemmemappa di. Hvilken kommando brukte du? Hvilke andre kommandoer kunne du brukt? Hvordan kan du navigere til mappen ovenfor der du står? Prøv.
      Studentene tvinges altså selv til å finne hvilke kommandoer som trengs og hvilke opsjoner som må brukes. Etter en knapp times arbeid med kommandoer tok vi en gjennomgang i plenum der jeg demonstrerte hvordan noen av oppgavene kunne løses.
      Jeg fortalte at de på ingen måte er utlært på Linux-kommandoer etter denne korte økta. Egentrening på kommandoer må komme i tillegg. Dette var bare en første smakebit.

      C-programmering
      Neste tema var C-programmering. Nok en gang tok jeg en kort intro der jeg skrev inn et C-program av type "hello world" (klassiker), kompilerte og kjørte denne. Et viktig poeng som jeg understreket sterkt var å ha 3 terminalvinduer framme på skrivebordet: ett for editoren der programmets kildekode vises, ett med kommandoprompten der kompilering og kjøring av objektfilen til programmet utføres og til slutt ett vindu der manualsider hentes fram etter behov. 
      På denne måten kan vi jobbe med C-programmer svært så effektivt uten å måtte gå ut og inn av editorer og kompilatorer. Det er bare en ting man må huske på, nemlig å lagre endringene en har gjort i kildekoden før en kompilerer på nytt. I motsatt fall vil en jo bare kompilere den "gamle" filen en gang til.

      Her er det de første C-programmene som prøves

      Vi ble ikke ferdige med oppgavene i C. Det var ikke studentenes skyld, men min som hadde lagt opp et for ambisiøst program. Vi måtte derfor kutte i tidsplanen. Både flervalgstesten om disse temaene og den spørreundersøkelsen jeg hadde forberedt måtte utsettes. Men det gjør ingenting. Disse tingene tar vi neste fredag.

      Men jeg rakk og gi "hjemmelekser" til neste gang. Det er oppgaver som gruppene skal jobbe med i uka fram til neste økt. Da blir to grupper bedt om å presentere disse arbeidene (dvs en person fra gruppene). De to temaene som ble valgt ut denne gang var: 1) Tilgangsrettigheter til Linux og chmod-kommandoen, 2) Kommandolinjeargumenter i C-programmer.

      Til slutt: Denne økta var svært så konkret og det var mye studentarbeid underveis. Jeg er fornøyd med det jeg observerte av studentaktivitet. Vi kom ikke i mål, men det var nok heller ikke å forvente da det var mange nye ting å forholde seg til. Men selv om vi ikke greide alt i dag så har studentene mye materiale de kan jobbe videre med på egen hånd slik at dette læres skikkelig.
      Jeg ga også beskjed om at på neste økt kom det en flervalgstest om disse temaene der de kan få sjekket hvor mye de nå kan om disse tingene. Det er altså en pedagogisk test og ikke noe som teller med på vurderingen (dvs karakteren) i faget.

      fredag 14. januar 2011

      Installering av Ubuntu

      Andre økta på plab i dag. Bra oppmøte fra morgen av. Jeg gjorde ikke opptelling før cirka kl 0900. Da var det 47 studenter i PLAB. Det må en si er bra. Men ennå tror jeg det skal være flere der ute.

      Dagen ble startet med to studentpresentasjoner. Disse var gitt som "hjemmelekser" forrige gang. Beskjeden var at alle måtte forberede en presentasjon på det aktuelle temaet og at vilkårlig gruppe ville bli plukket ut til å presentere.
      Jeg gjorde det litt annerledes nå første gangen. Jeg spurte nemlig om noen ønsket å stille opp frivillig, og det var det. All honnør til disse to gruppene og de studentene som gjorde presentasjonen. Hvem det var ser du nedenfor.

      Presentasjoner
      Første presentasjon var ved Jan Erik Dehli fra gruppe 07. Han fortalte om API-er og hvor viktig dette var for operativsystemer. Ja API-et som er programmerens grensesnitt mot maskinens ressurser er en av to viktigste egenskaper med operativsystemet. Den andre egenskapen er operativsystemet som ressursadministrator.
      Bildet nedenfor viser Jan Erik med idet han forteller om API-er for klassen.

      Jan Erik Dehli presenterer API-er og hvor viktig
      dette er i operativsystemer

      Neste presentasjon var ved Stian Lysnes fra gruppe 10. Nå var det brukermodus og kjernemodus det var snakk opp. Dette ligger for såvidt ganske nært opp til forrige tema om API-er, men vinklingen blir en annen og dermed får vi faktisk lært begge deler noe bedre.

      Stian Lysnes presenterer arbeidet om kjerne- og brukermodus
      Begge presentasjonene var helt greie og de fikk velfortjent applaus. All ære til de to som stilte opp frivillig første gangen. Å studere ved en høgskole er nemlig ikke bare fag, men også å gjøre presentasjoner som dette. Neste gang vil jeg be om at studentene faktisk står ved lærerens bord midt i rommet. Dette kommer vi til å fortsette med, og til dere studenter vil jeg bare si: Se på dette som en veldig nyttig erfaring. Jo før dere gjør dette, dess raskere vil dere bli god på det.

      Hvorfor presentasjoner?
      Etter presentasjoner tok jeg som faglærer tak i de samme temaene og gjorde min egen presentasjon av disse. Denne ble selvsagt kortere enn den ellers ville ha blitt siden studentene allerede hadde jobbet med stoffet. Men jeg tror det er viktig at lærer også må ta tak i de samme tingene. Vi sitter med erfaringen og den dypere kunnskapen og kan derfor strukturere bedre enn studentene kan når lærestoffet er så ferskt. Men sammen fungerer dette perfekt, altså det at studentene forbereder seg på temaet via slike "hjemmelekser" og at faglærer deretter setter mer struktur på tingene.

      Et annet viktig moment i forhold til det med presentasjoner er følgende sitat fra Douglas Adams:  
       "if you really want to understand something, the best way is to try and explain it to someone else".
      Presentasjonene våre skal være litt slik. Vi skal prøve å forklare noe for de andre slik at de forstår det.

      Faren med dette utsagnet er selvsagt at dersom jeg som lærer ikke makter å forklare noe for studentene slik at de forstår det, så kan de si: "Lærer hør nå her, denne forklaringen din forstår jeg ikke. Kanskje du heller ikke forstår det". Ok, den risken får vi ta. Sannsynligvis er det tilfellet ganske ofte. Trøsten er at alt skal ikke forstås gjennom læreren. Tvert om er det studentene selv som må jobbe med stoffet for å forstå det. Det er akkurat dette PLAB er laget for.

      Flervalgsprøve
      Etter presentasjonene var det en flervalgsprøve med 11 spørsmål. Nå skulle vi finne ut hvor mye vi (dvs. studentene) hadde lært til nå om grunnleggende operativsystemting. Først fikk studentene 10-15 minutt for å ta prøven. Deretter gikk vi gjennom svarene sammen. Akkurat denne siste gjennomgangen er viktig slik at studentene fort får tilbakemelding på hvorfor akkurat det svaret de hadde valgt var rett eller galt, men også hvorfor de andre svaralternativene ikke var rett er også viktig. Vi brukte Vegard Løkken sitt svar som utgangspunkt for gjennomgangen da han var best med 10 rette av 11 mulige.

      Så var det endelig tid for installasjon av Linux
      Etter pausen var det installering av Linux som gjaldt. Vi valgte Ubuntu Linux, og vi valgte å gjøre det på VirtualBox. Da kjører Linux på en virtuell maskin. Fordelen med VirtualBox er at den kjører på alle plattformer, vi trenger ikke å endre noe på oppsettet med harddisken og Linux-en vår kan kjøre samtidig med vertsoperativsystemet (som i vårt tilfelle er både Windows og MacOS).
      I tillegg satte vi opp DropBox for lagring av filene som produseres under øvingsarbeidene seinere. Da er filene også tilgjengelig på alle andre plattformer vi jobber på. Dropbox er genial.

      Gruppe 10 i ferd med å installere Linux på VirtualBox
      Så i løpet av dagen i dag fikk vi alt dette på plass. Neste gang er det bare å sette i gang og bruke Linux. Da skal vi først lære oss en del basiskommandoer som vi trenger og deretter litt om C-programmering.

      Dette var ei fin økt syntes jeg. Vi fikk gjort en god del og det var fin flyt fra start til slutt. Mye av årsaken til denne fine flyten skyldes også studentene som er på plass kl 0830 med laptop-er påslått og klar til arbeid. Dette liker jeg. Gleder meg allerede til neste fredag da vi endelig skal få begynne å jobbe i Linux kommandogrensesnitt.

      fredag 7. januar 2011

      Første økta i Operativsystemer

      I dag fredag 7.1 var det første økta med klassen 1. ingeniør. Faget er Operativsystemer og plassen er Plab. Vi var nok litt spente alle sammen på hvordan dette skulle gå. Iallfall var jeg det slik som jeg alltid er når jeg møter nye studenter. Men jeg var godt forberedt og da bør det jo går bra :-)

      Det nye og interessante med Plab er jo at det ikke bare er snakk om faglige forberedelser, men også i høyeste grad pedagogiske forberedelser. Nå skal det legges opp til læringsaktivieter for en hel 3-timers økt, og da snakker vi ikke om tradisjonelle forelesninger med bruk av Powerpoint, men om læringsopplegg der studenten er den mest aktive (mer om det nedenfor).

      Det var ikke fullt på plab ved oppstart kl 0830. Jeg gjorde ingen opptelling, men vil anta at det var 40-45 studenter til stede. Klassen er på cirka 70 så her kan det kommer flere. I de kommende øktene vil jeg gjøre en opptelling slik at vi kan føre litt statistikk på oppmøtet. Et fallende oppmøte er jo som oftest et symptom på noe som må undersøkes nærmere.

      Aktivitetsplan
      Bildet nedenfor viser aktivitetsplanen for den første økta (klikk på bildet for større versjon). Hele opplegget på Plab bygger på at slike planer foreligger til hver økt og at den gjennomføres. Dette er helt i tråd med tilbakemeldinger fra studentene.


      Planen viser typiske aktiviteter i en slik økt, dvs intro til økta, presentasjon av læringsutbytter, lærer gjør korte faglige introer/problemstillinger, studentene jobber i grupper med oppgaver, studenter presenterer problemstillinger, studenter avlegger flervalgstester etc.

      Ikke alt var like vellykket denne gangen. Idéen med å be studentene finne ut av hva de ønsket å lære om i faget var god da dette satte dem i en modus for å tenke innholdet i dette faget. Men jeg dro det litt for langt. Spørsmålene og problemstillingen de trakk fram var jo både interessante og relevante, men de egnet seg ikke å sende til en nabogruppe for å bli besvart. Til det var problemstillingene for vanskelige. Ikke rart i grunnen da dette jo var første økta i faget. Denne delen ble derfor kuttet ut.

      Læringsutbytter
      Bruk av læringsutbytter er viktig i denne formen for læring. Via læringsutbyttene sier vi fra om hva studentene faktisk skal lære om i løpet av økta. Det er viktig at læringsutbyttene ikke blir hengende i løse lufta, men faktisk blir fokusert på hele tiden og ikke minst at læringsaktiviteter og vurdering samsvarer med læringsutbyttene.

      Undersøkelse
      Planen viser også en undersøkelse. Hensikten med den er å finne ut hva som fungerer og hva som ikke fungerer. I en undersøkelse må det spørres om konkrete ting som du har planlagt og til hensikt å gjennomføre. Derfor må du informere om dette først.
      Det jeg gjorde denne gangen av å opplyse studentene om at jeg kom til å kjøre et ganske strengt og strukturert opplegg med tidsangivelse av alle aktiviteter når de skulle starte og når de skulle stoppe etc. Videre ville jeg forlange full konsentrasjon om det faglige og at utenomfaglige ting ikke ville bli tolerert.
      Til sammen 36 svar kom inn. Hva viste så svarene på dette?
      • På spørsmål om hvordan de reagerte på et slikt opplegg da jeg presenterte det svarte 70% at et slikt opplegg ville de være med på, mens 19% var likegyldig til det og 11% sa at de ikke likte det. 
      • På spørsmål om de merket at det ble kjørt et strengt og strukturert opplegg i dag svarte 39% ja og 33% svarte nei, mens resten visste ikke.
      • På spørsmål om det var mindre utenomfaglig snakk i dag en de ellers har opplevd på plab svarte 47% ja og 25% nei mens resten svarte vet ikke.
      • På spørsmål om de syntes det ble jobbet effektivt på egen gruppe i dag svarte 72% ja og 17% nei, mens resten visste ikke.
      • På spørsmål om de syntes dagens opplegg virket svarte 58% ja, 8% nei og resten visste ikke.
      • Til slutt spurte jeg om temperaturen i rommet. Bakgrunnen for spørsmålet er at rommet i høst var svært kaldt og at vi nå har jobbet for å få opp temperturen. 78% svarte at det var passe varmt, 14% sa at det var varmt og 8% sa det var kaldt.
      I det åpne spørsmålet der studentene fritt kunne skrive tilbakemeldinger var det flere som var opptatt av at det ikke bare måtte være studentaktiviteter, men også at lærer må holde forelesninger.

      Konklusjonen på dette er at vi fortsetter med aktivitetsplaner og et strengt program for økta. Videre vil det bli innspill fra lærer av type forelesninger, men disse skal ikke være på 45 minutter men 15-20 minutter (miniforelesning) og det kan gjerne komme 2-3 slike i løpet av økta.
      Videre vil jeg også legge vekt på å finne gode oppgaver til gruppearbeider, oppgaver som kan være innledning til en slik miniforelesning.

      Vi rekker ikke å komme gjennom alt aktuelt lærestoff i løpet av en økt. Derfor legges det også opp til "hjemmelekser", dvs at studentene får oppgaver som skal løses i perioden mellom øktene, og som skal presenteres ved oppstart neste økt.

      Mine inntrykk av første økt
      Har jeg nå fått med meg alt? Nei det har jeg jo ikke. Jeg har jo ikke sagt noe om hvordan jeg personlig synes det hele forløp.
      Jeg sitter igjen med en god følelse. Jeg hadde en plan for hele økta og den ble i stor grad gjennomført. Der vi gjorde avvik var det bevisste grep fordi jeg så det ikke ville fungere (omtalt ovenfor). Dette viser også viktigheten med planer da man lett kan peke på hva som fungerer og hva som ikke fungerer.
      Når det gjelder dere studenter så sitter jeg også igjen med en god følelse. Dere jobbet godt og effektivt i gruppene og dere var aktive og responsive i plenumsaktivitetene, og det kom flere gode og relevante faglige innspill. Videre følte jeg at det var en god og positive atmosfære.
      Selvsagt så også jeg at det var noen utenomfaglige ting på laptop-ene fra tid til annen, men dette tror jeg vil forsvinne etter hvert som det faglige trykket øker. Men hver trygg, jeg kommer til å påtale utenomfaglige ting, ikke minst av hensyn til de på gruppene som faktisk vil gjøre en god jobb.
      Det hele kan nok oppsummeres i følgende: "... jeg gleder meg til neste økt"

      Kom gjerne med kommentarer om hvordan du opplevde økta. Selv om undersøkelsen viser noe av hvordan det gikk så er det ikke sikkert den viser alt. Har du gode råd om hvordan vi skal fortsette, hva som fungerer og hva som ikke fungerer så kom med det her. Sammen blir vi bedre.