Programming Education

A growing number people with different backgrounds writes programs of some sort. Programming has an inherent essential difficulty that is considered hard to learn (and teach) for many people.

I was involved in the organization of catalog of programming misconceptions (see https://progmiscon.org, in collaboration with the LuCE Research Lab).

I have participated in a Dagstuhl Seminar on Notional Machines and Programming Language Semantics in Education.

I often serve as PC member of ITiCSE - ACM Conference on Innovation and Technology in Computer Science Education and Koli Calling - International Conference on Computing Education Research, 2016-22. I am a member of the International Committee of the SIGSCE Technical Symposium.

I work on tools to facilitate understanding of program state (variable behaviour) and programming metaphors (object-orientation).

Click on the icon to see related publications.


Jinter


A system capable of generating feedback hints about how to proceed or fix a Java exercise targeting the first stages of programming learning. This work was developed in the MSc thesis of Jorge Gonçalves.

Jinter


Jask


A system capable of generating questions about the Java code (static and dynamic) targeting the first stages of programming learning. In collaboration with the LeTech Research Group. This work was developed in the MSc thesis of Tiago Soares.

Jask


PandionJ

An educational Java debugger that leverages on detecting variable roles to provide rich are meaningful visualisations of state. This work was initially developed in the MSc thesis of Hugo Sousa.

This tool also includes most of the ideas previously developed in AguiaJ. The tool is currently being used at the introductory programming courses of our institution. Downloads and more information available at: https://pandionj.iscte-iul.pt


AguiaJ

An educational runtime for Java (based on class reflection) that embodies metaphors of object-orientation allowing fast experimentation of objects. (website URL no longer available, visit the old one)