Kategoriarkiv: Datalogi

Fra gymnasiet til universitetet

For to år siden begyndte dumpeprocenterne at vokse alarmerende i nogle af fagene på vores bacheloruddannelser i datalogi og software. Gad vide om der er tale om en sammenhæng mellem hvordan de studerende klarer sig i disse fag? Gad vide om der er tale om studerende, der har klaret sig dårligt i gymnasiet?

På institutmødet i dag præsenterede jeg de resultater, vi har fundet. Undersøgelsen har jeg foretaget sammen med Mikkel Meyer Andersen fra Institut for matematiske fag. Mikkel stod for det store arbejde med at lave selve dataanalyserne, og han har også datalogi som sit andet fag og kender derfor også noget til den uddannelse, undersøgelsen omhandler.

Karaktergennemsnittet er signifikant lavere hvis man har et matematikgennemsnit fra gymnasiet under 4. Karaktergennemsnittet hos dem, der udebliver fra en eller flere eksaminer i disse fag er signifikant lavere og risikoen for at dumpe i et eller flere af de fire fag er signifikant højere.

Resultaterne affødte en del kommentarer fra mine kolleger. Det skortede især ikke på hurtige løsningsforslag. Nogle foreslog at matematikkurserne på første studieår skulle laves om. Nogle foreslog at der skulle være særlige sommerkurser. Andre spekulerede på om sammenhængen mon var af generel natur eller kun gjaldt for de fire kurser, vi her havde fat i.

Diskussionen afslørede dog også noget andet: Vi, der underviser på universitet, ved simpelthen alt for lidt om matematikpensum på ungdomsuddannelserne.

Det eneste, vi kan se, er at der er en korrelation mellem matematikkaraktererne fra  ungdomsuddannelserne og nogle bestemte fag på universitetet. Men det er også vigtigt i sig selv.

Jeg tør ikke pege på nogen enkel løsning, for først skal vi forstå årsagerne meget bedre. Selv vil jeg foreslå to tiltag.

  • For det første at vi laver yderligere undersøgelser for at se om problemet også forekommer for andre fag end de fire fag, vi har undersøgt.
  • For det andet at vi laver nogle kvalitative interviews, der kan afdække de studerendes motivation for at studere på de datalogiske uddannelser.

 

flattr this!

En eftermiddag hos Skype

2014-08-14 14.03.362014-08-14 14.03.31 2014-08-14 14.09.15 2014-08-14 14.25.15 2014-08-14 15.15.38

I forbindelse med ICWL-konferencen kunne nogle af os komme på besøg hos Skype, der har hovedkvarter i Tallinn. I Danmark tænker mange af os på Skype som noget, Janus Friis stod bag. Men Janus Friis udviklede Skype på omtrent samme måde som Christian d. 4 byggede Rundetårn i København. Reelt var det fire estiske softwareudviklere, der først udviklede KaZaA, som de solgte til Friis og hans partner Niklas Zennström, og siden for Friis og Zeenström udviklede Skype.

Filip, den medarbejder, der skulle modtage os, var blevet forsinket, så den første vi mødte var en kvinde med en baby. Hun var egentlig på barsel, men hun var dukket op, fordi der var et vigtigt møde som involverede hende. Ved at stå og sludre med hende fik vi faktisk ganske meget af det at vide, som vi bagefter fik fortalt i den rigtige rundvisning.

På ganske mange måder mindede Skype mig om Microsoft, som jeg for år tilbage besøgte – og noget tilfælde er det ikke, for det er Microsoft, der nu ejer Skype.  Jeg kunne ikke lade være med at bemærke at der var flere opholdsstuer med bøger, computerspil og lignende og betalt frokost og drikkevarer – ligesom hos Microsoft.  Filip var ikke sen til at gøre os opmærksomme på at man ikke bare måtte tage sine børn med, hvis det var nødvendigt, man måtte også gerne have sit kæledyr med.

