Syllabus
CS 4110/5110, “Programming Languages and Logics,” is a thrilling amusement-park ride through the beauty and glory of programming languages, the theory behind them, and their implementation. It will not be easy, but you will achieve a clear and rigorous understanding of computing: a rare enlightenment that will give you great power.
TL;DR
- All course communication will happen on Ed.
- Log in with your
netid@cornell.edu
email address. You should already have access. - You’re responsible for knowing everything that we post as announcements there. Ignore announcements at your own risk.
- Log in with your
- Homework and grading happens on Gradescope.
- Submit your homework anonymously (don’t put your name or NetID in the PDF).
- There will be 10 one-week homework assignments.
- You can work in pairs on homework if you like, in which case you’ll write one submission together.
- The deadline is usually Thursday night at 11:59pm.
- You have an automatic 24-hour extension.
- Homework scores are “capped”: anything above 85% is the best possible grade.
- Your lowest homework score will be dropped.
- There will be two in-class prelims and a final exam.
- The homework and exams may feel different from other classes.
- Expect the homework to make you try things we haven’t done in class. Expect to get stuck and to ask for help. Exams will be less expansive but will still require original thought.
- Grading for both homework assignments and exams will have a high standard for precision. Because this class is about formalism, little details matter more than the general gist of the solution.
- CS 4110 (undergraduate) and CS 5110 (MEng) are mostly the same, except for some extra work in the latter.
Organization
Announcements and Q&A: Ed
We will be using Ed for all announcements and communication about the course. Log in there with your netid@cornell.edu
email address. The course staff will post important updates there that you really want to know about! Check often, and don’t miss the announcement emails.
You can also ask questions—about lectures, homework, or anything else—on Ed.
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 marking your question as “Private” when you post it.
A good post asks a specific question. Here are some examples of bad posts:
- “Tell me more about broad topic X.”
- “Does anyone have any hints for problem Y?”
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.
Anonymous posting is not enabled on Ed because the instructor has had bad experiences with abuse of this feature. Instead, out goal is to foster an environment where everyone can feel comfortable asking questions as themselves. We encourage everyone to be open and honest about things they do not understand, and we will not tolerate a single iota of ridicule or derision in response to not knowing things. Let’s work together to encourage everyone to ask “silly” questions by asking them ourselves!
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.
We try to grade anonymously, i.e., the course staff won’t know who we’re grading. So please do not put your name or NetID anywhere in the PDF you upload to Gradescope. (Gradescope knows who you are!)
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:
- Problem sets: 40%
- Preliminary Exams: 30%
- Final Exam: 25%
- Participation: 5%
There is no algorithm for “curving” grades nor any predetermined cutoffs, so we won’t be able to answer questions about letter-grade projections.
Problem Sets
Problem sets are usually due on Thursdays at 11:59 PM. See the course schedule. You can work on problem sets with a partner; you’ll turn in one completed assignment together.
The purpose of homework assignments is to challenge you to build on what you learn in class. Our goal while grading will be to offer useful feedback—not to do fine-grained score accounting. In terms of your final course grade, homework scores are capped at 85%. All scores above 85% will count as “full credit” and an A average; scores below 85% will be scaled accordingly (e.g., 80% on an assignment maps to a final-grade value of 94.1%). This policy embodies our trust in students’ ability to responsibly prioritize learning over maximizing grades.
Also, we will drop one score to calculate your final grade: that is, your lowest-scoring problem set won’t count, even if that score is zero. Use this policy to cope with an extenuating circumstances, or that especially difficult week in your semester, by skipping one assignment.
You’ll turn in assignments via Gradescope. Be sure to attach your group to your submission in Gradescope if you’re working in a pair. 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.
Extensions
Assignments are due at the time specified in Gradescope, and we ask that you always try to submit before that deadline, even if your solution is incomplete. That at least shows us that you are making progress.
But life happens: you miss the deadline because of other courses, illness, events in your personal life, and so forth. Rather shoulder you with the additional burden of asking for an extension in those circumstances, we have configured Gradescope to accept late submissions up to 24 hours after the deadline. There is no penalty for these late submissions. They are an automatic extension you may choose to grant yourself. We trust you to do so wisely—often, making use of them will result in you having less time to work on the next assignment. The purpose of automatic extensions is to give you a tool to manage the demands of life, including:
- routine illness
- minor injury
- travel
- job fairs
- job interviews
- large workloads in other courses
- extra-curriculars
Be aware that after Gradescope decides that the late submission deadline has passed—even 1 second past it—no further submissions will be accepted. Gradescope does not provide a grace period on late submissions.
Beyond those automatic extensions, we will grant exceptional extensions in truly exceptional circumstances. Those require accompanying documentation: a letter from a Cornell professor, advisor, or coach requesting the extension on your behalf; an obituary or wedding announcement; a letter on official letterhead from a medical provider explaining a major illness or injury; or official SDS letters. Contact the professor to request such an exceptional extension.
Exams
There will be two in-class preliminary exams and a final exam. See the course schedule.
The prelims are happen in class because the instructor believes evening prelims are cruel and impractical. We attempt to make the exams fit comfortably within 50 minutes. To whatever extent we misfire and the exam is too long, we account for this difficulty when scaling the scores. While we do not “curve” grades in the conventional (z-score) sense, we do account for exam difficulty: these exams will be hard, and you should not consider your “raw” score on the prelims to be directly proportional to your letter grade.
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 staff immediately to reschedule.
Participation
To get full credit on the 5% of your grade allocated to participation, you just have to do three things:
- Do the introduction survey (on Gradescope) in the first week of class.
- Fill out the mid-semester feedback survey.
- Enter the semester-end course evaluation.
Free points!
The Difficulty You Can Expect
This is an advanced course, so some things will be different from other classes you have taken:
- The homework will ask you to do new things that you have not practiced already during lecture. This can make the homework feel difficult, and you may even get totally stumped on some problems. This is normal. But it does mean that you should start early and leave time to ask questions.
- Problems on exams should feel more familiar and stretch you somewhat less. On the other hand, they will not just be slightly tweaked versions of previous homework problems.
Grading on both homework and exams will intentionally focus on 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.
4110 vs. 5110
This course is offered in two flavors: CS 4110 is the undergraduate version, and CS 5110 is the MEng version. BS/BA students must enroll in 4110, and MEng students must enroll in 5110. Most of the content is the same: 4110 and 5110 students attend the same lectures, complete the same homework assignments, and take the same exams.
The only difference is some extra work in CS 5110. Here is what you need to do for 5110: after each prelim, pick a problem from the exam and complete an expanded version of the solution. The expanded version includes step-by-step details on how to solve the problem and one or two paragraphs of explanation of your strategy. Your expanded solution should explain to an audience who didn’t understand the problem exactly how to solve it.
The expanded solution is due one week after each prelim is graded. These extra assignments contribute to the “homework” portion of your course grade.
Policies
Academic Integrity
Absolute integrity is expected of all Cornell students in every academic undertaking. The course staff will prosecute violations aggressively.
You are responsible for understanding these policies:
- Cornell University Code of Academic Integrity
- Computer Science Department Code of Academic Integrity
You can also read about the protocol for prosecution of violations.
On problem sets, 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:
- Do not show any partial solution to another student or give any hints.
- Never share code. (Shared code is surprisingly easy to detect.)
- Do not search the Internet for solutions. Don’t look anything relevant up on Wikipedia. Don’t search on Stack Overflow or anywhere else.
- Do ask someone if you’re confused about what the assignment is asking for.
- Definitely ask the course staff if you’re not sure whether or not something is OK.
Here’s the policy for exams: you may not give assistance to anyone or receive assistance of any kind from anyone at all (outside of the course staff) during an exam. All exams are closed book.
You may not give any hints or post any code that might be part of a solution on Ed (except in a private thread 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:
- Engineering academic advising at 607-255-7414, or Arts & Sciences academic advising via their appointment system
- Learning Strategies Center at 607-255-6310
- Let’s Talk Drop-in Counseling at Gannett at 607-255-5155
- Empathy Assistance and Referral Service (EARS) at 607-255-EARS
Please also explore other mental health resources available at Cornell.