Skal man lære om beregnelighed?

Standseproblemet på vers. Et digt af Geoffrey K. Pullum fra University of Edinburgh.

Lige for tiden er der diskussioner om indholdet af uddannelserne i datalogi og software på mit institut. Der er nogle, der nu taler for, at man skal fjerne det kursus, der hedder Beregnelighed og kompleksitet fra pensum. Det er det kursus, der handler om uafgørbare og svære beregningsproblemer og tager udgangspunkt i Alan Turings resultater herom.

Datalogifaget fornyr sig hele tiden, siger de, der taler for at afskaffe Beregnelighed og kompleksitet, og det må være på sin plads at tage fat på nogle andre emner nu og måske have nogle flere værktøjsfag. Skulle man absolut nævne at der findes problemer, der ikke kan løses med en algoritme, kunne man jo gøre det kort i den første uge på første semester – så er dét overstået. Det er måske et fundamentalt resultat, men fundamental er jo det samme som elementær. I øvrigt kan man klare sig fint uden, lyder det – de fleste kandidater bliver trods alt først og fremmest programmører, og den slags skal aldrig prøve at løse uafgørbare problemer.

Jeg er selvfølgelig alt andet end neutral her; Beregnelighed og kompleksitet var det første kursus, jeg underviste i da jeg blev universitetslærer i sin tid, og der er ikke nogen på mit institut, der har holdt det så mange gange som mig. Til efteråret skal jeg holde kurset igen, og igen til 2019. Måske bliver det sidste gang nogensinde, studerende møder disse emner, men hvis det sker, vil jeg være endog meget trist til mode. I så fald bliver AAU (så vidt jeg kan se) hjemsted for en af de få datalogiuddannelser derude, hvor studerende ikke skal lære noget om algoritmers begrænsninger.

Mit dybeste argument for at Beregnelighed og kompleksitet ikke skal forsvinde fra vores datalogi- og softwareuddannelser er, at det er vigtigt, at studerende lærer om hvad man ikke kan og aldrig vil kunne. Datalogi er i højere grad end andre naturvidenskaber præget af den teknologiske udvikling, men også datalogi har en kerne af begreber, der ikke forandrer sig. De programmeringssprog og de maskinarkitekturer, vi har i vore dage, er ikke blevet bedre i stand til at løse standseproblemet eller tvetydighedsproblemet for kontekstfrie grammatikker end de sprog og arkitekturer, der fandtes for 20 år siden. Det er ikke alt, man kan programmere sig uden om, og dén faglige realisme og ydmyghed skal en person med en universitetsuddannelse i datalogi være i besiddelse af. Fundamentale resultater i videnskab er ikke nødvendigvis elementære; faktisk er det typisk tilfældet i matematik og naturvidenskab, at de vigtigste resultater er alt andet end nemme at forstå og ofte endda strider mod intuitionen.

(Visited 200 times, 1 visits today)
Loading Facebook Comments ...

Én kommentar til “Skal man lære om beregnelighed?”

Skriv et svar