Alt dette forekom rigtig positivt, men jeg kunne ikke lade være med også at bemærke at Skype samtidig er eksponent for den idé om det grænseløse arbejde, som er så hyppig nu om dage blandt vidensarbejdere både i private og offentlige virksomheder. Der var gode muligheder for også at være der om aftenen, hvis det var det man havde brug for, sagde Fillip. Og man kunne arbejde hjemme, hvis man nu havde fået influenza. Jeg bemærkede også at Skype som mange andre virksomheder bruger storrumskontorer.

Besøget sluttede med at Filip gav en præsentation, der beskrev historien bag firmaet og de nuværende aktiviteter, herunder hvordan man udvikler software. Her fik man billedet af et firma, der bruger agile udviklingsmetoder (specielt det allestedsnærværende scrum) og mange forskellige programmeringssprog, omend Microsofts ejerskab nu fører til at Skype vil koncentrere sig om at bruge Microsofts egne sprog, især C# og F#.

flattr this!

ICWL 2014

2014-08-14 10.24.23 2014-08-14 10.22.58

I går aftes ankom jeg til Tallinn, hvor jeg skal deltage i konferencen ICWL 2014 (13th International Conference on Advances in Web-Based Learning). Først da flyet landede gik det op for mig at Estland ligger i den østeuropæiske tidszone. Så jeg kom på én gang lidt tidligt og lidt sent i seng.

Dette er en konference inden for et noget andet fagområde end det, jeg normalt publicerer inden for, så der er ikke rigtig nogen her, jeg kender. Min medforfatter Dorina Gnaur fra Institut for læring og filosofi dukker op senere i dag.

Første programpunkt i dag var en workshop om peer assessment, som er en undervisningsteknik, jeg selv begyndte at interessere mig for for nogle år siden. Første foredrag af Edward Gehringer var interessant; det handlede om hvordan man kan bedømme kvaliteten af studerendes bedømmelser af medstuderendes arbejde – jeg ved fra mine egne erfaringer med peer assessment at studerende af og til at være meget utilfredse med kvaliteten af de kommentarer, de får fra medstuderende. Ofte er det værste ikke at få en sønderlemmende kritik, men at få en fritstående, forkølet bemærkning om at “Det ser meget godt ud”. For hvad kan man bruge dét til?

Desværre kunne Gehringer ikke være med os i dag; hans foredrag blev afviklet fra hans kontor i USA over nettet. Næste foredrag var ikke nær så interessant, for de to forfattere var ganske enkelt ikke dukket op! Det blev til en helt uventet lang kaffepause.

Dette er første gang, jeg besøger Estland og fordi jeg endnu kun har været her i få timer, har jeg knap nok noget indtryk af landet. Men jeg kan ikke lade være med at bemærke at sproget er lidt af en barriere. I supermarkedet her til morgen følte jeg mig som en nyfødt analfabet, da jeg ledte efter en lille flaske frugtsaft. Estisk er beslægtet med finsk, men det har jeg ingen glæde af. Der er en del låneord fra indoeuropæiske sprog, men sikkert også en del “falske venner”. Bare se skiltet ovenfor. Antropologi, filosofi og kulturteori kender vi godt hjemmefra, og seminarrum, auditorier og atrium ligeså, men er der virkelig også en afdeling på Tallinns Universitet, der beskæftiger sig med nudistkultur?

flattr this!

Maskinen, der ikke er en brødrister

computer-toaster

Hvad er forskellen på en computer og en brødrister? Brødristeren kan riste brød. Måske kan brødristeren indstilles til hvor længe den skal varme, men det er så også dét. En computer er ikke god til at tilberede ristet brød, men den er til gengæld universelt programmerbar.

Jeg er vokset op med at computeren først og fremmest var et instrument, jeg kunne programmere selv. Derfor er det underligt for mig at opleve at de fleste almindelige computerbrugere slet ikke er klar over at deres computere kan programmeres. Mange almindelige brugere tænker stadig på deres computer som en slags “fjernsyn med skrivemaskine” (selv om fjernsynet er på vej i baggrunden, og skrivemaskiner for længst er en saga blott). Der er alt for mange beretninger om alle de kvaler, brugere har med at få deres computere til at gøre det, de gerne vil have dem til. Og programmering er jo netop dét: At instruere computeren i at gøre det, vi gerne vil have den til at gøre.

