Programming Language Concepts
Term 20225


Welcome to CSCI-344: Programming Language Concepts.

This course will be delivered online (MoWeFr 2:00pm – 2:50pm). For instructions on how to watch the lectures, please refer to the Zoom tab of myCourses. Please use your Zoom account and your real name when participating.

Please note that the course has a required textbook (Programming Languages: Build, Prove, and Compare, by Norman Ramsey). There will be required readings from the textbook and accompanying myCourses quizzes, including one on Friday of the first week of class, as well as programming assignment problems assigned from the textbook. The textbook is available in a variety of formats:

  • Hardcover
  • eBook
    • via the RIT Virtual Bookstore for $50.44 (90 day license) or $84.09 (lifetime license)
      Note that 90 days from the start of the semester is April 17, approximately 3 weeks before the end of the semester (and the course final exam).
    • via VitalSource for $40.80 (90 day license) or $68.00 (lifetime license)
      VitalSouce is the vendor that provides this eBook to Akademos (who in turn provides the RIT Virtual Bookstore). I am told that the VitalSource platform is somewhat better than Kindle for textbooks.
    • via Amazon for $68.00
      Note that the Kindle version only works with the Kindle App on iOS, Android, Windows, and Mac; in particular, it does not work with Kindle e-readers or the Kindle Cloud Reader webapp.

Programming assignments in the course will use custom software available on the CS Dept. Linux systems (e.g.,,, and ICLs 1 and 2) at /usr/local/pub/mtf/plc/bin. Visit to reset your password. Time and resources permitting, we will try to make Linux, macOS, and Windows versions available for download.

General Information

Instructor: Arthur Azevedo de Amorim
E-mail:  aaavcs at
Office hours: via Zoom (cf. myCourses)
 Mon 10am – 11am
 Tue 2:30pm – 3:30pm
 Wed 10:30pm – 11:30pm
 Thr 2:30pm – 3:30pm
 or by appointment
Lectures: Section 01    MWF 2:00pm – 2:50pm; online (cf. myCourses). You can join in from GOL-2590.

Course Description

This course is a study of the syntax and semantics of a diverse set of high-level programming languages. The languages chosen are compared and contrasted in order to demonstrate general principles of programming language design and implementation. The course emphasizes the concepts underpinning modern languages rather than the mastery of particular language details. Programming projects will be required.

Last modified: Tue 04 Apr 2023 02:04:08 PM EDT