I den här kursen bygger studenten på sina kunskaper om algoritmer, datastrukturer och programkonstruktion, lär sig grunderna i parallell och distribuerad programmering, och förbereder sig för kurser i beräkningsmatematik, maskininlärning och teoretisk datalogi. Programspråk i kursen är Python och Go.
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 Grundläggande programmering. Hashning. Prioritetsköer. Sökträd. Enkel syntaxanalys. Algoritmanalys.
Programkonstruktion: Programkvalitet. Abstraktion. Modularisering. Testning. Systemanrop. Standardmoduler.
Teori och praktisk övning rörande grundläggande parallellprogrammering och programutveckling, inklusive HTTP, klient-server-arkitektur och tillgänglighet.
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
- analysera och jämföra algoritmer med avseende på tids- och minnesåtgång
- avgöra korrekthet för iterativa och rekursiva algoritmer
- beskriva och implementera grundläggande algoritmer och datastrukturer
- ta fram, dvs beroende på betygsnivå välja, kombinera, modifiera eller konstruera, lämplig algoritm och datastruktur för att lösa ett givet problem
- skriva och använda enkel BNF-syntax
- designa och implementera enkla parallella program
- redogöra för grundläggande principer för HTTP och klient-server-arkitektur samt implementera enkla klient-server-program med hänsyn till tillgänglighet
i syfte att:
- bli bra på att lösa problem med programmering
- kunna använda datalogiska metoder i tillämpningsprojekt
- bli förberedd för fortsättningskurser i beräkningsmatematik, maskininlärning och teoretisk datalogi.