Programming Languages: Theory and Practice

(CIS 352 at Syracuse U)

Note: parts of this syllabus are subject to change with adequate notice to students.

An introduction to the design and implementation of programming languages, focused on operational semantics and interpreters. This course is heavily project-focused, and a specific emphasis will be placed upon training in algorithmic thinking and programming strategy.



No Monday Labs:


Grading has been simplified compared to previous offerings of CIS352. For Spring 2022, there are only two major components to the grade: exams and projects, which are both grade on a percent scale. Participation possibly adds a “plus” (i.e., A- to A), a “minus,” (A to A-) or no change at all (B remains B) to the grade based how much participation is done.

There is a detailed chart below explaining the grading policy, but it is roughly this: (a) there are exams and projects, (b) if you get at least an 80% in one category and at least a 90% in the other, you will get an A (and so on), (c) if you get fewer than 2017 participation points, you will get a “minus” taken from your grade in (b), [20 17-30 27) participation points will cause no change, and >=30 27 participation points will add a “plus” to the grade. Note that there is no A+, however, the professor will track this information for recommendation letters and references.

Informal Grading Rules for CIS352

Project Grading:

Exam Grading:


Final Grading:


Projects/Exams (Higher) Projects/Exams (Lower) Base Grade
90 80 A
87 77 A-
85 75 B+
83 73 B
80 70 B-
77 67 C+
74 64 C
70 60 C-
60 50 D
< 60 < 50 <D
Participation GPA Δ
< 20 17 -
20 17 – < 27 30 =
30 27 +

Grade calculator

Final grade:



There are five four programming projects in the Racket programming language, plus a bonus project. Projects will generally have deadlines of roughly 12 calendar days from their assignment (though this may be adjusted at times). Projects will be graded using an autograder whose URL is You will receive credentials for the autograder–if you have not received these by the first day of class, let Chang (TA) know. You are expected to learn how to use the Git interface to the autograder–the autograder will technically accept archives, but the instructors strongly prefer students (and will exclusively help support) using Git.

Project Late Policy


Exams explicitly measure your ability to materialize solutions to questions regarding relevant course content in an open-ended fashion. There will be four “quizzes” through the semester, each of which will have up to 12 10 questions, based on the number of topics presented so far in the course. Each exam will be cumulative, and for each question number N (between 1 and 10 12) the content will be roughly the same with a different question. These questions correspond to the learning objectives (see top of page).

You will always get your maximum grade on any one problem. You can keep submitting (say) problem 5 until you either run out of chances (the final) or achieve full marks on that question.

We see in-person exams as a crucial counterpart to coding projects in determining the course grade. We recognize exams can be stressful. It is our intention that our grading scheme (frequent quizzes that allow you to raise your score after several attempts at the same material, along with the fact that a lower score in exams may be offset by project grades) will help assuage exam-related stress. However, the instructors strongly encourage students to look into the resources provided by the Barnes Center (such as extended exam time) if a student thinks their academic performance is impeded by exam-related stress.

Participation Credit (at least 30+ available)

Lots of participation credit will be available. Last year, the most-participating student accrued 43 participation points. You get participation in several ways:

Collaboration and the Honor Code

Student Support

Syracuse University values diversity and inclusion; we are committed to a climate of mutual respect and full participation. There may be aspects of the instruction or design of this course that result in barriers to your inclusion and full participation in this course. I invite any student to meet with me to discuss strategies and/or accommodations (academic adjustments) that may be essential to your success and to collaborate with the Office of Disability Services (ODS) in this process.

If you would like to discuss disability-accommodations or register with ODS, please visit their website at Please call (315) 443-4498 or email for more detailed information.

ODS is responsible for coordinating disability-related academic accommodations and will work with the student to develop an access plan. Since academic accommodations may require early planning and generally are not provided retroactively, please contact ODS as soon as possible to begin this process.


As part of the regular ABET accreditation process for the undergraduate program in computer science, we may be collecting samples of students’ work in each of our undergraduate classes. As a result, some of your labs/homeworks/exams may be photocopied/scanned (or electronically copied) to be presented for accreditation at some later point.

Student Mental Health

Mental health and overall well-being are significant predictors of academic success. As such it is essential that during your college experience you develop the skills and resources effectively to navigate stress, anxiety, depression and other mental health concerns. Please familiarize yourself with the range of resources the Barnes Center provides ( and seek out support for mental health concerns as needed. Counseling services are available 24/7, 365 days a year, at 315.443.8000.

Discrimination and Harassment

The University does not discriminate and prohibits harassment or discrimination related to any protected category including creed, ethnicity, citizenship, sexual orientation, national origin, sex, gender, pregnancy, disability, marital status, age, race, color, veteran status, military status, religion, sexual orientation, domestic violence status, genetic information, gender identity, gender expression or perceived gender.

Any complaint of discrimination or harassment related to any of these protected bases should be reported to Sheila Johnson-Willis, the Universitys Chief Equal Opportunity & Title IX Officer. She is responsible for coordinating compliance efforts under various laws including Titles VI, VII, IX and Section 504 of the Rehabilitation Act. She can be contacted at Equal Opportunity, Inclusion, and Resolution Services, 005 Steele Hall, Syracuse University, Syracuse, NY 13244-1120; by email:; or by telephone: 315-443-0211.

If you notice any incidents of harassment or discrimination, however minor, please email me. You may wish to use an anonymous email service such as Please feel free to tell me as much as you feel comfortable. I am a mandatory Title IX reporter and must report incidents such as sexual harassment, relationship violence, stalking, etc…


Slack is an instant messaging app for teams. We’ll be using it for most course management. This is the best place to get in touch with me for one-off questions, ask for an appointment for office hours, etc.. Email me if you have not been invited to the course Slack.