This course will discuss advanced concepts in the design and implementation of programming languages. It is the second in a two-course graduate-level sequence on programming languages - the first being CSE 505. Advanced language concepts will be drawn from type systems, object-oriented, functional, and logic programming languages. the course will also cover integration of two or more programming paradigms as well as implementation issues underlying these paradigms. In-depth understanding of these concepts will be gained through programming projects.