A New View on Debugging for Novice Programmers
Matthew Heinsen Egan and Chris McDonald
This presentation provides an overview of the design and implementation of SeeC, our new approach assisting programming novices at university to develop, understand, and debug, their first programs. Unlike professional-strength tools, such as XCode and Eclipse, SeeC is not a full IDE. Instead, SeeC focuses on explaining programs’ static meaning and runtime behaviour to novice programmers, and promotes an inquiry-based view of debugging.
By modifying the popular Clang/LLVM compiler suite employed on OS-X, the execution of programs compiled with SeeC results in a recording of the program’s complete execution trace. This enables students’ programs to be reviewed, and their bugs to be located and explained, by replaying the trace and identifying conditions leading to bugs. All memory references made by SeeC-compiled programs may be automatically visualised, providing novices with the opportunity to view and debug programs’ execution, particularly those with errant dynamic data-structures. SeeC is fully aware of language and library standards, and can report bugs in different natural languages, with reference to these standards.
SeeC employs a number of contemporary technologies, including a modified version of the Clang/LLVM compiler suite, wxWidgets for its graphical interface and interactions, graphviz for runtime visualisation, and ICU for natural language support.
In combination, the features enable students to better collaborate by asynchronously sharing their traces and understanding, and for educators to develop seminal introductory examples and challenging exercises. This presentation focuses on our selection and use of powerful software and tools on Apple’s OS-X.
Virtual Reality on a Budget
Steven Saunders
Facebook spent 2 billion dollars buying their Oculus VR, Google is doing something with pieces of cardboard, but this session covers how Mac and iOS developers can get started with virtual reality for not much more than the price of your morning coffee with easy to use APIs like SceneKit.
Tools and Tips for Prototyping Apps
Judit Klein
You have your idea for your new ground breaking app. Prototyping is an important part of bringing your creation to life, before you even touch a line of code, to ensure you’re building the right thing for your users and that they have a great experience. This talk covers with practical demos with what different tools are available for different stages of the prototyping process. Some more complex apps require interaction beyond simply tapping on buttons so this talk suggests some prototyping strategies for networked or collaborative apps.