Jeg programmerer stort set ikke mere – og jeg er derfor nok lidt rusten i mælet efterhånden. Men alligevel. Hvorfor skal alle mennesker ikke lære at computere er programmerbare, når nu det er netop dét, der er denne meget udbredte maskines særkende? For knap to år siden skrev jeg om hvordan man i Estland ville lære alle skolebørn at programmere. Dengang skrev jeg også om hvordan man i Storbritannien besluttede at revidere skolernes pensum, så man i stedet for at undervise i “informationsteknologi” begyndte at undervise i datalogi.  Seneste nyt er fra Hong Kong:  Også her er der et initiativ i gang, der skal lære skolebørn at programmere.

I Danmark er der stadig ikke lignende initiativer. Her skal skoleelever fortsat gøres til brugere af eksisterende software. Det må være på tide at erstatte “IT” med datalogi.

Det er bestemt ikke meningen, at alle skal blive softwareudviklere eller programmører, men noget tilsvarende er vel heller ikke formålet med noget skolefag. Det er ikke meningen at faget dansk skal gøre alle skoleelever til forfattere eller journalister. Jeg vil derimod (som jeg skrev for to år siden) tænke på dette som en ny form for hjemkundskab.

Nu må det snart være på tide, at de af os, der interesserer os for undervisning og for videnskaben datalogi, tager dette emne alvorligt, når nu politikerne ikke gør det. Det er interessant at der her er tale om de selvsamme politikere, der ellers ynder at postulere stor handlekraft og indsigt mht. folkeskolens indhold.

Der er i den forbindelse et andet, relateret spørgsmål, der efterhånden undrer mig en del: Hvorfor er vore computere ikke åbenlyst programmerbare? Det er besværligt for brugere at skabe deres egne applikationer. Dette kunne være en lejlighed til at tænke over hvad et godt programmeringssprog til skoleelever mon kunne være. Der er allerede bud – nogle af dem er veligennemtænkte, f.eks. MITs Scratch-sprog og tilhørende programmeringsomgivelse. Men hvad er mon det rette i danske skoler? Jeg ved det ikke, men nogen burde finde ud af det. (Og nej, svaret er ikke C++.)

flattr this!

Hemmelig deling

Secretsharing-3-point

I dag var jeg til workshop om secret sharing på Institut for matematiske fag. Dette er et emne med forbindelse til kodningsteori og kryptologi, og der var både matematikere og dataloger til stede fra flere danske universiteter (og en enkelt industriel personlighed). Det er ikke nogen ny idé, vi har med at gøre – den skyldes israeleren Adi Shamir og amerikaneren George Blakley, der fandt hver deres løsning på samme udfordring hver for sig i 1979. Secret sharing er den udfordring at lade et antal deltagere have hver deres del af et hemmeligt stykke data, men på en sådan måde at der skal et vist, bestemt antal deltageres viden til for at det hemmelige stykke data kan rekonstrueres.

Blakleys løsning er måske den nemmeste at forstå; hvis hemmeligheden skal deles med n deltagere, skal vi opfatte den som et punkt i et n-dimensionalt rum og fortælle hver af de n deltagere en plan i rummet. Planerne skal man vælge sådan, at de skærer hinanden i ét punkt – nemlig det punkt, man vil holde hemmeligt. Kun når man har kendskab til alle n planer, ved man hvad det hemmelige punkt er.

Shamirs løsning går (meget løst sagt) ud på dette: Hvis vi vil holde et tal hemmeligt og dele det med n deltagere, og tærskelværdien skal være t, dvs. at der skal t af de n deltagere til for at finde frem til den hemmelige talværdi, skal man at konstruere et polynomium af grad t-1 og oplyse n punkter fra polynomiets graf. Vi ved nemlig at vi kan bestemme et polynomium af grad t-1 entydigt, hvis vi kender t punkter på dets graf. Den ledende koefficient i polynomielt (dvs. den, der har højest orden) skal være den hemmelige værdi; resten vælger vi tilfældigt. Her kommer forbindelsen til kodningsteori ind, for det vi har lavet her, er det man også kalder for en Reed-Solomon-kodning.

