Courses

Undergraduate Courses


• Imperative Programming 2 (Intermediate and advanced Scala)

  Undergraduate Course, University of Oxford, Summer 2013/Summer 2014.

  Lecture0, Lecture1, Lecture2, Lecture3, Lecture4, Lecture5, Lecture6,

  Lecture7, Lecture8, Lecture9, Lecture10, Lecture11, Lecture12

  Scala code in slides


• Tutorials on Object-Oriented Programming,

  Undergraduate Course, University of Oxford, Fall 2011/Fall 2012.


• Tutorials on Imperative Programming 2,

  Undergraduate Course, University of Oxford, Summer 2012/Summer 2013.


• Tutorials on Imperative Programming 1,

  Undergraduate Course, University of Oxford, Spring 2012/Spring 2013.


• Tutorials on Functional Programming,

  Undergraduate Course, University of Oxford, Fall 2011/Fall 2012.


• Tutorials on Compilers,

  Undergraduate Course, University of Oxford, Spring 2012/Spring 2013.


• Tutorials on Linear Algebra,

  Undergraduate Course, University of Oxford, Fall 2011/Spring 2012.


• DCS200, Essential Networks and Operating Systems,

  Undergraduate Course, Queen Mary Univ. of London, Fall 2007.


• DCS201, Further Networks and Operating Systems,

  Undergraduate Course, Queen Mary Univ. of London, Spring 2007.



Graduate Courses


• AMCM049, Specification and Verification,

  MSc Course, Queen Mary Univ. of London, Spring 2011/Spring 2010/Spring 2009.


• CS720, Program Verification using Separation Logic,

  Graduate Course, KAIST, Korea, Summer 2003.