Programmering: Imperativ och objektorienterad programmering i Python. Programmeringsmetodik. Programkvalitet. Testning och felsökningsstrategier. Modularisering. Abstraktion. Programmeringsgränssnitt.
Algoritmer och datastrukturer: En systematisk genomgång av datalogiska begrepp: abstrakta datatyper, algoritmanalys, rekursion, stackar, köer, listor, sökning, sortering, hashning, prioritetsköer, träd, sökträd, problemträd, textsökning, enkel syntaxanalys, kryptering.
Efter godkänd kurs ska studenten kunna
- skriva strukturerade program utan kodupprepning i Python
- använda och konstruera sammansatta datatyper och klasser
- utforma och presentera användarvänliga utdata
- överföra data mellan fil och program
- systematiskt felsöka och testa program
- använda abstraktion som ett verktyg för att förenkla programmeringen
- använda programmeringsgränssnitt
- välja lämplig algoritm till ett givet problem
- jämföra algoritmer med avseende på tids- och minnesåtgång
- implementera olika algoritmer för sökning och sortering och redogöra för deras egenskaper
- formulera och implementera rekursiva algoritmer
- modellera problem som sökproblem och implementera algoritmer för breddenförstsökning, djupetförstsökning och bästaförstsökning
- beskriva grundläggande komprimeringsalgoritmer och vid vilka typer av komprimering de används
- implementera stackar, köer, binära sökträd, allmänna träd, hashtabeller och hashfunktioner samt använda dessa
- använda prioritetsköer
- använda enkla krypteringsmetoder, och förklara principerna för asymmetrisk kryptering
- använda algoritmer för textsökning, reguljära uttryck och BNF-syntax
- identifiera problem där datastrukturerna ovan är användbara och konstruera enkla algoritmer med dessa
i syfte att
- bli bra på att lösa problem med programmering
- kunna använda datalogiska metoder i tillämpningsprojekt
- få tillräckliga förkunskaper för att kunna läsa fortsättningskurser i datalogi.