teaching

Introduction to Computer Science

  • Basic skills
    • UNIX, shell, HTML, Tex
  • C language
    • Introduction to C
    • variable, array, control flow, pointer, function, structure, ...

OCaml (functional programming language)

  • Introduction to OCaml
    • data structure, recursive function, higher-order function, variant, ...
  • Prolog Interpreter
    • lexer, parser, unification, deduction, ...

Java (object-oriented programming)

  • Introduction to Java
    • class, encapsulation, inheritance, polymorphism, ...
  • Game programming
    • multi thread, GUI, JavaFX
  • Network programming
    • TCP, UDP, HTTP, SMTP, POP3, FTP, ...

Compiler Optimization Seminar

  • Basic Optimizations
    • peephole, constant propagation, constant folding, common subexpression elimination, dead code elimination, partial redundancy elimination, register allocation, ...
  • Optimizations in SSA form
    • common subexpression elimination, dead code elimination, global value numbering, ...