I al fald er emnet stadig vigtigt i både matematik og datalogi, og Olav Geil og Diego Ruano fra AAU har allerede en del interessante resultater om emnet – og de har for nylig fået forskningsrådspenge til at arbejde videre med det.

Til dagens workshop var der både italienere og spaniere til stede, og stemningen var så positiv, at de endog helt frivilligt begyndte at snakke om VM i frokostpausen!

flattr this!

Det hele er i stykker

wordle-norton

I Information er der en lang artikel af den amerikanske journalist Quinn Norton, der var kæreste med den ligeledes amerikanske aktivist og softwareudvikler Aaron Swartz, som sidste år begik selvmord.

Dette er en artikel, jeg vældig gerne ville synes om, for jeg deler de bekymringer, Quinn Norton giver udtryk for om den manglende sikkerhed ved brug af computere. Især de store problemer, dårlig softwarekvalitet fører med sig, bekymrer mig.

Men artiklen er skrevet i et poppet, floskelpræget sprog med lav informationstæthed – mest af alt minder den desværre om de P0-rapporter, helt uerfarne studerende hos os laver i begyndelsen af 1. semester. Det er på dette tidspunkt, inden man ved noget om datalogi og om softwareteknologi, at man er mest tilbøjelig til at komme med store udsagn om hvad der kan lade sig gøre og (især) hvad der ikke kan lade sig gøre. Og så er der en frygtelig masse “du-sprog”. Det er pænt, at Quinn Norton tænker på mig, men jeg ville ønske at hun lod være.

Prøv bare at læse dette:

Software er så dårligt, fordi det er så komplekst, og fordi det forsøger at tale med andre programmer på samme computer eller gennem forbindelser til andre computere. Faktisk er din egen computer på en måde mere end én computer, den er æsker inden i æsker, og hver af dem er fuld af små programmer, som forsøger at koordinere handlinger og kommunikere indbyrdes. Computere er blevet ufatteligt komplekse, altimens vi mennesker er forblevet de samme grå mudderhoveder, der tror, vi er guder. Din gennemsnitlige middelmådige Windowsflade er så indviklet, at ingen på hele kloden reelt kender til alt, hvad den gør, endsige hvorfor.

Quinn Norton har fat i et reelt problem, nemlig at moderne softwaresystemer er alt for komplekse – både “hver for sig” og når de er del af et netværk. Men dette er et problem, som allerede bliver diskuteret i datalogi i forskellige afskygninger og ligger bag de Grand Challenges, som betydningsfulde forskere (bl.a Tony Hoare og Robin Milner) siden årtusindskiftet har formuleret.

Den oprindelige artikel på engelsk er desværre ikke bedre. Der må da være nogen derude, der kan skrive lige så lødigt om disse problemstillinger som man kan skrive om f.eks. udenrigspolitik eller global økonomi.

flattr this!

Er der en doktor til stede?

flag
Det “schweiziske flag” i 2 og flere dimensioner (fra Martin Raussens doktorafhandling).

I dag forsvarede Martin Raussen sin doktorafhandling i matematik her på Aalborg Universitet. Jeg har kendt Martin i mange år og har lidt på afstand prøvet at følge med i hvordan han sammen med bl.a. Lisbeth Fajstrup, der også er fra Institut for matematiske flag – undskyld, Institut for matematiske fag –og udenbys kolleger været motiveret af bestemte problemer inden for parallel programmering med gensidig udelukkelse til at udvikle et nyt område af algebraisk topologi, hvor man betragter homotopier mellem (klasser af) orienterede stier i planer. Stier svarer til “spor” i en programudførelse, og dimensionerne af det rum man betragter, svarer til antallet af parallelle komponenter. Orienteringen kommer ind i billedet på grund af den temporale ordning af programskridt.

Hvis man tror, at det kun er “diskret matematik” (som vel ofte mest forstås som al den matematik, der ikke er “kontinuert matematik”) som har forbindelser til datalogi, tager man fejl. Martin hævder selv at hans resultater ikke er særligt dybe, men her er det vist hans beskedenhed, der sætter ind.

