Dr Nasser Giacaman


Nasser completed his Bachelor of Engineering (Honours) programme in Software Engineering at the University of Auckland, followed by a PhD in the Department of Electrical, Computer, and Software Engineering. He lectures in and is Director of the Software Engineering programme.

Research interests focus on developing pedagogically-sound software solutions for educational contexts, known as Digital Educational Engineering. Target domains include both software engineering education (with the development of tools and apps to help students learn difficult programming concepts), as well as teaching and research collaborations in other educational areas. More information can be found on the Digital Educational Engineering pages. 

Disciplinary research interests include parallel programming, with particular focus on high-level languages in the context of desktop and mobile applications running on multi-core systems. A number of tools stemming from this research have been released to the open-source community on the ParallelIT website


BE(Hons) in Software Engineering (first class honours)
PGCert in Academic Practice

Research | Current

  • Digital Educational Engineering
  • Git-based Learning
  • Software engineering education
  • Mobile application development
  • Virtual reality and augmented reality for education
  • Machine learning for education
  • STEM education development
  • Parallel computing for interactive applications on multi-cores
  • Language implementation (source-to-source compilers)


Research groups


Teaching | Current

  • SOFTENG 206 - Software Engineering Design 1
  • SOFTENG 281 - Object-Oriented Programming
  • SOFTENG 761 - Advanced Agile and Lean Software Development
  • MECHENG 270 - Software Design


  • COMPSYS 202 - Object-Oriented Programming
  • SOFTENG 701 - Advanced Software Engineering Development Methods
  • SOFTENG 751 - High Performance Computing

Postgraduate supervision

PhD (current)

  • Aradhna Tiwari, Digital learning using artificial intelligence and machine learning (Co-supervisor: Hazim Namik)
  • Lynley Stringer, Professional learning and development for the Digital Technologies curriculum (Main supervisor: Kerry Lee)
  • Elliot Varoy, Investigating virtual reality for education (Co-supervisors: Andrew Luxton-Reilly and Kerry Lee)  [Published Work]
  • Yuanyuan Hu, Using unsupervised machine-learning approaches to classify MOOC discussions (Main supervisor: Claire Donald)  [Published Work]
  • Chen Wang, An intelligent tutoring system for improving self-regulated learning skills (Main supervisor: Gerard Rowe)

Masters (current)

  • Nikhil Anil Sneha, Sign language in VR
  • Mekyal Akhlaghi Amiri, Automated assessment of open text questions
  • Sameer Phadnis, Modelling electrical networks (Main-supervisor: Nirmal Nair)

Masters-taught projects (current)

  • -

BE(Hons) Final-Year Research Projects (current)

  • Matt Moran and Beverley Sun, Using machine learning to improve predictions for public transport bus arrival times in real time
  • Danielle Print and Raina Song, Investigating the effectiveness of smart education
  • Jianle Li and Owen Wang, Intelligent 3D shape generation and assessment tool
  • Andreas Knapp and Cheng-Zhen Yang, Git workflow assessment tool
  • Joel Hutchinson and Jason Ko, Web-based interative visualiser for object-oriented concepts

PostDoc (finished)

  • Dr Giuseppe De Ruvo (2016-18), Software engineering education  [Published Work]

PhD (finished)

  • Dr Hadisantono Hadisantono (2021), Challenges and opportunities in assessment of Engineering education (Main supervisor: Gerard Rowe)  [Published Work]
  • Dr Mostafa Mehrabi (2019), Cloud comptuing with Parallel Task (Main supervisor: Oliver Sinnen)  [Published Work]
  • Dr Fan Xing (2017), Object-oriented shared memory parallel programming (Co-supervisor: Oliver Sinnen)  [Published Work]

