Matthias Hauswirth
Università della Svizzera italiana

https://luce.si.usi.ch/

Matthias is an associate professor in the Software Institute of the Faculty of Informatics at the Università della Svizzera italiana where he leads LuCE, the Lugano Computing Education research group.

Matthias has a background in programming languages and a passion for helping students learn. His current research interests focus on understanding and improving how students learn to program. He is a contributor to progmiscon.org, a curated inventory of programming language misconceptions, a co-author of Informatik: Programmieren und Robotik, a German-language programming textbook for high schools, a contributor to the A-to-Z Handbook on Teaching Programming, and an instructor and program committee member of GymInf, the Swiss national program that retrains existing high school teachers to prepare them to teach the new mandatory informatics course.

Collected Notional Machines

Call Stack as Stack of Papers
Analogy
Calls as Sequence Diagram
Representation
Control Flow as Graph (1 - Sequence)
Representation
Control Flow as Graph (2 - Selection)
Representation
Control Flow as Graph (3 - Multi-Way Selection)
Representation
Control Flow as Graph (4 - Short-Circuit)
Representation
Control Flow as Graph (5 - Repetition)
Representation
Expression as Tree (1 - Arithmetic)
Representation
Expression as Tree (2 - Logic)
Representation
Expression as Tree (3 - Objects)
Representation
Expression as Tree (4 - Arrays)
Representation
Expression as Tree (4 - Comparisons & Conditionals)
Representation
Function as Tank
Analogy
Grammar as Train Track
Analogy
Logic Operation as Domino Gate
Analogy
Object as Student
Analogy
Processor as File Clerk
Analogy
Recursion Role Play
Analogy
Stack and Heap Diagram (1 - Objects)
Representation
Stack and Heap Diagram (2 - Stack Frames)
Representation
Stack and Heap Diagram (3 - References)
Representation
Stack and Heap Diagram (4 - Arrays)
Representation
Variable as Pigeonhole
Analogy