Teaching and Outreach

Adult Education

I delivered a 6 week adult-education course teaching introductory programming skills using Python, with York Learning. The course contained 5 lectures and Python programming exercises (Week 4 focussed entirely on practical programming). I designed the lectures and Python exercises from scratch to teach the basic practical skills of programming. Feel free to download the content of this course.

University Demonstrating

During my PhD I took the opportunity to demonstrate on several modules of different levels and class sizes.

  • Two terms demonstrating in the workshop sessions of a first year undergraduate module, introducing programming concepts, in the Computer Science degree at the University of York.
    • In the first term, the module focused on basic programming using Python. My total contact time was 20 hours.
    • In the second term, the module focused on objects and inheritance, and used both Python and Java. My total contact time was 28 hours.
    • Each group contained around 65 students of very mixed ability.
  • One term demonstrating in the workshop sessions for a LaTeX module for PhD students at the University of York. The group contained around 12 PhD students and my contact time was 5 hours.
  • I also assisted in a workshop session on LaTeX for an MSc module. There were approximately 12 masters-level students.

Volunteering and Outreach

During my time at the University of Liverpool, I was involved in a existing outreach activity called Lego Rovers. This uses Lego Mindstorms kits to teach children some of the basic ideas about artificial intelligence. I ran the ‘drop-in’ stand on my own, at Liverpool’s Light Night festival. I wrote a post about the festival and what I did. I’ve helped as part of a team running workshops, for example at an event at Speke Hall. I’ve also run two days of workshops myself, as part of an event about space, at Liverpool’s World Museum.

I volunteered with a local Code Club, helping children to learn basic programming and computational thinking, using Scratch. I find Scratch a useful language for teaching children programming, because it only allows blocks of code to fit together in a grammatically correct way. This focusses debugging on the logic of the program rather than the syntax of the language.

I also taught children (ranging from 8-14) basic programming skills with York Maker Hub (which has since closed). We ran sessions that allowed the children to build and program various projects on a variety of platforms, including Scratch, Makey Makey, and Lego Mindstorms.

My Scratch profile can be found here: Scratch Cat Logo https://scratch.mit.edu/users/ml881

Private Tutoring

I tutored an A-Level Computing student, one-on-one, to improve their exam and coursework grades. We focussed on covering key topics from the syllabus that the student felt they hadn’t grasped well enough. Together, we improved their final grade by two grade boundaries. My total contact time was around 20 hours (1 hour per week).

Other Activities

In 2019 I co-founded the Workshop on Formal Methods for Autonomous Systems (FMAS) which is a peer-reviewed academic venue for researchers working on applying formal methods to almost any kind of autonomous system. The first workshop we held as a satellite event at Formal Methods 2019 (in Porto, Portugal). Since then, we have run FMAS anually – both in-person, entirely online, and then hybrid. My focuss for FMAS is on organising the Programme Committee and advertising the workshop.

During 2014 I was the Programme Committee chair for the York Doctoral Symposium on Computer Science and Electronics (YDS2014), a student conference organised at the University of York. I was responsible for recruiting programme-committee members and ensuring that submissions were reviewed fairly. I also co-lead an interdepartmental team of PhD students in the planning and organisation of YDS2014. If you want to read the proceedings I put together for YDS2014 (including the fantastic foreword) it can be found downloaded here .