Masters (finished)

  • Yannick Ring (2021), Exploration of block-based learning tools for advanced object-oriented programming concepts
  • Victor Lian (2019), Learning object-oriented programming through visualisation (Co-supervisor: Elliot Varoy)  [Published Work]
  • Vaibhav Mor (2019), Learning fundamental programming concepts through animations (Co-supervisors: Andrew Luxton-Reilly and Paul Denny)
  • Elliot Varoy (2016), Improving conceptual Physics understanding using collaborative environments (Co-supervisor: Gerard Rowe)  [Published Work]
  • Shenghao Lu [Gary] (2016), Modeling of Mathematical equation solving (Co-supervisor: Barbara Kensington-Miller)
  • Beibei Zhai (2014), Educational support for software engineering learning
  • Weng Hao Tong (2014), Work-first in nested parallelism for Parallel Task (Main supervisor: Oliver Sinnen)
  • Hans Bhardwaj (2015), Measuring usability improvements through concurrency and parallelism (Main supervisor: Oliver Sinnen)
  • Xiaoxing Hu (2013), Benchmarking and cache-awareness in Java (Main supervisor: Oliver Sinnen)
  • Chen Wang [Kingsley] (2013), Performance implications of thread count in a multi-application environment (Co-supervisor: Oliver Sinnen) 
  • Vikas (2012), GUI-aware parallel programming for Java using OpenMP-like directives (Co-supervisor: Oliver Sinnen)  [Published Work]
  • Jonathan Chow (2012), Design patterns for parallel programming using Parallel Task (Main supervisor: Oliver Sinnen)  [Published Work]
  • Gurpreet Singh (2013), Coupling and software evolution (Main supervisor: Ewan Tempero)

Masters-taught projects (finished)

  • Huizhou Zhan (2021), Web-based practice tool for design drawings (Co-supervisor: Hazim Namik)
  • Lucas Hsieh (2021), A machine learning approach for reflective writing
  • Michelle Tan (2021), Improving learner engagement to a digital learning tool
  • Rui Yang (2021), Engaging community members with the past
  • Yifei Chen (2020), Classroom version control visualiser
  • Wulei Gui (2020), Natural language analysis of educational content
  • Baiwei Chen (2019), A feasibility study of block-based for mathematics
  • Song Huang (2019), Extension of visual kinesthetic pseudocode for trees
  • Yuang Zhu (2017), Virtual reality experiences (Co-supervisor: Giuseppe Dr Ruvo)
  • Marin Abernethy (2017), Educational virtual and augmented reality (Co-supervisor: Giuseppe Dr Ruvo)  [Published Work]
  • Gowri Rudrabhatla (2015), Automatic submission and plagiarism detection in programming labs
  • Xiaohe Zhang (2015), Data analysis of Active Classroom Programmer effectiveness on student participation
  • Ximin Yan (2015), Mobile app to assist children using Mathematics manipulatives (Co-supervisor: Gail Ledger)
  • Rui Li (2015), Parallel programming with Active Classroom Programmer
  • Chidambaram Palaniappan (2015), Visualisation of Active Classroom Programmer activity to measure student engagement
  • Yalu You (2014), Eclipse refactoring for Pyjama (Co-supervisor: Oliver Sinnen)
  • Rui Feng (2014), Benchmark Suite for Java OpenMP-like parallelizing compilers (Co-supervisor: Oliver Sinnen)
  • Jiabin Zhong (2014), Evaluation of public transport app (Co-supervisor: Subeh Chowdhury)
  • Aravind Sankar (2014), Android app for learning of data structures
  • Shubhendu Sharma (2014), iOS app for learning of data structures
  • Chang Liu (2014), Adding collaborative support to Active Classroom Programmer
  • Nancy Watta (2014), Android app for public transport users (Co-supervisor: Subeh Chowdhury)
  • Yuan Zhao (2014), Server-side support for public transport app (Co-supervisor: Subeh Chowdhury)
  • Wu Ke (2014), Enchancing Pyjama Eclipse plugin with error propagation (Co-supervisor: Oliver Sinnen)
  • Haoming Ma (2014), Parallel Task environment using annotation and lambda expressions (Main supervisor: Oliver Sinnen)
  • Sriram Sugumaran (2014), Enchancing Pyjama Eclipse plugin with refectoring (Co-supervisor: Oliver Sinnen)

