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 http://computationalmodelling.bitbucket.org/tools.
Table of contents
- Timetabled workshop sessions
- Allocated and scheduled workshops
- Student topics
- Workshop Duration
- Topic allocation
- Expected materials to prepare and deliver
- Guidance for learning and teaching material selection and delivery
- Computing environment: virtual machines
- Creation of public teaching material
- Assessment guidance
Weekly 2-hour sessions are scheduled for all weeks in Semester 2 on
- TW1-12: Monday 9:00 to 11:00 in 177 / 2023
- 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.
The schedule of presentations is as follows:
|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.
Topics will be finalised in the lecture on Mon, 6 February 2017. A selection of suggestions can be found on the Tools Topics page.
|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)|
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 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.
For your workshop, we expect you to produce/do the following:
- Find a topic, discuss your plans how to present this with your topic partner and the module lecturers.
- 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.)
- 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).
- 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 http://computationalmodelling.bitbucket.org/tools/ (Our workshop in week 3 will tell you how to do that.) Complete this 8 days before your workshop starts.
- 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.
- Deliver the workshop.
- 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 http://computationalmodelling.bitbucket.org/tools/. You can do this before you deliver the workshop, and use the online materials during the workshop if you wish.
- 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 firstname.lastname@example.org and CC the module coordinator (Denis Kramer).
- Produce a short summary of the work shop to be published on the NGCM blog, pointing to the detailed teaching materials at http://computationalmodelling.bitbucket.org/tools/. See Creation of public teaching material.
- 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 email@example.com and CC to the module coordinator.
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:
- conveying the general idea: what is it used for, how does it fit into the ecosystem of tools/demands of a (computational) researcher, what are the benefits, ...
- lower the barrier of people testing/using it by providing some hands-on exercises
- giving attendees a better appreciation of the tool/technique through a practical exercise
- giving students confidence in a particular way of using a tool, maybe with examples that they can re-use directly (for presentations, report writing etc).
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.
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.
To provide a uniform computing environment, workshop presenters will provide virtual machines for participants to use during the workshops.
To provide all participants of your workshop with the same pre-installed computing environment, we ask you to create a virtual machine with the tool/software/package installed that you are going to introduce. We recommend to use virtualbox.
There is an introduction into creating virtual machines available at http://computationalmodelling.bitbucket.org/tools/virtualbox-basics.html (the proposed image uses 32bit (instead of 64bit) to be more portable, in particular for 32bit laptops.)
The virtual machine image can be stored on the account firstname.lastname@example.org. Please choose a sensible name for the virtual machine and copy the image using scp into the folder /home/ngcmbits/public_html/virtualmachines which maps onto www.soton.ac.uk/~ngcmbits/virtualmachines, where all workshop participants can download the image. The account password is available from the lecturers on request.
To upload your disk image to http://www.southampton.ac.uk/~ngcmbits/virtualmachines/, you need to scp it to email@example.com, and then store in the folder public_html/virtualmachines. Please ask the module leaders for the password when you need it.
Once you have put your file in place, make sure that it is world readable. What matters for the file to be downloadable is that you see an r (not -) in the 8th column from the left in the output of running ls -l. Here is an example:
[ngcmbits@gateway virtualmachines]$ ls -l total 1907908 -rw-r--r-- 1 ngcmbits f2 930171392 Feb 5 09:26 feeg6003lubuntu.ova -rw------- 1 ngcmbits f2 1021606912 Mar 3 12:37 feeg6003_TextEditors.ova
The first file is world readable, the second is not. To change this for the second file, use the command:
[ngcmbits@gateway virtualmachines]$ chmod o+r feeg6003_TextEditors.ova
We can check that this has changed the read status:
[ngcmbits@gateway virtualmachines]$ ls -l total 1907908 -rw-r--r-- 1 ngcmbits f2 930171392 Feb 5 09:26 feeg6003lubuntu.ova -rw----r-- 1 ngcmbits f2 1021606912 Mar 3 12:37 feeg6003_TextEditors.ova
Workshop presenters need to create an entry at http://computationalmodelling.bitbucket.org/tools 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: