Professor Kai A. Olsen er aktuell med to bokutgivelser denne høsten. Foto: Arild J. Waagbø

Nyttig innsikt i programmering

Kai A. Olsens lærebok «Praktisk programmering» kan absolutt brukes som et grunnlag om man har lyst til å begynne med programmering

 Av JOHN ERIK JOHNSEN, leder for programvareavdelingen i Adcom Molde

«Praktisk programmering» av professor Kai A. Olsen ved Høgskolen i Molde er helt fersk av året, og danner pensum i faget Praktisk programmering som er ett av flere fag som inngår i årsstudiet i IT ved Høgskolen i Molde. Olsen har valgt å basere boka og undervisningen på databaseprogrammet Access fra Microsoft og programmeringsspråket VBA (Visual Basic for Applications).

Praktisk programmering av Kai A. Olsen, Cappelen Damm Akademisk, 285 sider, 429 kroner.
Praktisk programmering av Kai A. Olsen, Cappelen Damm Akademisk, 285 sider, 429 kroner.

Introduksjonen i boka starter med en forklaring om hvorfor forfatteren har valgt å basere bok og undervisning på Microsoft Access. Han påpeker med rette at dette er et smart program å begynne med, i og med at det er et slags programmeringsmessig Kinderegg. Man lager grensesnitt, skriver kode og lagrer data i én og samme løsning. Dermed får man ett system å forholde seg til. Dette synes jeg er helt ok for nybegynnere, men programmering i 2018 er et omfattende fag med mange programmeringsspråk og metoder. Blant annet kreves det i stadig større grad at løsningene er web-basert, og her kommer Access til kort. I tillegg hyles det hele tiden om apper, og heller ikke her har Access noe å tilby, med visse unntak.

Olsen skriver også at man kan lage større systemer til bedrifter i Access, og her kan jeg ikke være helt enig. Egen erfaring viser at Access fort når taket når det gjelder å håndtere mange brukere eller større datamengder. Heldigvis kan man endre Access-baserte løsninger til å bruke Microsoft SQL Server som database, og dette løser en del av problemene med skalering av løsningen.

LES MER: Høgskolens kroniske kronikør er dobbelt bokaktuell

Ett poeng i begynnelse av boka er faktisk ganske viktig: Siden Access og VBA er lett å komme i gang med, kan det med fordel benyttes til prototyping, og prototyping er noe alle programutviklere og programutviklingsfirmaer bør gjøre mer av. (Bare spør alle som deltar på Design Thinking-kursene til Protomore kunnskapspark.)

Det er kanskje unødvendig å nevne, men studenter må ikke tro at 15 studiepoeng i praktisk programmering gjør dem til programmerere, eller at Access-kunnskap er nøkkelen til en jobb som programmerer i næringslivet. Men en god begynnelse kan det være. Mange løsninger ble tidligere bygd på Access, og mange er sikkert i bruk ennå, men en del er også flyttet over til VB.net og MSSQL-database, eller bygd om til andre plattformer. De som lager tyngre Windows-applikasjoner benytter ofte utviklingsverktøy som Visual Studio og programmeringsspråkene C# eller C++, og i avanserte web-baserte løsninger brukes blant annet JavaScript. Alle språk er forskjellige, og noe jobb vil det alltid være å sette seg inn i et nytt programmeringsspråk og -miljø. Spesielt hvis man går over til språk som er svært forskjellige fra Visual Basic.

Så vidt jeg kan se er ikke avanserte programmeringsmetoder, som f. eks. objektorientert programmering, omtalt i boka. Objektorientert programmering ble utviklet på 60-tallet i Norge og er grunnlag for mye av moderne programmering, men det hører kanskje heller ikke hjemme i denne boka. Uansett er terskelen opp til å beherske objektorientert programmering ikke til å kimse av.

Men nok klaging. Jeg synes IKKE at boka er verken uinteressant eller dårlig, til det har den for mange pedagogiske kvaliteter. Den kan absolutt brukes som et grunnlag om man har lyst til å begynne med programmering. Terskelen for å komme i gang er lav, og den trinnvise progresjonen hvor man tar for seg ett og ett område med stigende kompleksitet, gir en systematisk introduksjon til programmering.

Fagets forelesninger (video), presentasjoner (Powerpoint) og de ferdige eksemplene ligger tilgjengelig på høgskolens sider via Canvas. Selv om jeg er hørselsskadd og Olsen har et snev av dialekt, er det lett å få med seg det som blir sagt i videoene. Talen i videoene er overraskende rolig og meget tydelig. Ser man bort ifra at man må møte opp til skriftlig eksamen, vil det ikke være noe problem å være i en snøhule på Sydpolen og studere praktisk programmering, bare strøm og bredbånd er tilgjengelig. Det er lagt opp til at faget kan tas som selvstudium, og her har skolen sine ord i behold.

Selv om boka bygger på Access og VBA, er de fleste begreper og metoder generelle for all programmering. Man får en forståelse som kan tas med videre over til andre programmeringsverktøy og -språk hvis det er ønskelig å gå videre i faget.

