Syllabus

CS 6110 is Cornell’s graduate class on programming languages. It represents what we think every CS PhD student should know about the theory and practice underlying programs. It blends formal foundations with real-world applications and connections to other fields in computer science.

TL;DR

Organization

Announcements and Q&A: Slack

We will use a Slack workspace for announcements and communication about the course. (We’re using Slack instead of Piazza or Ed this semester.) Please sign up for the Slack instance. The course staff will post important updates there that you really want to know about! Check often, and be sure to enable notifications for the #announcements channel.

You can also ask questions—about lectures, homework, or anything else—on Slack. The #pl channel is for this kind of discussion. The course staff will respond as quickly as possible.

If you can answer a question yourself, please do! But be careful not to post answers—if you’re not sure whether something is OK to post, contact the course staff privately. You can do that by sending a direct message in Slack to Alexandra and Noam.

A good post asks a specific question. Here are some examples of bad Slack posts:

If you need help with a homework problem, for example, be sure to include what you’ve tried already, exactly where you’re stuck, and what you’re currently thinking about how to proceed. If you just ask for help without any evidence of effort, we’ll punt the question back to you for more details.

Assignments: Gradescope

You will download homework assignments, upload solutions, and receive grades through Gradescope. Please log in there to see whether you’re in the system. If you’re not, please send your NetID to the course staff and we’ll get you set up.

Please, put your name and/or NetID onto your pdf solutions. We might need to print out the documents in order to grade them, so without your name or NetID it becomes difficult to match your work with you!

Content

We won’t use a textbook, but if you like books, we have some resources to suggest.

Grading

Final grades will be assigned with these proportions:

There is no algorithm for “curving” grades or any predetermined cutoffs, so we won’t be able to answer questions about letter-grade projections.

Assignments

Assignments are due on Wednesdays at 11:59 PM. See the course schedule. You can work on assignments with a partner; you’ll turn in one completed assignment together.

You’ll turn in assignments via Gradescope. We strongly encourage you to use TeX, but you can also write up answers by hand. If you do, scan your work and upload it as a PDF. It’s your responsibility to make sure scans are 100% legible—we won’t regrade work that was too hard to read.

Gold-Star Grading



We are using an experimental, simplified grading scheme for assignments this semester. Our goal is to focus on giving you useful feedback, not on “precisely” scoring every granular facet of a homework problem. There are three possible outcomes:

Earning gold stars on every assignment will achieve an A in the “assignments” category of your course grade.

Timeliness

Late work will not be accepted and will count for zero points. If you need an extension for extenuating circumstances, please talk to the course staff.

Exams

There will be a prelim and a final, both in a take-home format. You’ll be able to take the exams anywhere within a one-week period. See the course schedule.

Makeup exams must be scheduled within the first three weeks of class. Check the schedule now to see if you have a conflict with another class and contact the instructor immediately to reschedule.

Participation

To get full credit on the 5% of your grade allocated to participation, you just have to do three things:

Free points!

The Difficulty You Can Expect

This is a PhD-level course, which means the homework and exams can feel very different from undergrad courses. These differences may be surprising, especially if this is one of your first grad classes:

Grading on exams will intentionally focus on nitpicky details. Compared to other courses, we will give more weight to “small” mistakes and less weight to getting the general idea right. That’s the nature of this course, which is about formalism. Often, the intuitive idea behind a problem is totally obvious! Then, the topic we’re working on is 100% about getting the nitty-gritty formal details right so we can prove something beyond a shadow of a doubt.

Here’s a special message for PhD students: Please try not to worry about your grade. I don’t know how to put this delicately, but grades matter less as a PhD student than they did in undergrad. Focus on getting as much PL knowledge as you can out of this course—not on acing every assignment.

Policies

Academic Integrity

Absolute integrity is expected of all Cornell students in every academic undertaking. The course staff will prosecute violations aggressively using automatic detection tools.

You are responsible for understanding these policies:

You can also read about the protocol for prosecution of violations.

On assignments, everything you turn in must be 100% completely your own work (with your partner, if you have one). You may discuss with other students about requirements for the assignment, programming in OCaml, etc. But when it comes to developing specific answers or coding, you may not talk to other students except for your partner or anyone else. Specifically:

Here’s the policy for exams: outside of the course staff, you may not talk to anyone about any exam content at all until the exam is graded. Don’t even tell anyone how you’re feeling about the exam or what you found challenging: you must pretend that you have never seen the exam. You can use notes from the class, including both your own notes and our notes from the website, but not outside resources.

You may not give any hints or post any code that might be part of a solution on Slack (except in a private message with course staff). On both assignments and exams, the web is always off limits: you may not Google anything or look anything up on Wikipedia to get help, for example.

Respect in Class

Everyone—the instructor, TAs, and students—must be respectful of everyone else in this class. All communication, in class and online, will be held to a high standard for inclusiveness: it may never target individuals or groups for harassment, and it may not exclude specific groups. That includes everything from outright animosity to the subtle ways we phrase things and even our timing.

For example: do not talk over other people; don’t use male pronouns when you mean to refer to people of all genders; avoid explicit language that has a chance of seeming inappropriate to other people; and don’t let strong emotions get in the way of calm, scientific communication.

If any of the communication in this class doesn’t meet these standards, please don’t escalate it by responding in kind. Instead, contact the instructor as early as possible. If you don’t feel comfortable discussing something directly with the instructor—for example, if the instructor is the problem—please contact the advising office or the department chair.

Special Needs and Wellness

We provide accommodations for disabilities. Students with disabilities can contact Student Disability Services at 607-254-4545 or the instructor for a confidential discussion of their individual needs.

If you experience personal or academic stress or need to talk to someone who can help, contact the instructor or: