This is an outline of the course schedule and content.
Lecture slots
Lab/tutorials
Introduction to programming via Karel the Robot
Conditionals and loops (LX)
Lab 1: Snap! and Karel the Robot.
Programming continued.
cultural lecture: different levels of abstraction in a computer (BW)
Lab 2: Snap and Karel MK II.
Data structures
Computing and music (Christian Walder)
Lab 3: Make Snap! Sing and Talk.
Recursion
Recursion2 - binary tree, more recursion examples
Computational thinking in biology (Gavin Huttley)
Lab 4: Recursion.
Computational biology and dynamic programming
sequence alignment
Lab 5: Sequence alignment.
Computational social science, sentiment analysis, and hashing
Thu lab – drop-in help session open to everyone. (no Fri lab)
Optimization (Tommaso Urli)
Lab 6 take 2: Sentiment analysis.
Optimization, logistics, and solving sudoku
Computational problem-solving and discrete optimisation
Intro to machine learning and data analytics
Lab 7: Solving sudoku.
Data science, predictive analytics, and curing diseases
(no Monday lecture)
Trees
Decision trees
Programming beyond snap! - A look at python (PH)
cultural/guest lecture Computing in the world (BW)
The limits of computation: The Halting problem and NP-hardness (PH)
Continue work on Lab 8
(Thursday) Introduction to the digital computer: Logical functions and circuits (PH)
Lab 9: Simulating combinatorial circuits.
For this lab, we will be using Logisim, a tool that simulates computer hardware.
Thu no lecture
Essay due (Monday 30 May 9am)
Note: TBD.