This part of the module consists of student-led workshops, introducing tools and topics relevant in software engineering and computational research. Students select a topic from a list of available topics and prepare and deliver one 90 minute workshop to introduce their topic to the other students (and anybody else who would like to attend the workshop). Completed workshops contribute an entry to

Table of contents

Timetabled workshop sessions

Weekly 2-hour sessions are scheduled for all weeks in Semester 2 on

  1. TW1-12: Monday 9:00 to 11:00 in 177 / 2023
  2. TW5-12: Thursday 9:00 to 11:00 in 177 / 2023

You will need to bring a laptop with VirtualBox installed to take part in the exercises.

Allocated and scheduled workshops

The schedule of presentations is as follows:

TW Number Date Topics
TW 1 1 Mon, 30 January 2017 Introduction, House keeping
TW 2 1 Mon, 6 February 2017 GTD / Topic selection
TW 3 1 Mon, 13 February 2017 VirtualBox
TW 4 1 Mon, 20 February 2017 Pelican
TW 5 1 Mon, 27 Febryary 2017  
  2 Thu, 2 March 2017  
TW 6 1 Mon, 6 March 2017 Introduction to Emacs (Daniel, Nic, Jamie)
  2 Thu, 9 March 2017  
TW 7 1 Mon, 13 March 2017 Jupyter Notebooks
  2 Thu, 16 March 2017 LyX - WYSIWYG for LaTeX
TW 8 1 Mon, 20 March 2017 GPU programming (Christos, Roshan, Alex)
  2 Thu, 23 March 2017 Declarative vs. imperative programming (Gary, Andres, Mohammed)
TW 9 1 Mon, 24 April 2017 Introduction to Machine Learning with python
  2 Thu, 27 April 2017 Cloud computing and AWS
TW 10 1 Mon, 1 May 2017 Bank Holiday
  2 Mon, 4 May 2017 Continuous integration
TW 11 1 Mon, 8 May 2017 Container (docker)
  2 Mon, 11 May 2017  
TW 12 1 Mon, 15 May 2017 Visual Tools
  2 Mon, 18 May 2017  

Note: We will utilise the Monday and Thursday lecture slot if there are two topics per week.

Student topics

Topics will be finalised in the lecture on Mon, 6 February 2017. A selection of suggestions can be found on the Tools Topics page.

Topic TW Student
Introduction to Emacs asking for TW22 Daniel, Nic, Jamie
Continuous integration   Pete, Sam Diserens
Container (docker)   Alex, Matt
Introduction to Machine Learning with python   Greg, Sam Senior, Toshan
Jupyter Notebooks   Marian, James
JupyterLab / Hydrogen   Jack, Juraj
AWS   Jaya Vignesh Madana Gopal, Dan Wallace
GPU programming (OpenCl, Cuda)   Roshan, Alex Fforde
Declarative vs. imperative programming   Gary Downing (looking for a partner)
Visual Tools   Roshan (looking for a partner)

Workshop Duration

The presentation at the beginning should be between 15 and 45 minutes. The practical exercise should immediately follow the presentation. Exercise and presentation together should take between 60 and 90 minutes. If you prefer, you can mix presentation and exercises as you see fit best for your topic.

Your whole workshop should not take longer than 90 minutes.

Topic allocation

Topic allocation will be done in weeks 1 and 2. In preparation for this, have a look at the available topics and select a few that you consider interesting. We will try to finalise topic allocation in week 2, normally working together in pairs on one topic. The final allocation will be done by the module coordinator, although we hope to be able to realise all student preferences.

Expected materials to prepare and deliver

For your workshop, we expect you to produce/do the following:

  1. Find a topic, discuss your plans how to present this with your topic partner and the module lecturers.
  2. Create an announcement of the workshop on CMG events, including a summary, some image and suitable caption. Tick at least the 'NGCM' tag towards the bottom of the page, and if approriate other tags. Complete this 2 weeks before your workshop, and let the lecturers know that you have done so. (You can update the text later.)
  3. Create a Linux virtual machine on which you have installed the tool(s) you introduce or provide an environment as required for your workshop. Make this virtual disk image available (see Computing environment: virtual machines).
  4. Provide installation instructions for this virtual machine, including some steps that students can take to check that the virtual machine works for them. Make this available as a first part of your teaching materials on (Our workshop in week 3 will tell you how to do that.) Complete this 8 days before your workshop starts.
  5. Develop slides, notebooks, self-paced instructions and/or whatever medium you think is most appropriate as teaching material for (i) the presentation and (ii) the training session in the second half of your workshop.
  6. Deliver the workshop.
  7. Make the taught materials available online in a form that others (from Southampton and elsewhere) can benefit from the material (within one week after your workshop) by extending your entry at You can do this before you deliver the workshop, and use the online materials during the workshop if you wish.
  8. Produce some (confidential) reflective notes on how the delivery went, what went well, what worked differently from what you expected, what could be changed/improved (within one week after your workshop). Send those [as plain text] to and CC the module coordinator (Denis Kramer).
  9. Produce a short summary of the work shop to be published on the NGCM blog, pointing to the detailed teaching materials at See Creation of public teaching material.
  10. Gather everything you have produced and make it available to the module lecturers (within one week after your workshop) via the module leader. A tar file would be appropriate. If the file is too large, contact the module leader, otherwise email to and CC to the module coordinator.

Guidance for learning and teaching material selection and delivery

You cannot introduce any broad topic or tool to a significant depth within your workshop. Instead, you can and should focus on more modest aims, such as:

Not always is the most complex example you can come up with the most appropriate one to address the aims listed above.

Bear also in mind that your audience is two-fold: those attending your workshop and those studying/using your teaching materials online (at a later point). You cannot deliver perfect versions for both groups, but you can try to provide something that is usable for both groups.

So what material and learning method should I produce?

Be creative regarding the particular teaching materials you will deliver to best convey the topic: you can use static slides, IPython/Jupyter Notebooks, the black/white board, self-paced exercises, instructions hosted on a webpage, github/bitbucket repository, on paper/pdf, in a notebook, produce videos to announce the topic (1 minute?) or record a video of your workshop and make it available online, create blog entries, electronic books or a dedicated Twitter account -- there is a lot of choice. Feel free to seek advice from the lecturers if you like feedback on your planning.

Computing environment: virtual machines

To provide a uniform computing environment, workshop presenters will provide virtual machines for participants to use during the workshops.

Creation of public teaching material

Workshop presenters need to create an entry at that provides learning material that can be used independently of the workshop by future students and others outside Southampton.

The webpages are created using pelican. There will be an introduction to pelican in week 1, and you can also refer to past training on the topic at:

Assessment guidance

A list of possible assessment criteria is available.