This is a collection of short (4 - 8 hours) courses I taught/teach at Imperial as part of the optional, first year Advanced Programming Lectures.
competitive-programming
is a gentle introduction to competitive
programming, covering a few of the most basic algorithms and
implementations tips. This can serve as a first stage of preparation
for some coding interviews.
performance-aware-programming
is a short teaser course highlighting
some of the concepts we need to be aware of when optimising the
performance of our programs.
Both courses come with Java based examples and with a bit of python/bash/gnuplot scripting (where needed).