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, och de studenter som vill kan dessutom pröva på ett eller flera av språken Java, Julia, C och C++.
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 Grundläggande programmering. Hashning. Prioritetsköer. Sökträd. Problemträd. Textsökning. Enkel syntaxanalys. Algoritmanalys. Kryptering.
Programkonstruktion: Programkvalitet. Abstraktion. Modularisering. Testning. Systemanrop. Standardmoduler.
Parallellprogrammering: Grundläggande kunskaper om hur en dator fungerar och är uppbyggd, både ur maskinvaru- och programvaruperspektiv. Introduktion till parallell och distribuerad programmering med processer.