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 work on tools to facilitate understanding of program state (variable behaviour) and programming metaphors (object-orientation).

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

Click on to see related publications; to visit the repository on Github.



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)