Presented by

  • Nicholas Miehlbradt

    Nicholas Miehlbradt

    Nicholas is a Linux kernel developer at IBM in the kernel hardening team. His primarily works on the Power architecture implementing tools to help detect memory safety violations. He has also contributed to various projects including QEMU, Clang and trex, a suite of speculative execution attack demonstrations to test for vulnerabilities. In the past Nicholas has worked as a tutor at the Australian National University and coordinator of the Canberra Computer Science Enrichment Program teaching computer science to undergraduate and high school students.

Abstract

CPU architecture is a pretty complex topic, so I decided to try to teach it to high school students. Canberra Computer Science Enrichment is a program that was run by the Co-Lab (an Australian National University and Australian Signals Directorate partnership) for high school students with the aim of encouraging them to consider further education and/or a career path in computer science. This broad goal let me approach topics not normally covered in high school computer science curricula. As one of the program's coordinators I set out, without teaching expertise, to develop and deliver a series of sessions to teach digital logic and get students to design their own CPU in a digital logic simulator. I designed and delivered a series of five sessions getting students from beginner to writing simple assembly programs which they could run in a simulator on their own CPU. This presentation dives into how I approached this challenge, the problems I faced and lessons learned along the way.