Good education should let students explore their interests and enjoy the learning experience. Starting from simple examples and concepts, students should be exposed to more complex applications. Inspiring students helps them to go beyond their capabilities and achieve bigger goals. [Teaching Statement]


Corporate Training

  • Secure Coding in Java

    A practical 3 day course intended for software developers, that focuses on building secure applications in Java. It is delivered in 6 sessions, covering 25+ secure coding rules and 10+ labs/demos.


  • TeachHIP

    An online platform to teach automated verification using the HIP and SLEEK system. It enables students to write code and verify its correctness using separation logic without the need to install the HIP/SLEEK verification system on their local machine. Lesson plan with slides for teaching and sample exercises are also available online.

    TeachHIP has been used in courses at SIT and NUS.


  • Secure Software Development (ICT3103/ICT3203) @ Information and Communications Technology, SIT (Fall 2016, Fall 2015) [Course Feedback|Teacher Feedback]
  • Software Engineering Project I/II (CS3201/CS3202) @ Department of Computer Science, NUS (Fall 2014) [Teacher Feedback]
  • Logic and Formal Systems (CS3234) @ Department of Computer Science, NUS (Spring 2015, Spring 2014)
  • Programming Language Implementation (CS4215) @ Department of Computer Science, NUS (Spring 2014, Spring 2013)
  • Programming Language Concepts (CS2104) @ Department of Computer Science, NUS (Fall 2013)
  • Linux Programming @ Department of Computer Science, NITW (2004)
  • The Universe (Physics) @ KVS (2003)
  • Grading Assistant (Physics and Mathematics) @ KVS (2002)