Spring Semester, 2021

Programming Languages

CS320, Spring Semester, 2021


Sukyoung Ryu (류석영)

  • Email: sryu.cs@kaist.ac.kr

  • Office: CS Building Room 4407

  • Phone: x3538

  • TA Email: cs320_ta@kaist.ac.kr

Hours and Place

  • Lectures

    • 14:30 – 15:45 Mondays and Wednesdays, Online (Youtube & Zoom)


  • Introduction to Programming Languages by Jaemin Hong and Sukyoung Ryu

Complementary Materials

  • Programming Languages: Application and Interpretation by Shriram Krishnamurthi

  • Programming in Scala by Martin Odersky, Lex Spoon, and Bill Benners (First edition available for free online)


The goal of this course is to help students:

  1. learn new languages quickly,

  2. evaluate various languages and pick the most suitable one for a given task,

  3. know when and how to design a little language, and

  4. understand the effects of languages on thought and communication.

We will study programming language concepts, not as paradigms but as a set of basic building blocks, by using the Scala programming language to implement interpreters for the concepts.


  • Midterm Exam: 30%

  • Final Exam: 40%

  • Project: 20%

  • Attendance/Quiz/Homework: 10%