Jeg fik dog ikke hele forsvaret med, for jeg var kommet af sted til NOVI uden mit adgangskort – døren lukker kl. 16, og jeg ville nødig smækkes ude. Dog har jeg en særdeles velbegrundet formodning om at Martin får sin doktorgrad og tør derfor godt ønske ham tillykke!

flattr this!

Noget om at bestå Turing-testen

eugene

Jeg har flere gange tidligere skrevet om Turing-testen, første gang i januar 2012 og siden igen i august samme år.

I dag kan jeg læse i The Independent, at der skulle være et program, der har bestået Turing-testen. Programmet er en såkaldt bot, og det er tilgængeligt online, så alle kan prøve at have en dialog med det. Programmet er en simulering af en 13-årig dreng fra Odessa i Ukraine ved navn Eugene Goostman. I en test foretaget af Royal Society skulle hele 33% af forsøgsdeltagerne have ment at de førte en dialog med et menneske.

Nu må jeg så hellere indrømme at jeg selv ikke er nær så imponeret – det virker som om programmet bare konsekvent snakker udenom. Men bevares, sådan er der jo så mange 13-årige der gør.

Her er den samtale, jeg selv prøvede at føre.

Tell me about your family.

I have a great number of relatives. Parents, elder broz and aunt Sonya in America. I visit my aunt every Summer and she’s always complaining that my visits are more destructive than floods and typhoons.

Where does Sonya live?

If you mean my aunt Sonya, she is doing well, and sends the best wishes to you.

No no. I mean: Whereabouts in the US does your aunt Sonya live?

If you mean my aunt Sonya, she is doing well, and sends the best wishes to you.

Og allerede efter tre spørgsmål er det klart for mig, at dette ikke kan være et menneske. Jeg prøvede at spørge lidt videre til den russiske besættelse af det østlige Ukraine, og jeg prøvede at få noget at vide om “Eugene Goostmans” hjem – men begge gange blev det helt klart fra goddag-mand-økseskaft-svarene at “Eugene Goostman” ikke er et menneske.

Den britiske datalog Kevin Warwick er citeret for dette:

“In the field of Artificial Intelligence there is no more iconic and controversial milestone than the Turing Test, when a computer convinces a sufficient number of interrogators into believing that it is not a machine but rather is a human,” he said. “Having a computer that can trick a human into thinking that someone, or even something, is a person we trust is a wake-up call to cybercrime.

Selv ville jeg hævde noget andet og mindre dommedagsklingende – det er ikke det ukrainske program, der er godt. Det er derimod mennesker, der er for godtroende. De kluntede svar og klodsede formuleringer i “Eugene Goostman” ligner lidt dem man kan finde i de til tider automatisk genererede e-mails, der forsøger sig med phishing. Ligegyldigt hvor åbenlyst tåbelige den slags beskeder har det med at være, er der stadig mennesker der ukritisk hopper på dem. Hvis Turing-testen skal have en berettigelse, skal man måske også tænke på hvilke mennesker, der deltager i testen som forsøgspersoner.

flattr this!

P=NP, siger Knuth

hex

Da jeg studerede, var der et spil, vi ofte spillede, nemlig Hex. Spillet blev opfundet af Piet Hein tilbage i 1942 og spilles af to mennesker (vi kan jo kalde dem rød og blå) med blyant og ovenstående spillebræt på et stykke papir. Hver spiller har to modstående sider af rhomben.

De to spillere skiftes til at afkrydse et felt. Målet er at blive den første, der kan lave en ubrudt følge af krydser der forbinder de to modstående sider.

I 1949 viste John Nash (ham fra A Beautiful Mind) at der er vindende strategi i Hex men han viste ikke hvordan sådan en strategi ser ud! Man ved hvordan vindende strategier ser ud op til 9 gange 9 felter, derefter ved man ikke noget endnu. Hvis man skal se positivt på det, betyder det at det stadig bør være sjovt at spille Hex.

Men den slags ikke-konstruktive argumenter bør få én til at tænke. Det er underligt at vide at der findes et bestemt objekt (som her er en strategi) men ikke at vide hvordan det ser ud.