Boka er delt inn i hele 69 kapitler, selv om boka «bare» er på litt mer enn 280 sider. Det betyr at kapitlene er ganske korte, og det er faktisk ikke så dumt. Det er oppgaver i de aller fleste kapitlene, slik at man får litt teori om gangen og mye øving. Som i mange andre fag er det mengdetrening som er en av nøklene for å beherske også dette faget.

Kapittel 1 handler om Access og programmering generelt. Her påpeker forfatteren viktigheten av nøyaktighet i programmeringen, noe som er helt essensielt for å lage robust programkode. I kapittel 2, 3 og 4 er det bruken av Access og definering av skjemaer (forms) og kort introduksjon til det å presentere informasjon i et grensesnitt. (Eksemplet er en Fibonacci-tallrekke for de som er tall-nerder.) Skal jeg pirke på noe helt i starten av boka så kunne jeg tenkt med at begrep som «deklarering» og «sub» hadde blitt forklart første gang de ble brukt. Men for en student med Google lett tilgjengelig bør ikke dette være noe problem. Dessuten blir en del begreper samlet og forklart i en tabell i slutten av hvert kapittel, noe som faktisk er veldig smart.

Bokens kapittel 5 til 19 omhandler forskjellige aspekter ved programmering som: kjøring og debugging, typer, variabler, for-setninger, konstanter, syntaks, variabelnavn, datatyper, logiske operatorer, teksthåndtering, kryptering etc. Alle aspekter er illustrert med programmeringseksempler, og ikke minst er det øvinger for å få kunnskapen til å sette seg i fingrene (og helst også i hjernen). Noen grunnleggende programmeringsleveregler blir også gitt, blant annet at variabler bør har fornuftige navn, noe som for mange virker helt selvfølgelig, men som ikke alltid er det for programmerere.

Først i kapittel 20 begynner man med tabeller og databaser. Deretter går forfatteren igjennom feilhåndtering og enda dypere i det å legge data inn i og hente ut av databaser. Her tas også behovet for testing og testdata opp, noe som dessverre ofte blir undervurdert i programutviklingsprosjekter. Man får faktisk nesten aldri testet et system godt nok før det slippes i markedet. Det gjelder ikke bare mindre prosjekter, men også større lanseringer. Ett eksempel er Microsoft Windows 10 sin høstoppdatering i år som på enkelte maskiner slettet det meste av brukerens data. Var det noen som nevnte backup?

Fra kapittel 38 og utover vil de som har kunnskap om Olsens biaktiviteter kjenne igjen noen av eksemplene som brukes. Man kan si hva man vil om dette, men personlig synes jeg det er bedre med praktiske eksempler som faktisk er i bruk (eller kan brukes) i næringslivet, enn teoretiske tilnærminger som ikke har noen praktisk relevans. Dette er en av bokas styrker.

De fleste kapitlene har en «case» (oppgave). I tillegg til å beskrive oppgaven, gjøres det en analyse av den. Dette er en meget god tilnærming til enhver problemstilling, og det gjentas så ofte i boka at den som har tatt «Praktisk programmering» bør ha analyseforståelse godt under huden. Utover i kapitlene blir oppgavene mer komplekse, og samtidig smettes det inn nye elementer av teori.

Hvordan bruke VBA i Word omhandles i kapittel 64. Dette er et lite kapittel, men Word kan for mange faktisk være et av de mest matnyttige stedene å benytte seg av sin VBA-kompetanse. Selv har jeg en makro som skalerer et innlimt bilde til 50% av opprinnelig størrelse. Det kjøres når jeg trykker tasten F1, og sparer meg for utrolig med tid siden jeg lager mye dokumentasjon i Word med innlimte skjermbilder. Eksemplet i boka viser et program som grupperer objekter i Word og samtidig sørger for at det største objektet legger seg bakerst. Ingen dum funksjon for de som ønsker å bruke Word til bøker eller dokumentasjoner. Forøvrig kan flere av Office-programmene utvides med makroer basert på VBA. Her er det mange som har en del å hente i produktivitet, om de bare kan litt VBA.

Et prosjekt for Oshaug Metall og et annet for ShipNor er omtalt i kapittel 67 og 68. Disse prosjektene viser hvordan bedrifter kan få spesialtilpasset programvare som gir en helt klar produksjonsmessig gevinst. Her er det jeg liker aller best med boka, den påpeker at det er fullt mulig å lage skreddersydde dataprogram tilpasset bedriftens behov, og at dette kan gi bedriften en konkurransefordel.

Konklusjon: Ved å studere seg igjennom denne boka lærer man praktisk programmering, men får også innsikt i hvordan skreddersydd programvare, enten kun til eget bruk eller til bruk i en bedrift, kan øke effektiviteten i bedriften. Og denne forståelsen vil faktisk være meget nyttig nesten uansett hva man skal jobbe med. For de som studerer økonomi og logistikk, så er dette et «must», men også for alle som ser for seg en eller annen lederrolle. Innsikt i programmeringens mange muligheter er uvurderlig i dagens samfunn, ikke minst for framtidens ledere.

Så får det heller være tilgitt at Kai A. Olsen sverger til Microsoft Access og VBA.