Programming modules and open learning materials.

Current teaching at the Academy of AI and Advanced Technology, Xi'an Jiaotong-Liverpool University.

Current teaching portfolio

CPT105Undergraduate · Year 2Autumn term

Introduction to Programming in Java

An introduction to object‑oriented programming (OOP) with Java. Students learn core OOP concepts (classes, objects, abstraction, encapsulation, inheritance, polymorphism), Java syntax and control structures, and how to design, implement, test and document small to medium programs using sound software‑engineering practices.

Java Syntax & Control StructuresClasses, Objects & MethodsOOP Principles (abstraction, encapsulation, inheritance, polymorphism)Basic I/O & Exception HandlingTesting, Debugging & DocumentationGood Software Development Practices
CPT204Undergraduate · Year 3Spring term

Advanced OO Programming

Covers data structures and advanced programming techniques in Java. The module deepens OOP knowledge, introduces advanced language features and design principles, and develops problem‑solving skills for implementing algorithms in contemporary software settings, including collaborative, team‑based development.

Advanced OOP (interfaces, generics, design principles)Data Structures & Algorithms in JavaSoftware Architecture & PatternsTesting & Quality AssuranceVersion Control & Team CollaborationInclusive & Ethical Software Practices