Our first weekly meeting of this term involved brief presentations by each of the first years on programming projects they did over the Christmas break. Before cracking on with the presentations, Alastair gave a recap of the main parts of a presentation to nail: script, speech, slides and body language and we discussed what went well and what went badly during revision and project work over the break.
Zebulon started off by presenting his sudoku solver, written entirely in ML, a functional programming language. He showed us how he split his program up into submodules, how he represented the sudoku board, and detailed the algorithm he used to decide which number to place in each cell.
Adam created a renderer of the Mandelbrot set over the break. In his presentation he gave a description of what the Mandelbrot set is, how you calculate whether a point belongs in the set or not, and a demo of his program.
Alice also rendered the Mandelbrot set, as well as the Julia set, using the python notebook environment introduced this year for the first years’ scientific computing course. She also created an audio representation of the Mandelbrot set, as well as altering the Julia set parameters over time to generate some funky pictures to accompany the music.
Rahma rendered another fractal, this time the Dragon curve, which is formed by starting from a single line and iteratively taking the existing curve, rotating it 90 degrees and adding it on the end of the current curve. She described how we can represent such a curve programmatically and how we can calculate the new definition of the curve at each iteration.
Costin implemented the Quine McCluskey algorithm for minimising boolean functions in C++. He detailed what the Quine McCluskey algorithm involves and the data representation he used to implement it.
Pavol spent some of his Christmas break analysing crime data from Cambridge, creating graphs to show crime rates in each month of the year, and areas of high and low crime.
Finally, Mukal gave a presentation on deep reinforcement learning, a topic he read up on over the break. He gave a brief overview of what reinforcement learning is, the notion of exploitation vs exploration and what innovations deepmind brought to the table such as deep Q learning.