Skip menu
  1. CLeaR Alumni
  2.  » 
  3. SEED projects
  4.  » Nasser Giacaman

SEED projects 2017 – Writing, Writing Everywhere

Writing code the visual and kinesthetic way

Dr Nasser Giacaman

Dr Nasser Giacaman (Faculty of Engineering)

Programming (i.e. “writing code”) is a difficult subject to learn. One of the most fundamental topics is data structures, which is also one of the most difficult topics in programming due to its high level of abstraction.

To alleviate the challenges of learning data structures, InteractiveDS was developed at University of Auckland in 2015 and is available on Windows, Android, iPhone, and most web browsers. It was released to students in two Stage Two courses and is highly utilised by them. It continues to be useful as a teaching and learning aid and gets positive reviews from students. However it was limited to pre-defined exercises; there was no ability for students to explore concepts more freely. Therefore many data structure concepts continued to be taught in lectures using traditional and primitive technologies. Thus students could not experience the active learning experience of experimenting with the concepts in their own time under the application’s guidance.

With the support of the SEED grant, a software developer was employed with the aim of adding two new core features to InteractiveDS: “Sandbox” mode, allowing the creation of any arbitrary singly or doubly linked list; and “Show Code” allowing students to export their visual interactions into “code” at any time.

In software development it is essential to have very well-defined priority list to avoid ‘feature creep’. While we got excited during the application’s development and identified additional features we would like to incorporate, our focus remained on the initial objectives stated above. ‘Quality over quantity’ was our motto. In its current form, the application will be useful for students and teachers for many years to come.

Both of the above objectives were achieved, and the features were successfully incorporated into the application.