I den här kursen bygger studenten på sina kunskaper om algoritmer, datastrukturer och programmering. Programspråk i kursen är Python.
Algoritmer och datastrukturer: En systematisk genomgång av begreppen abstrakta datatyper, stackar, köer, listor, träd, sökning, sortering och rekursion utgående från de kunskaper studenterna förvärvat i kursen i Programmeringsteknik. Hashning. Prioritetsköer. Sökträd. Problemträd. Textsökning. Enkel syntaxanalys. Algoritmanalys. Kryptering.
Programmering: Programkvalitet. Abstraktion. Modularisering. Testning. Systemanrop. Standardmoduler.
Grundläggande etik: Etiska grundbegrepp, dataetik.
Efter godkänd kurs ska studenten kunna
- systematiskt testa program för att upptäcka fel
- använda abstraktion som ett verktyg för att förenkla programmeringen
- välja lämplig algoritm till ett givet problem
- jämföra algoritmer med avseende på tids- och minnesåtgång
- beskriva olika algoritmer för sökning och sortering och deras egenskaper
- formulera och implementera rekursiva algoritmer
- skriva en liten BNF-syntax (mindre än 10 regler) för ett formellt språk och skriva ett program som undersöker om ett uttryck följer en BNF-syntax
- 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
- konstruera en automat för textsökning och beskriva hur den fungerar
- implementera stackar och köer samt använda dessa
- implementera insättnings-, genomgångs- och sökoperationer i binära sökträd och allmänna träd samt använda dessa
- implementera hashtabeller och hashfunktioner samt använda dessa
- använda prioritetsköer
- använda enkla krypteringsmetoder, och förklara principerna för assymetrisk kryptering
- identifiera problem där datastrukturerna ovan är användbara och konstruera enkla algoritmer med dessa
- analysera och ta ställning till etiska konsekvenser av datatekniska tillämpningar
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.