Der er et interessant interview med den legendariske datalog og matematiker Donald Knuth hvor han bruger Hex som del af en begrundelse for at tro at \mathrm{P=NP}-formodningen har et positivt svar, dvs. at \mathrm{P=NP}. Det er der ellers ikke så mange, der mener. Knuth er til gengæld tilbøjelig til at mene at der er et ikke-konstruktivt bevis for sætningen.

As you say, I’ve come to believe that \mathrm{P=NP}, namely that there does exist an integer M and an algorithm \mathcal{A} that will solve every n-bit problem belonging to the class \mathrm{NP} in n^M elementary steps.

Some of my reasoning is admittedly naïve: It’s hard to believe that \mathrm{P \neq NP} and that so many brilliant people have failed to discover why. On the other hand if you imagine a number M that’s finite but incredibly large—like say the number 10 3 discussed in my paper on “coping with finiteness”—then there’s a humongous number of possible algorithms that do n^M bitwise or addition or shift operations on n given bits, and it’s really hard to believe that all of those algorithms fail.

My main point, however, is that I don’t believe that the equality \mathrm{P=NP} will turn out to be helpful even if it is proved, because such a proof will almost surely be nonconstructive. Although I think M probably exists, I also think human beings will never know such a value. I even suspect that nobody will even know an upper bound on M.

Er det så et godt argument at sige at “Jeg kan ikke forestille mig at det ikke er tilfældet”? Jeg ved det ikke rigtig, men det er interessant og (synes jeg) også lidt skræmmende hvis \mathrm{P=NP} og vi ikke kan få glæde af den viden.

flattr this!

P=NP og Hilberts basissætning

pudlak

Et af de emner, som mange inden for datalogi og matematik ynder at tale om er \mathrm{P=NP}-problemet. Problemet er underligt fristende og frustrerende; vi kender problemet godt nok til at kunne formulere det præcist, men løsningen kender vi ikke. Det er lidt som det pæretræ, der står et sted i min svigerfars have; fem meter oppe sidder der hvert år en masse flotte pærer. Men stammen er helt lige og med få grene.

Jeg kan ikke lade være med at tænke på hvordan andre åbne problemer i matematik først er blevet løst efter at der er kommet ny og overraskende indsigt. Bagefter kom standardpensum og lærebøgerne. Et af de helt store problemer i 1800-tallets matematik var det, vi nu kender som Hilberts basissætning i algebra. Er det tilfældet at hvis R er en Noethersk ring, da er ethvert ideal i polynomiumsringen R[x_1,\ldots,x_n] endeligt frembragt? Hermed menes der at der skal findes der en endelig mængde \{k_1,\ldots,k_m\} af elementer i idealet M, således at ethvert element i det kan skrives som en linearkombination af dem.

En Noethersk ring R er en ring, hvor enhver ikke-tom familie af idealer fra R har et maksimalt element. Legemer (men såmænd også bare den sædvanlige ring over  \mathbb{Z}) er eksempler på Noetherske ringe.

Vi har med andre ord at gøre med begreber, som man i dag lærer i algebrakurset på første del af en matematikuddannelse. Så dette problem er inden for rækkevidde på samme måde som \mathrm{P=NP}-problemet er det for datalogistuderende.

Hilberts bevis var et snedigt induktionsbevis – og ikke-konstruktivt. Det er bestemt ikke en overdrivelse at sige, at ikke alle var glade for at dét var tilfældet. Også beviset er i dag inden for rækkevidde af en studerende på første del af en matematikuddannelse. (Senere er der kommet konstruktive beviser for udgaver af basissætningen.)

Klaus Frovin Jørgensen har en gennemgang af hvad Hilberts basissætning førte med sig. På nogle måder er konstruktiv matematik og alt det, den har ført med sig, en reaktion mod Hilberts ikke-konstruktive tilgang. Jeg tror selv at et bevis for \mathrm{P=NP}-problemet vil føre til et lignende jordskred og at beviset for at \mathrm{P=NP} (eller for at \mathrm{P \neq NP}) en dag bliver del af pensum på datalogiuddannelsen. Om jeg så selv når at komme til at undervise i det, er en helt anden snak.

flattr this!