I am an assistant professor in computer science in the School of Computer Science in Trinity College.
Contact
Find more about contact information for me.
Research
I am a member of the Software Performance and Correctness research group here in TCD and of the the Centre for Research in I.T. and Education.
Some recent Publications are here.
Pytch
I am Principal Investigator on the Pytch project. We aim to smooth the transition from 'beginner' programming environments (especially Scratch) to Python. Pytch is funded by Science Foundation Ireland's Discover programme.
MIT's Scratch is very widely used to introduce young people to the ideas of programming. The learner writes code for sprites by visually clicking together blocks like go forward 10 steps. This avoids all problems with syntax, students can concentrate on the interesting parts of making their project.
Once a student gets proficient with Scratch, a common next step is Python, which is also very widely used in education as well as in industry. Python is a big leap from Scratch, though, because the student has to make multiple leaps in one go. They have to correctly type their code into an editor or IDE, getting all details of the syntax right. They have to deal with what happens when the syntax is not right (making sense of error messages). At the same time, they also have to leave behind the Scratch world of sprites, costumes, sounds, events such as when this sprite clicked scripts, and so on.
Pytch is intended as a bridge between these two worlds. It has Scratch's learner-friendly sprites, event-driven scripts, graphics, sounds, etc., while introducing the student to the idea of writing textual Python code instead of dragging and dropping blocks. In this way, they keep all the knowledge, intuition and skills they've built up with Scratch, and can focus on the task of learning the Python language.
OurKidsCode
I am the design lead for the SFI Discover OurKidsCode project which supports parents and guardians who want to engage their primary-school children's interest and activity in computing. The project designs, develops, and delivers creative computing workshops for families throught Ireland.
Teaching
I have some final year projects on offer (see the projects page). In my experience many of the best projects come from ideas that the student is passionate about, so if you have a project idea that you want to discuss please get in touch.
My teaching commitments in the 2023-2024 academic year are:
- CSU44012, Topics in Functional Programming (Semester 1. Teaching materials on BlackBoard)
- EEU22E10, Engineering Design IV AKA "The Buggy Project" (Semester 2, everything's on Blackboard).
I've taught on several different programmes over the years, modules include:
- CSU33D05, Algorithms & Data Structures (2022-2023)
- 2E10: Engineering Project IV (2017-2022, 2023-). (Semester 2, materials on BlackBoard). Co-taught with (over the years) Francois Pitie, Harun Šiljak, Stephen Roddy, and Libin Mathew from Electronic Engineering, and John Waldron, Kerstin Ruhland, Conor Sheedy, and Andrea Patane from Computer Science and Statistics.
- CS2013/CS3013 Software Engineering group project. (2012-2017) Joint teaching with (over the years) Tim Savage (with whom I originaly designed the course), Colin Harris, and Inmaculada Arnedillo Sanchez.
- CS4012: Topics in Functional Programming (2011-)
- CS3016: Introduction to Functional programming (2011) (co-taught with Andrew Butterfield)
- CS4011: Functional Programming (2009 and 2010) (which later was offered in two parts as CS3016 & CS4012), co-taught with Andrew Butterfield with whom I designed the course.
- MM107: Client/Server Programming (2006-2015)
- 1CS1: Computer Science I (2006)
- CS7025: Programming for Digital Media (2008-2015), an M.Sc. level course covering programming, simple web development, and some mobile development for the M.Sc. in Interactive Digital Media (I also served as course director for this degree from 2012 to 2015)
- MM106: Introduction to Programming (2005-2006)
- CS3D5: Software Design and Construction (2001-2011)
- CS262: Computer Science II (2001-2002)
- CS2E3: Computer Science II (2000 with Vincent Wade, and again 2003-2004 solo)
- An accelerated introduction to functional programming course I designed and ran several times (before we had suitable core modules in the subject).
- I also had some involvement assisting with the 2BA2 Algorithms and datastructures course for Hugh Gibbons
Non-academic
Some photographs on Glass, and older ones on Flickr.
I am involved with the Irish Free Software Organisation.