Teaching and Mentorship

Select student thesis groups advised / co-advised

Subjects taught

All materials in these courses are copyright of Ateneo de Manila University 2022, except those materials drawn from previous iterations of the course under Creative Commons.

CSCI70: Structure and Interpretation of Computer Programs

Syllabus 📜
HackerEarth Page 💻

CSCI70 introduces students to programming concepts and models that serve as the basis for a vast majority of existing programming languages, with a particular focus on concepts and models that they may not have seen before. The course covers declarative vs. imperative models; functional, imperative, and logic programming; objects; concurrency; types systems; meta-programming. Students then explore how these concepts play out in real-world programming languages. In addition, students learn how formal semantics may be defined for programming languages in relation to the concepts, and how interpreters may be implemented to match those formal semantics.