Om innholdet i boken
Bokens oppbygning
Her får du et kort overblikk over hva de forskjellige kapitlene i boken dekker:
Del 1 - Grunnleggende
Kapittel 1: Introduksjon til Python - Her vil du lære hva programmering er, og at Python er et spesifikt språk for programmering. Etter å ha installert Python vil du kjøre dine første programmer skrevet i Python. Du vil utføre enkle regneoperasjoner slik at du kan bruke Python som en kalkulator. Konsepter som variabler, nøkkelord, og kommentarer vil bli introdusert, og dette vil du bruke gjennom hele boken.
Kapittel 2: Grunnleggende datatyper - Her vil du dypdykke ned i datatyper som heltall, strenger, og sannhetsverdier. Du skal lære om metoder som hører til datatyper, og hvordan du kan bruke metoder til å effektivt jobbe med datatyper i Python. I tillegg skal du ta inn informasjon fra brukeren av programmet. På denne måten vil programmene du lager bli interaktive.
Kapittel 3: Betingede setninger - Her vil du få en solid introduksjon til betingede setninger slik at programmene dine kan ta valg basert på informasjon. Du vil lære om logiske operatorer og få en bedre forståelse av hvordan du kan bruke sannhetsverdier. I tillegg skal du lære om standarden PEP8 og hvilke anbefalinger den gir for å skrive tydelig kode i Python.
Kapittel 4: Lister - Her vil du bruke lister til å samtidig behandle flere elementer som logisk henger sammen. Du vil bli kjent med sentrale teknikker som indeksering og sortering. Du skal jobbe med å endre størrelsen til lister ved å legge til eller fjerne elementer. I tillegg vil du få erfaring med lister inni andre lister, et konsept som er overraskende nyttig.
Kapittel 5: Løkker - Her vil du gjenta lignende handlinger flere ganger ved å bruke løkker. Du vil jobbe med både for-løkker og while-løkker, som er de to løkketypene i Python. Det blir et fokus på å forstå når for-løkker versus while-løkker bør brukes. I tillegg vil du lære hvordan du kan stoppe løkker tidlig på flere måter, noe som er svært nyttig for å unngå unødvendig ressursbruk.
Kapittel 6: Funksjoner - Her vil du lære hvordan du kan skrive dine egne funksjoner. Du vil få erfaring med konsepter som parametere, returneringsverdier, og dokumentasjonsstrenger. I tillegg vil det være fokus på hvordan du kan skrive leselige funksjoner. Med kunnskapen i dette kapittelet vil du kunne stykke programmene dine opp i funksjoner, slik at programmene blir lettere å vedlikeholde.
Kapittel 7: Første hovedprosjekt - Her vil du gå gjennom det første hovedprosjektet i boken. I løpet av prosjektet vil du bruke både betingede setninger, lister, løkker, funksjoner, og mye mer. Prosjektet vil la deg repetere det viktigste du har lært så langt, samtidig som du får bryne deg på et større prosjekt.
Del 2 - Videre temaer
Kapittel 8: Pakker i Python - Her vil du bruke kode som andre har skrevet via pakker. Det er viktig å kunne bruke både innebygde pakker i standardbiblioteket, samt eksterne pakker som må lastes ned. Du vil lære alt du trenger om importering av pakker i Python. I tillegg vil du bli bedre kjent med en pakke for å generere tilfeldige tall i Python.
Kapittel 9: Sammensatte datatyper - Her vil du utvide repertoaret ditt med sammensatte datatyper fra å bare kunne bruke lister. Du vil lære om tupler, mengder og ordbøker. Fokuset er på å bruke riktig verktøy til riktig jobb. I tillegg til nye sammensatte datatyper vil du lære om listebeskrivelser og andre beskrivelser som hjelper deg med å raskt opprette strukturer.
Kapittel 10: Arbeide med filer - Her vil du få programmene dine til å nå omverdenen ved å kommunisere med filer. Du vil lære å både lese fra og skrive til filer på trygge måter. Det er i hovedsak rene tekstfiler, men også kjente formater som CSV-filer, JSON-filer, og binærfiler. På denne måten vil du kunne lese fra og skrive til filer som har både strukturerte og ustrukturerte data.
Kapittel 11: Klasser og objekter - Her vil du se nærmere på klasser og objekter, og hvordan du kan bruke dem til å strukturere programmene dine. Når du setter klasser og objekter i sentrum for hvordan programmene dine struktureres kalles dette objektorientert programmering (OOP). Du vil lære om attributter, konstruktører, dundermetoder, og arv. Det fokuseres på hvordan klasser kan brukes som grensesnitt for å håndtere ansvarsfordeling i programmene dine.
Kapittel 12: Håndtering av feil - Her vil du lære hvordan du kan få større kontroll på feilene som oppstår i programmene dine. Dette innebærer å frembringe dine egne feil, men også å skånsomt håndtere feil som oppstår. I tillegg vil du lære kort om både enhetstesting og indikering av typer slik at programmene dine kan bli tryggere og mer feilfri.
Kapittel 13: Funksjoner av høyere orden - Her vil du bruke funksjoner på en helt ny måte, nemlig som argumenter og returneringsverdier til andre funksjoner. Dette er veldig nyttig og er helt fundamentalt for konsepter som rekursjon og dekoratører. I tillegg vil du lære om grunnprinsippene til funksjonell programmering som en måte å strukturere programmene dine.
Kapittel 14: Andre hovedprosjekt - Her vil du gå gjennom det andre hovedprosjektet i boken. I løpet av prosjektet vil du bruke alt fra feilhåndtering til skriving til filer. Kort sagt vil dette være en oppsummering av en stor del av det du har lært i denne boken. Etter å ha gått gjennom prosjektet vil du ha den grunnleggende kompetansen i Python som du kan bygge videre på for å lage større og mer kompliserte programmer.
Bakgrunnen for boken
Du kan jo lure på hvorfor det er behov for å skrive en bok på grunnleggende Python? Slik jeg ser det er det ingen bøker i dag som dekker følgende fire behov:
Boken er gratis, digital, og fritt tilgjengelig: Denne boken koster ingenting å bruke. De fleste eksisterende bøker i Python koster fort rett under tusenlappen for å kjøpe. Man får da riktignok som regel en fysisk kopi av boken, men dette er i mindre grad viktig når det er vanskelig å jobbe med programmering uten å sitte foran en datamaskin. En digital utgave har også fordeler knyttet til søkefunksjon og kopiering av kode som fysiske bøker mangler. I motsetning til læringsressurser laget i individuelle universitetskurs er boken heller ikke låst bak en digital mur som krever at man er innrullert i et fag.
Boken er på norsk, og bruker innarbeidede norske begreper: Det finnes naturlig nok et mye større utvalg av læringsressurser til Python på engelsk. På norsk er det et mye mindre utvalg læringsressurser, og de bruker ikke nødvendigvis etablerte norske begreper. Det er fint å introdusere et arbeidsspråk for programmering og Python på norsk som faktisk blir brukt i praksis. Jeg har prøvd å bruke etablerte begreper der det eksisterer. I situasjoner der det ikke er et etablert begrep på norsk har jeg tatt noen overveide valg basert på praktisk bruk og hva som høres naturlig ut å si på norsk.
Boken har kode av høy kvalitet: Ikke alle læringsressurser i Python demonstrerer god kodekvalitet. Dette kan omfatte alt fra uklare variabelnavn til manglende formatering. I denne boken følger all kode i Python PEP8-standarden, og jeg har brukt tid på å sikre gode variabelnavn. Jeg har inkludert flere kommentarer enn det som typisk blir brukt i profesjonell kode av rent pedagogiske årsaker.
Boken dekker det grunnleggende i Python: Dette punktet er selvfølgelig veldig subjektivt. Likevel har jeg erfart at flere andre bøker enten ikke dekker veldig grunnleggende konsepter, eller har for mange avanserte temaer for en introduksjonsbok. Jeg har utformet innholdet i boken slik at en person som har lest boken kan trygt svare “ja” på spørsmålet: “Kan du Python?”. Innholdet i boken reflekterer grovt sett hva jeg selv ville forventet at en person som svarer ja på dette spørsmålet kan.
Hvordan få mest mulig ut av boken?
Programmering er et praktisk fag. For å få mest ut av læringen MÅ du arbeide aktivt med stoffet. Dette betyr at du bør kode med når du støter på eksempler. Prøv også å endre småting i eksemplene jeg gir for å se hva som skjer. Vær nysgjerrig!
Du bør løse alle oppgavene i slutten av hvert kapittel. Boken inneholder totalt 60 oppgaver, så det er helt realistisk å løse alle oppgavene i boken. Oppgavene gir deg praktisk erfaring med konseptene vi har jobbet med. I tillegg er det nyttig å søke opp andre forklaringer og eksempler enn dem jeg gir. Skriv dine egne programmer som bruker konseptet som blir forklart.
For en selvstendig student: Hvis du bruker denne boken uavhengig av et kurs eller emne har du muligheten til å selv bestemme hva du vil fokusere på. Anbefalingen min er likevel å lese boken fra start til slutt. Alle kapitlene lærer deg noe nyttig, og du vil få en solid grunnmur dersom du lærer deg alt materialet i boken. Dersom du ikke har tid eller motivasjon til å jobbe deg gjennom hele boken har jeg brutt boken opp i to deler, der den første delen består av kapittel 1 til og med kapittel 7. Dette er et naturlig stoppested dersom du kun trenger å lære det helt grunnleggende i Python. Du kan alltids komme tilbake senere for å fortsette på boken!
For foreleser: Dersom du foreleser et emne og ønsker å bruke boken som en ressurs så er dette helt tipp topp. Jeg setter pris på om du gir meg beskjed ved å sende en epost til ebbeberge94@gmail.com slik at jeg vet litt om hvem som benytter boken. Jeg anbefaler å ikke i for stor grad hoppe over kapitler når du lager et pensum. Videre kapitler bygger på konsepter i de forrige kapitlene, så mye hopping blir fort forvirrende lesning for studentene. En mulighet er å gå gjennom hele del 1 av boken, og deretter velge noen utvalgte kapitler i del 2 av boken. Kapitlene i del 2 av boken er mindre avhengige av hverandre, så her er det lettere å plukke og mikse.