Programming Language Concepts
Term 20235


Welcome to CSCI-344: Programming Language Concepts.

The instruction mode for this course is in-person (MoWeFr 2:00pm – 2:50pm; SLA-2150).

The Zoom meetings/recordings appearing in the Zoom tab of myCourses are for those students with exceptional circumstances who have contacted the instructor in advance. 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: GOL-3547
 Mo 3pm–4pm
 We 11am – 12pm
 or by appointment
Lectures: Section 01    MWF 2:00pm – 2:50pm; SLA-2150

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: Wed Jan 31 12:43:00 EST 2024