Subscribe

Archives

Categories

Attribution-NonCommercial-ShareAlike 4.0 International

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.

Syllabus

CSc 71010: Programming Languages

3 hrs, 3 credits. Computer Science, City University of New York (CUNY) Graduate Center.

Details

Field Value
Instructor: Raffi Khatchadourian
Office: TBD
Email: [email protected]
Phone: TBD
Office hours: See Bb.
Semester: Spring 2025
Section: CSc 71010-01 (53327)

Course Description

This course is intended to be a survey on the fundamental concepts and principles that underlie current and emerging methods, tools, and techniques for the design and implementation of modern programming languages. This includes the understanding and appreciation of topics in designing and implementing modern programming languages such as attribute grammars, operational semantics, (static and dynamic) type systems, abstract interpretation, and language implementation via interpreters and compilers. We may also discuss programming language concepts for Machine Learning (ML) and Deep Learning (DL) systems, possibly including how Large Language Models (LLMs) are influencing the theory and practice of programming language design and implementation.

Topics

Please note that this schedule is tentative:

  • Attribute grammars
  • Operational semantics
  • Abstract interpretation
  • Type systems
  • Control-flow analysis
  • Data-flow analysis
  • Compiler optimizations
  • Programming language concepts for Machine Learning (ML) and Deep Learning (DL) systems.

Suggested Previous Courses and Knowledge

  • CSc 70010: Algorithms.
  • Computer Theory or equivalent, including formal languages and grammars.
  • An undergraduate course in programming languages.
  • Programming experience in an imperative and Object-Oriented, high-level language (e.g., C++, Java, Python).

Textbooks and Materials

While there are no required texts, there are readings from the books listed below. All books are available at the library, but please do not check them out from the GC library. I have entered a reservation request.

Title Author ISBN
Formal Specification of Programming Languages: A Panoramic Primer Pagan 9780133290523
Formal Syntax and Semantics of Programming Languages (online) Slonneger and Kurtz 9780201656978
Compilers: Principles, Techniques, & Tools (2nd ed.) Aho, Lam, Sethi, and Ullman 9780321486813
Semantics with Applications: A Formal Introduction (online) Nielson and Nielson 9780471929802
Types and Programming Languages Pierce 9780262162098

Please also refer to my notes on type constraints.

Learning Goals

  • Be able to write attribute grammars and derivations of simple programs.
  • Be able to understand and define basic formal semantics of programming languages.
  • Be able to formulate and prove type safety theorems.
  • Be able to implement (possibly parts of) an interpreter or compiler for a small, hypothetical programming language.
  • Be able to understand and implement a type inference algorithm.
  • Be able to understand and implement an abstract interpretation algorithm.

Assessment

Category Percentage
Assignments 20%
Project 25%
Participation 5%
Midterm Exam 25%
Final Exam 25%

Key Dates

Event Date
Class held on Tuesday Feb 18
Midterm exam Mar 17
No classes scheduled Mar 31
Withdrawal deadline Apr 1
Spring recess Apr 12--20
Final exam May 19

Homework

The course will include several written assignments and programming projects. Each will be assigned in Blackboard along with submission instructions. Assignments will be uploaded to Blackboard and the programming projects will be pushed to GitHub classroom. The exact instructions will follow. The projects must include command-line instructions on how to run the program.

Notes

  • Deadlines and due dates for assignments will be assigned in class.
  • Late assignments will be penalized.
  • No extensions will be given for extra credit assignments, if applicable.
  • Assignments must result from individual effort unless otherwise noted (e.g., group projects).

Exams

Test make-ups will be given if and only if:

  • the request is made sufficiently in advance of the test, and
  • the make-up is scheduled prior to the next class.

Attendance

Attendance is expected for class meetings. Student are responsible for obtaining and covering any material missed due to absence.

Academic Violations

The classroom environment employed will be that of a professional one. While students may discuss course materials and assignments with others, any submitted work in this course must be the result of individual effort only. Students are strongly advised to read the following resources regarding academic integrity:

Office Hours

Office hours will be held in person once a week. See Bb for details. Attending office hours is optional, no appointment is necessary, and appointments cannot be made during office hours. Students should arrange an alternative meeting time if the scheduled office hours conflict with their schedules.

Email

Emails to the instructor must be via a CUNY GC email address for FERPA reasons. Please ensure that your correct email address is entered into the CUNY Blackboard.

Bulletin Board

Students should check the CUNY Blackboard (Bb) regularly for class materials. Students should ensure that they have configured Bb to use a CUNY email address. Students are responsible for any emails the instructor send there.

Counseling & Wellness Services

The Wellness Center Student Counseling Services offers short-term individual and group counseling and psychotherapy, couples counseling, consultation and referral services, and various programs and workshops relevant to graduate student life. More information can be found on the Counseling Services website.

Special Needs

Students with special needs should see me for accommodation.

ADA Compliance

It is Graduate Center and CUNY policy to provide appropriate accommodations to students with disabilities. Any student with a disability who may need accommodations in this class is advised to speak directly to the manager of Student Disability Services, located in Student Affairs, room 7301, or call 212-817-7400 as early in the semester as possible. All discussions will remain confidential. More information can be found on the Disabilities Services website.

Family Educational Rights and Privacy Act (FERPA)

Please review the student rights concerning education records.

Sexual Misconduct

Please review the CUNY policy on sexual misconduct.

Instructor Biography

Raffi Khatchadourian is an Associate Professor in the Computer Science Department at Hunter College and the Graduate Center of the City University of New York (CUNY). He received his MS and PhD degrees in Computer Science from Ohio State University and BS degree in Computer Science from Monmouth University in New Jersey. Prior to joining CUNY, he was a Software Engineer at Apple, Inc. in Cupertino, California, where he worked on Digital Rights Management (DRM) for iTunes, iBooks, and the App store. He also developed distributed software that tested various features of iPhones, iPads, and iPods. His research focus is techniques for automated software evolution, particularly those related to automated refactoring and source code recommendation systems with the goal of easing the burden associated with correctly and efficiently evolving large and complex software.

Credits

Portions of this syllabus are based on those of Atanas Rountev, Neelam Soundarajan, Mike Bond, and Subash Shankar.