BE(Hons) Final-Year Research Projects (finished)

  • Sannan Hafeez and Alan Thomas (2021),  Interactivity with hand tracking VR
  • Jiawei Ge and Tommy Shi (2021), Web-based VR for education [Industry Prize Winners]
  • Gurpreet Singh and Justin Teo (2021), Deepfakes for education
  • Jennifer Lowe and Tianren Shen (2021), Investigating code quality trends [Industry Prize Winners]
  • Gargi Bansal and Salma Sanad (2020), Aiding visualisation of 3D drawings  [Industry Prize Winners]
  • Nathan Mills and Yin Wang (2020), Web-based visualisation of OOP runtime [Published Work] 
  • Joshua Kim and Tao Natalie Zhu (2020), Applying machine learning to education 
  • Maxwell Benson and  Matthew Eden (2020), Image to code [Industry Prize Winners] [Published Work] 
  • Casey Wong and James Zhang (2020), Automated classification of computing education questions [Published Work]
  • Sukhans Asrani and Timo van Veenendaal (2020), Adaptive learning platform that uses evidence-based learning techniques (Main supervisor: Andrew Luxton-Reilly)
  • Joshua Fu and Ryan Lim (2020), Tangible-based programming environment for robots (Main supervisor: Craig Sutherland)  [Published Work] 
  • Edwin Roesli and Chen Zhao (2019), Seismic preparedness for the general public using virtual reality
  • Kenneth Foo and Steven Yan (2019), Understanding the AR and VR potential of mobile devices
  • Grace Meng and Suying Shen (2019), Indoor navigation using augmented reality [Best Poster Prize Winners]
  • Simon Su and Edward Zhang (2019), deCode: a 2.5D game for teaching and visualisation of algorithms and data structures (Main supervisor: Paul Denny) [Published Work] [Industry Prize Winners]
  • Arun Ravindran and James Shore (2019), Augmented reality technology to improve the experience of building site visits (Main supervisor: Vicente Gonzalez) 
  • Gyeun Rho and Kenney Chan (2018), Exploring manual communication in virtual reality [Published Work]
  • Raymond 'Akau'ola and Tevita Tanielu (2018), Exploring virtual reality for learning OOP concepts [Published Work]
  • Oliver Allen and Xavier Downs (2018), Learning fundamental programming concepts without coding [Best Presentation Winners]
  • Henry Wu and William Lin (2017), Helping students improve their code style
  • Lubomira Tzankov and Shirin Heidari (2017), Assisted educational code reviews
  • Asheer Ahmad and Harsh Chokshi (2017), Interactive learning of abstract programming concepts [Published Work]
  • Jordan Wong and Kevin Yu (2017), Virtual reality for education [Published Work]
  • Logan Horton and Samuel Butchart (2016), Object-oriented programming educational app
  • Chahat Chawla and Hojun Joo (2016), MathsCast: Professional mathematics learning using Google Chromecast
  • Manwoong Choi and Nam Jun Park (2016), Learning analytics application for ACP
  • Mark Aziz and Ogen Odisho (2016), InteractiveDS: Teaching and learning data structure concepts via Visual Kinesthetic Pseudocode [Published Work] [Industry Prize Winners]
  • Alan Lau and James Chen (2015), Mathematics manipulatives in a virtual and collaborative environment
  • Chien-Han Lee and Tae Youn (2014), Mobile app for electronic lab management
  • Mark Tooley and Surbhi Sharma (2014), Traffic signal timing data visualisation
  • Akash Rampal and Benjamin Seymour (2013), Parallel programming analogy game
  • Gunny Lee and Scott Goodhew (2013), Mobile exercise rep counter
  • Andrew Luey and Michael Little (2013), Traffic information engine for Auckland traffic lights
  • Jessica Hallett-Hook and Levi Patel (2013), Parallel programming in graphical Android application
  • Ajay Parbhu and Conrad Johansson (2012), Inhibitors of parallelisation in mobile devices
  • Eru Penkman and Dae Hong Kim (2012), Mobile web interface for Faculty of Engineering


  • 2020 Faculty of Engineering Students' Choice Top Teachers Award
  • 2016 AUEA Teaching Excellence Award
  • 2015 Faculty of Engineering Students' Choice Top Teachers Award
  • 2015 University of Auckland Teaching Excellence Award (Early Career)
  • 2014 Faculty of Engineering Teaching Excellence Award


  • Software Engineering Director (2019-)
  • Software Engineering Masters Advisor (2013-)
  • Faculty of Engineering Teaching Learning Quality Committee member (2016-)
  • Faculty of Engineering Reseach Committee member (2016-17)
  • ECSE department Student Staff Consultative Committee chair (2012-2015)

