Scientific Computing Course

An Introduction to Research Computing course is held during Michaelmas term, which CCIMI students are encouraged to attend.

This covers various aspects of computing from a scientific development perspective, equipping students with a variety of skills useful both within their PhD study and beyond.  The a majority of the course is delivered by James Fergusson.

The course introduces students to the most relevant parts of the python language for scientific programming and includes a practical session with python delivered by Cantab Capital Partners, covering use of shared code and the important of readability in the design of a small game.

The importance of creating efficient programmes to save both resource time and improve research through-flow is discussed, with practical advice on how to achieve efficient code.  This includes tips on how to speed up slow code, what to consider when choosing algorithms to ensure the choices are appropriate, how different computer hardware effects algorithms and imposes constraints upon them, and how to ‘profile’ code to identifying areas which are the cause of inefficiency.

The course covers the basic concepts of parallel programming, parallel processing and distributed processing both using a Map/Reduce approach and a more powerful message-passing based one (MPI).  It also covers message passing in, learning how to prototype tour codes quickly taking advantage of existing libraries, efficient data input/output, and parallel visualisation.

This training provides a large number of transferable skills in big data, software development, and programing skills, all of which are sought after by industry as well as being crucial within many research areas.