Areas of expertise

  • Educational software solutions
  • Mobile virtual and augmented reality
  • Mobile app development
  • Programming education
  • Parallel programming
  • Compiler front-end

Selected publications and creative works (Research Outputs)

As of 29 October 2020 there will be no automatic updating of 'selected publications and creative works' from Research Outputs. Please continue to keep your Research Outputs profile up to date.
  • Rho, E., Chan, K., Varoy, E. J., & Giacaman, N. (2020). An Experiential Learning Approach to Learning Manual Communication Through a Virtual Reality Environment. IEEE TRANSACTIONS ON LEARNING TECHNOLOGIES, 13 (3), 477-490. 10.1109/TLT.2020.2988523
  • Raj, R. K., Romanowski, C. J., Aly, S. G., Becker, B. A., Chen, J., Ghafoor, S., ... Rahimi, S. (2020). Toward High Performance Computing Education. Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE. 10.1145/3341525.3394989
  • Hadisantono, H., Rowe, G., & Giacaman, N. (2020). Extending assessment of engineering professional skills to include the local indonesia higher education competency. Australasian Journal of Engineering Education, 25 (1), 90-102. 10.1080/22054952.2020.1807730
    Other University of Auckland co-authors: Gerard Rowe
  • Hu, Y., Donald, C., Giacaman, N., & Zhu, Z. (2020). Towards automated analysis of cognitive presence in MOOC discussions: a manual classification study. Paper presented at 10th International Conference on Learning Analytics and Knowledge (LAK), ELECTR NETWORK. 25 March - 27 March 2020. LAK20: THE TENTH INTERNATIONAL CONFERENCE ON LEARNING ANALYTICS& KNOWLEDGE. (pp. 6). 10.1145/3375462.3375473
    Other University of Auckland co-authors: Claire Donald, Zexuan Zhu
  • Fan, X., Sinnen, O., & Giacaman, N. (2019). Balancing parallelization and asynchronization in event-driven programs with OpenMP. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 31 (4)10.1002/cpe.4959
    Other University of Auckland co-authors: Oliver Sinnen
  • Mehrabi, M., Giacaman, N., & Sinnen, O. (2019). @PT: Unobtrusive parallel programming with Java annotations. Concurrency and Computation: Practice and Experience, 31 (1)10.1002/cpe.4831
    Other University of Auckland co-authors: Oliver Sinnen
  • Fan, X., de Supinski, B. R., Sinnen, O., & Giacaman, N. (2019). Preface.
    Other University of Auckland co-authors: Oliver Sinnen
  • Giacaman, N., & Adams, J. (2019). Introductory Concurrency and Parallelism Education. Paper presented at 4th ACM Conference on Global Computing Education (CompEd), Chengdu, PEOPLES R CHINA. 17 May - 19 May 2019. PROCEEDINGS OF THE ACM CONFERENCE ON GLOBAL COMPUTING EDUCATION (COMPED '19). (pp. 1). 10.1145/3300115.3312505