On this page:
Syllabus
Object-Oriented Programming and Data Structures
CS 2110 / ENGRD 2110, Fall 2026
Course Overview
Over the past few decades, software systems have exploded in both scale and scope. These days, we rely on technology for most aspects of our lives: communicating with others, searching for and accessing information, managing businesses and personal finances, entertainment, and automation in industries such as manufacturing, transportation, and healthcare, to name a few. All of these technologies are driven by software. As our reliance on these technologies has grown, so too have their code bases. Applications have grown to comprise tens of millions, or even billions, of lines of code, spread across thousands of files and maintained by thousands of developers. More recently, the integration of generative AI into software pipelines has further accelerated the proliferation of code, albeit without the same level of scrutiny of its correctness, style, or long-term maintainability. At this scale, being able to write, test, and analyze correct, efficient, and maintainable code really matters.
In this intermediate programming course, we will build upon the foundational programming concepts (variables, conditional statements, subroutines, iteration, and recursion) you discussed in a previous computer science course to develop a set of tools for building bigger and better software. We’ll explore software engineering concepts such as specifications, invariants, and testing that lead to more readable, reliable, and extendable code. Through our principal programming language, Java, we’ll introduce the foundational ideas of object-oriented programming, including objects, classes, subtypes, encapsulation, and polymorphism. We’ll develop a theoretical framework (asymptotic analysis) for characterizing the complexity of our code and use this to study the performance of various algorithms (sorting, searching, and traversal), data structures (dynamic arrays, linked chains, trees, heaps, hash tables, and graphs), and abstract data types (lists, stacks, queues, priority queues, sets, and maps). Finally, we’ll introduce alternate programming paradigms (concurrent and event-driven programming) that lie at the core of many modern software systems.
Course Objectives
This course has been designed to satisfy the following high-level objectives. By the end of the course, you should be able to confidently:
- Employ recursion and object-oriented programming concepts (e.g., classes, interfaces, polymorphism, inheritance) to solve computational problems.
- Design, implement, and verify nontrivial Java programs (roughly 1000 lines of code), starting from an English language specification, leveraging features like encapsulation and unit tests to improve maintainability.
- Analyze the asymptotic complexity of algorithms and programs to evaluate their running times and memory requirements.
- Implement basic data structures (dynamic arrays, linked lists, binary search trees, heaps, hash tables, adjacency lists) and use them in programs.
- Build and modify event-driven graphical user interfaces (GUIs) expressed in Java.
For a more fine-grained list of specific learning outcomes, see this page.
Logistics
Course Offering
| Credit Hours: | 4 |
|---|---|
| Grading Basis: | Letter grades or S/U; auditing is not permitted (per departmental policies) |
| Instruction Mode: | On campus |
| Class Format: | Two 75-minute lectures and one 75-minute discussion per week. Attendance and participation are expected in both lectures and discussions. |
| Supplemental: | Approximately 10 hours of independent work/studying per week. This will vary depending on your background, desired grade, and studying efficiency. |
Times and Locations
| Lecture Time: | Tuesdays and Thursdays 10:10 - 11:25 AM |
|---|---|
| Lecture Dates: | Tuesday, August 25 - Thursday, December 3, 2026 |
| Lecture Location: | Bailey Hall 101 |
| Discussions: | Times and locations vary; see class roster |
| Prelim 1: | Tuesday, September 29, 2026, 7:30-9:00 PM, room assignments TBA |
| Prelim 2: | Thursday, November 5, 2026, 7:30-9:00 PM, room assignments TBA |
| Final Exam: | TBA |
Course Staff
Email: meichhorn@cornell.edu
Office Hours: Tuesdays 3:00-5:00 PM, Fridays 2:00-3:15 PM
CS 2110 has around 30 teaching assistants who lead discussion sections, hold office hours, and assist with grading, among other course duties. More information about our TAs can be found on this page.
Communication Norms
In a large course like CS 2110, there are many channels to get in touch with the course staff. To help make sure that your message makes it to the right place, please adhere to the following communication norms:
- Ed Discussion: Ed provides an online forum where you can ask content (clarification from class, questions on lecture exercises, etc.) and logistical questions (course policies, syllabus clarification, etc.). Many questions are relevant to others, so posting benefits our entire course community. Since the entire course staff can answer, Ed questions typically get the fastest responses. All questions are welcome. Feel free to post anonymously. Use private threads (i.e., visible only to the full course staff) for posts that include portions of your assignment solutions.
- Emailing Kim: Kim is your primary point of contact for administrative matters such as SDS accommodations and exam logistics.
- Emailing Matt: For other personal matters (outside of those handled by Kim) or extenuating circumstances, please feel free to email Matt.
- Emailing TAs: Please do not contact TAs outside of discussion sections or their office hours. They have their own academics to work on and need to set reasonable boundaries between work and life.
Prerequisites/Related Courses
We assume that students in the class have prior programming experience with a general-purpose procedural language (e.g., Python, Java, etc.). Suitable courses offered by Cornell include CS 1110 and CS 1112. Credit for CS 1110 is offered to students who scored a 5 on the “Computer Science A” AP exam, passed the Computer Science Advanced Standing (CASE) exam during orientation, or took an equivalent course at another university. If you are not comfortable with recursion or control flows involving multiple levels of nested loops and/or conditional statements, you are likely not yet ready for 2110.
Related courses
ENGRD 2110: CS 2110 is cross-listed as ENGRD 2110. These are the same course (same sections, assignments, and grading scheme). The ENGRD label is a reminder that this course can count towards the engineering distribution requirement for students in the College of Engineering (if taken for a letter grade). Whenever course staff or materials refer to CS 2110, this also applies to ENGRD 2110.
CS 2112: CS 2112 is an honors course on object-oriented programming and data structures that is offered most fall semesters. It covers topics in more depth, and its assignments entail writing significantly more code.
ECE 2400: To affiliate with the CS major, an alternative to CS 2110/2112 is ECE 2400, Computer Systems Programming, which uses C++ instead of Java. This course is offered only in spring semesters.
ENGRG 1011: A student-led Academic Excellence Workshop (AEW) is offered as ENGRG 1011 and provides additional practice with the material in a collaborative setting.
CS 2110 is a prerequisite for most other courses offered by the Computer Science department.
Course Resources
Required Materials
There is no textbook to purchase for this course. Our primary references are the publicly available lecture notes on this website. These notes are meant to be comprehensive (they include all the material we expect you to learn during the course) and self-contained (you should not need to consult external resources to learn this information, though doing so may be beneficial). The notes are broken down by lecture and include examples, animations, and interactive code blocks. Exercises at the end of the notes serve as an additional learning tool. While some written exercises include solutions and some coding exercises have built-in autograders, other solutions will not be provided. We encourage you to collaborate with classmates, engage in discussion on Ed, and speak with the course staff who can help to guide you through these exercises.
You will need regular access to a computer to complete this course, both to access and interact with this website and the various other online resources listed below, as well as to complete programming assignments. Your computer must be able to read and produce PDF documents, extract ZIP archives, and run a Java development environment. Our course is designed around the IntelliJ IDEA IDE. You can find instructions for setting this up on this page. This is the only environment for which our course staff will guarantee to offer support, so choose an alternate option (Eclipse, VSCode, etc.) at your own risk. A cloud-based file storage account (e.g., Google Drive) will come in handy should you need to use a loaner laptop or computer lab at some point during the semester; make sure you have a plan for what to do if your primary computer breaks down.
Online Services
This website serves as the backbone of our course. You will find all of the course’s logistical information, lecture notes, our course schedule, information about office hours, assignments, and your current performance here. CS 2110 does not plan to use Canvas in any significant capacity. We will use the following three online resources to help manage various aspects of our course. Links to all three of these sites can be found under “Links” in the website header.
1. Gradescope: https://www.gradescope.com/courses/1336685
We will use Gradescope to release, collect, and grade assignments and to upload and grade exams. Gradescope also has a companion app you can use to take pictures of and upload your written assignments.
2. Ed Discussion: https://edstem.org/us/courses/100452/discussion
Ed provides a discussion board where we will post announcements for the class, and where you can ask and answer questions about the course material, assignments, and logistics. These posts can be public (viewable to the entire class) or private (viewable only to the course staff).
3. PollEv: https://pollev.com/javabear
PollEv is an online polling software that we will use for polls and activities during lectures. It is expected that you bring a device with an internet connection to each lecture so you can participate in these activities. You do not need to purchase any physical device (a remote or clicker) to use PollEv.
Optional References
Many other excellent texts offer an alternative presentation of the material, which may be helpful in your studies. We list some of these references below. Note that the topic coverage and levels of formality, depth, and difficulty vary between these texts. In addition, some notational choices, diagramming conventions, and vocabulary differ from our presentation in lecture. For consistency, we expect you to adopt the nomenclature and conventions presented in the course lecture notes.
- Object-Oriented Design and Data Structures: These are online course notes prepared for CS 2112 by Cornell professors Andrew Myers and Dexter Kozen. As a 2112 reference, they go beyond our scope in some topics, but they offer a great perspective on much of our material and on good software engineering more broadly.
- JavaHyperText: This is an online textbook originally prepared for CS 2110 by Cornell professor David Gries. It contains a searchable database of many course concepts and many helpful instructional videos (click on the heads!).
- The Java Tutorials: These are official tutorials from the creators of the Java language. These offer the opportunity to learn more about the intricacies of the Java language in a user-friendly manner. Many CS 2110 instructors (past and present) have used these to learn/hone our understanding of Java.
- Principled Programming: This is a free textbook by Cornell emeritus professor Tim Teitelbaum covering many algorithms in CS 2110.
- Data Structures and Algorithms in Java: This is a relatively new book that offers the best (in Matt’s opinion) presentation of data structures and object-oriented programming in Java among the commercially available texts.
Grade Determination
To allow you some autonomy in grading, we will offer two choices of final grade computations. You may select whichever computation you would like for your own grade, but you must commit to your decision by the course “Add” deadline (September 8, 2026) by filling out this survey.
| Lecture (PollEv): | 0% |
|---|---|
| Discussion Activities: | 0% |
| Quizzes: | 10% |
| Assignments: | 20% |
| Lower Prelim Score: | 15% |
| Higher Prelim Score: | 25% |
| Final Exam: | 30% |
| Lecture (PollEv): | 4% |
|---|---|
| Discussion Activities: | 6% |
| Quizzes: | 10% |
| Assignments: | 20% |
| Lower Prelim Score: | 10% |
| Higher Prelim Score: | 20% |
| Final Exam: | 30% |
More details about each of the grade components are provided in later sections of this syllabus. Option 1 acknowledges that some students may learn better outside of the classroom. Option 2 reflects the belief that consistent, active engagement throughout the course enhances your learning by shifting some weight from your prelim scores to class participation. If you do not respond to the survey by September 8, you will be automatically assigned Option 1.
Final Letter Grades
Letter grades are assigned in accordance with the Cornell University grading system. The boundaries used to translate final grades to letter grades will be determined and published at the end of the semester. This course is not curved, meaning we do not pre-determine the percentage of students who will qualify for each letter grade. Historically, the median course grade has been a B. While grade boundaries are not known in advance (since assignments, exams, and rubrics vary between semesters), we guarantee that
- A final grade above 90% with an exam average above 80% will guarantee at least an A-.
- A final grade above 75% with an exam average above 60% will guarantee at least a B-.
- A final grade above 60% with an exam average above 40% will guarantee at least a C-.
We reserve the right to assign you a final grade that is higher than determined by these criteria. Grades will be posted promptly and updated regularly so you can evaluate your performance in the course.
Course Evaluation
At the end of the semester, you will receive a link to the course evaluation for CS 2110. This is a way for you to provide candid feedback on the instruction, content, and course organization. While we receive a report of who completes the course evaluations, your answers will remain anonymized. Completing the course evaluation will earn you 5 bonus points on the final exam.
Lectures
Our lectures are held on Tuesday and Thursday mornings in Bailey Hall 101 and offered exclusively in person. They will not be recorded. Lectures will largely follow the lecture notes available on this site, but may omit some sections and include extra examples as we see fit. Annotated lecture slides and lecture demo code will be made available on the course schedule on our website homepage within 24 hours after each lecture.
Lectures serve as a synchronous opportunity to introduce new definitions and concepts, ask and answer questions, and work on example problems and coding exercises as a large group. Engaging in activities and discussions during lecture both improves your learning and creates a more vibrant learning environment for your peers. We will use PollEv to collect responses and track participation during lecture activities. Most lectures will begin with a review poll, so make sure you arrive on time for class. You will be required to share location data with PollEv to ensure that you were in attendance. Please reach out to Matt if this presents a technological burden. Answering a polling question when you are not physically present in lecture constitutes a violation of academic integrity and may result in a score of 0 for this grade component. In addition, submitted responses that do not demonstrate genuine effort may not receive credit.
Your lecture participation grade will be computed by the formula:
\[ \min \Big( 1, \frac{\#\:\textrm{answered lecture activities}}{0.9 \cdot \# \:\textrm{lecture activities}} \Big). \]In other words, we will compute the proportion of lecture activities that you answer and scale this so that 90% participation earns full credit, capping your participation grade at full credit. In effect, this means that you can miss around 2-3 lectures over the course of the semester without it affecting your participation grade. This provides accommodation to miss an occasional class for illness or a conflicting obligation without worrying about the impact on your grade. Polls from the first lecture will not factor into your grade; we will consider this a “dry run” of the technology. If you expect you will miss more than 10% of class meetings for extenuating circumstances, reach out to Matt to discuss this.
Discussion
Discussions provide a smaller-group setting to revisit the week’s material and collaborate with other students and teaching assistants on practical programming problems. By offering an opportunity to discuss the course content through scaffolded problems, discussions are one of the best places to solidify your understanding, clarify misconceptions, and synthesize ideas presented in lecture. Some materials for discussion will be linked on the course schedule, while others will be provided as paper handouts in section.
The first two discussion sections will help get you comfortable with the programming tools that we will use throughout the course, IntelliJ and JUnit. Please bring your computers to these sections; this will be the best place to troubleshoot installation or other software issues with the course staff. Most of the subsequent discussion sections will focus on completing paper worksheets, which will ask you to read, trace, diagram, write, and analyze code. You are expected to complete these activities without the aid of technology such as your laptop or phone; discussion activities are intended to serve as “strength training” for programming tasks we will expect on assignments and exams (and that you will encounter in future courses and careers), and their main benefit comes from thinking critically to “puzzle” them out.
You should complete discussion activities in a group comprising 2-3 students. At the end of class, your discussion TA will check off your progress on the activity and report your score for the day out of 4 points, with 2 points allocated to your presence and engagement during class and 2 points allocated for your completion of that day’s activity.
| 2 Points: | Present and actively contributing in small-group discussions; engaged with the activity throughout the discussion period. |
|---|---|
| 1 Point: | Present in class, but with limited engagement in discussions with groups or TAs; somewhat distracted by other work; missed significant class time. |
| 0 Points: | Absent, either physically or mentally because of distraction by technology or other work. |
The TAs can award 3 points (i.e., one “extra credit” point) for exceptional class participation. This includes actively volunteering answers to questions and suggestions during whole-class discussions, helping other students if you finish early, etc.
| 2 Points: | Completed work demonstrates clear effort and progress in line with the expectations for the class. |
|---|---|
| 1 Point: | Completed work shows some progress, but does not meet the above expectations; insufficient progress is made; answers are missing details or explanations; genuine effort is not demonstrated. |
| 0 Points: | No demonstrable progress is made on the activity. |
Your overall discussion grade will be computed as a fraction out of 48 points; in other words, you may miss up to one week of discussion sections and still earn full credit. Having exceptional class participation during some discussions will offer flexibility for you to miss additional classes; in addition, this score is not capped at 48 points, so you may exceed full credit through perfect attendance or extra credit. You must attend the section at the time and location specified in Student Center. If you have a one-time conflict with your regular section, you may arrange to attend an alternate section that week by making a private post on Ed. This must be done before class so we can ensure there are materials for you.
Quizzes
The first 15 minutes of most discussion sections (except for Discussions 6 and 10, which fall on the weeks of the two prelims) will be allotted to a short quiz covering material from recent lectures. As an exceptional case, the quiz during the first discussion section will be a 20-minute “open-book” quiz on this syllabus. These quizzes are meant to be a lower-stakes way to encourage you to keep up with the course material and to help you to identify gaps in your understanding before exams.
Your quiz grade will be a simple average of your nine highest quiz scores; the two lowest quiz scores, possibly including any missed quizzes, will be dropped. Quizzes will begin promptly at the start of class, and will not be extended if you arrive late. Out of respect for your classmates, we ask that you arrive quietly to your discussion section, as some students with testing accommodations may begin their quizzes a few minutes early. Students who select the Performance-Based grading option are still required to complete quizzes during the discussion section in which they are enrolled.
The quizzes are “closed-book”; you may not consult any notes or external resources to complete them. While full solutions to the quizzes will not be posted, detailed grading rubrics should clarify what was expected to earn full credit. You are also free to review your quizzes with the course staff in office hours or by making a private post on Ed. Written exercises at the end of each set of lecture notes and embedded within assignment handouts are a great resource to review for the quizzes.
Assignments
The assignments in CS 2110 have two primary goals. First, they offer an opportunity to complete more long-form (as compared to discussion activities) programming assignments, putting into practice many of the theoretical concepts that we introduce in lecture. Additionally, they provide an opportunity to think more deeply about the course material and understand which concepts you need more help or practice with (which in turn provides good preparation for the exams). During the course, there will be 6 assignments, worth 80 points each. Assignments are typically assigned and due on Wednesdays (see the schedule on the homepage for more details).
Assignment Policies
- Assignments are turned in and graded on Gradescope. You may submit as many versions of the assignments before the deadline as you wish, but only the latest submission will be graded.
- All assignments will be due at 10:00 PM on the night of the listed due date. To offer some flexibility in the case of technical issues related to submissions, Gradescope will continue to accept late submissions until 12:00 AM without any grade penalty, offering a two-hour grace period. Note, however, that the course staff will only offer support for issues reported to us by 10:00 PM; you are on your own during the grace period. It is advised that you submit your homework well in advance of the deadline to alleviate these concerns. No assignment submissions will be accepted after the grace period.
- Your final homework grade will be a fraction out of 400 possible points. Your lowest assignment score will be excluded from this calculation. This builds in flexibility to account for situations where you may have less time to allocate to assignments due to illness, travel, or work in other courses.
- Assignments may be completed in groups of up to two students (i.e., yourself and up to one partner). Both partners must be tagged on all Gradescope submissions (in particular, the final graded submission).
- It is expected that partners collaborate using good pair programming practices. One partner, the driver, types code at the keyboard while the other partner, the navigator, reviews, observes, thinks, and suggests. The driver and navigator should switch roles regularly. Partners should not attempt to divide the assignment and integrate independent work. Both partners are equally responsible for all work that is submitted under their names.
- While you may discuss problems at a high level with other students, the only student with whom you may substantially collaborate (i.e., share any written work about the assignment with, whether this is typed code, written solution sketches, or whiteboard diagramming) is your assignment partner.
- You may use generative AI to assist with your assignments, but this use must be transparently documented and reflected on in your assignment submission. This includes comments within the code itself (labeling any class and/or method in which the code or documentation was at least partially generated by AI), as well as the submission of a file titled
ai-logs.jsoncomprising the complete chat logs from all sessions that you used during the completion of the assignment. Please reach out promptly to course staff if you have any questions about obtaining or submitting these logs. See this page for more discussion on the use of generative AI in programming courses like 2110. - You may not consult any other external resources (e.g., online forums, tutoring sites, archives of past assignments or solutions) to prepare your assignments. The only resources you may use for assignments are those linked on this website (e.g., the course notes, slides, and discussion worksheets) and the optional texts in this syllabus.
- Violations of the above assignment policies will not always be detectable by course staff, so enforcement is largely on your honor. Violations that are detected by course staff will be considered academic integrity violations, will be handled seriously, and may result in penalties such as receiving a score of 0 (that cannot be dropped) on that assignment.
- For autograded assignments, some feedback (e.g., whether your submitted code compiles and passes basic checks) will be provided immediately, while other feedback will be provided later when grading is released. We recommend that you go through the immediate feedback carefully to correct any issues that it may alert you to.
Exams
The goal of the exams is to provide an incentive to review the material and for us to check that you understand the material at a sufficient level to be able to use it in future courses. Our course will have two preliminary (prelim) exams on Tuesday, September 29, and Thursday, November 5, both from 7:30-9:00 PM. Your room assignment for each prelim will be announced a few days before the exam. The time of the final exam will be determined later in the semester.
- Exams in CS 2110 are closed-book. You may not bring reference materials, notes, electronic devices, or “cheat sheets” to the exam room. For some exams, we may provide a reference sheet (that will be made available in advance of the exam) that includes documentation of useful classes and/or methods.
- If you have a conflict with a prelim exam, you must fill out the conflict form (that will be linked in a pinned post on Ed) at least two weeks in advance to arrange attendance at a make-up exam. On this form, you must describe the nature of the conflict, which should be one of the following: (1) an in-person exam in another course occurring at the same time, (2) university-approved travel, for example, to attend a conference or athletic event, or (3) religious observance of a holiday or festival that conflicts with the exam time. The default accommodation for conflicts of type (1) is the offering of an “early” 5:30 PM seating for the exam on its scheduled date. Other arrangements will be made as necessary.
- If you find yourself ill on the day of the exam, please email our course coordinator, Kim, to arrange a make-up exam. Emails sent outside of business hours will receive a response on the following day.
- Violations of academic integrity during an exam, such as using electronic devices or copying another student’s paper, will result in an F in the course.
- Exams are generally cumulative (as the course content builds on previous topics), but there will usually be an emphasis on more recent topics. At least one week before each exam, we will announce more details on its format and coverage.
Grading Feedback / Regrades
Transparency and objectivity in grading are critical to ensure that all students are evaluated fairly. To this end, we will release detailed rubrics and grading comments along with your grades on all work during the semester. Please review this information carefully, as this feedback is critical for learning.
Manual Regrade Requests
In a large course where hundreds of responses are graded each week, some grading mistakes will inevitably be made. If you feel that a rubric was misapplied to any of your work on a homework assignment or exam, you should submit a regrade request.
- All regrade requests are handled on Gradescope. Regrade requests must be submitted within one week of when the grades are released. Do not email Matt or the TAs or go to office hours to ask for a regrade request or to ask whether you should submit a regrade request.
- When submitting a regrade request, be specific about which rubric items were misapplied and how you feel the grading should be corrected. Regrade requests asking for the rubric to be changed (e.g., deductions to be decreased or eliminated) will not be honored.
- There is no penalty for submitting a regrade request. However, when evaluating a request, staff will review the entire program/question for grading accuracy and consistency, so it is possible for your score to decrease if errors in your favor are identified. If major systematic grading problems are identified during the regrade window, we will attempt to address them for all students.
- Regrade requests that are rude, threatening, or condescending will not be considered and may result in an academic misconduct hearing.
Autograder Resubmission
Sometimes, a small mistake in your code (e.g., a compiler error) can result in the failure of nearly all our autograded tests. While our autograders are designed to alert you to these errors in Gradescope during the submission window, we also offer an opportunity to resubmit to the autograder to address these issues.
- You are always free to resubmit your assignments to the autograder, regardless of your original score and whether you submitted before the assignment deadline.
- Autograder resubmission will be open for one week after the release of assignment grades.
- Do not open a regrade request when resubmitting to the autograder. Regrade requests are only for manual grading corrections.
- When resubmitting to the autograder, include all assignment files, not just the ones that you revised.
- When you resubmit to the autograder, only the autograded portion of the assignment will be re-evaluated. All manual grading will carry over from your original submission. An 8-point resubmission penalty is applied, but your assignment score can never go down as a result of autograder resubmission. Your final score for the assignment will be calculated by the formula,
Bug Bounty
We’ve created many materials for CS 2110 over the past few semesters (lecture notes, slides, discussion and assignment handouts, code files, etc.), numbering well over 1000 pages at this point. While we have been careful to make these materials as accurate and well-polished as we can (and received a lot of proofreading help from students in previous semesters), some mistakes have inevitably slipped through. To help ensure that you leave the course with the best possible materials, we present the following “bug bounty”: The first student to point out a typo/mistake (and suggest an appropriate correction) on any of our materials will receive 1 point added to their total homework score. Please see the pinned post on Ed for more details on how to report bugs for credit.
Absences / Late Registration
The course grading policies, which allow you to miss some homework submissions, discussion sections, and lectures without penalty, are designed to accommodate absences due to illness, travel, etc. If a situation arises that requires a prolonged (multiple-week) absence, please email Matt to make a plan to complete the missed work. If you join the course late, please email Matt so that the following accommodations can be applied to the early graded work in the course:
- You may attend any course staff office hours up to three days after you enroll in the course to make up the open-book syllabus quiz. Please bring a sheet of loose-leaf paper to record your answers.
- Additional quizzes that you missed will count toward the two “drops”.
- The first assignment is due on the later of the posted deadline (Wednesday, September 9) and three days after you enroll in the course.
- There will be no way to make up the lecture or discussion participation that took place before you enrolled in the course. Note that there is built-in flexibility that allows for some absences for both of these.
Personal Conduct
Cornell expects students to be respectful and professional in all participation and communication. You are expected to maintain professional conduct and speech in all aspects of this course. Professional behavior demands that you have a responsible and mature attitude in person and online. Disrespectful, unethical, and/or unprofessional behaviors will not be tolerated and can result in course failure and/or dismissal from the program. This same professional standard is expected of our course staff. If anyone on the course staff behaves in a manner that you feel is inappropriate, please bring it to our attention immediately so that it can be addressed.
Academic Integrity
Integrity is a cornerstone of both our learning community and professional life; it is about respecting yourself and respecting others. You respect yourself by submitting work completed through your own effort; you respect others by acknowledging contributions from them when collaboration is allowed (e.g., group projects). When your individual effort is required (such as on an exam), you may neither seek nor accept help from others.
Each student is expected to abide by the Cornell University Code of Academic Integrity. Relevant to our course, it is considered an academic integrity violation to:
- Look at or possess the assignment code of another group in this or a previous semester.
- Show or give your assignment code to another student not in your group.
- Post code on any platform (including group chats, Q&A sites, and public posts on Ed Discussion) that other students can see.
- Submit code for graded homework assignments that has been written (wholly or in part) by a large language model or other generative AI software (ChatGPT, Copilot, Cursor, etc.) without attribution and/or submitted chat logs.
- Misrepresent your attendance for in-person grade components such as polling questions and discussion activities (or assisting other students in misrepresenting their attendance).
- Use unauthorized aids such as notes, books, online resources, or technology during quizzes or exams.
- Look at other students’ quiz or exam papers during the exam.
- Discuss the contents of a quiz or exam before the release of these materials on Gradescope or the course website.
Specific to assignments:
- You may discuss assignments with others at a high level, but the discussion should not extend to writing actual code, picking variable names, agreeing on specifications or comments, etc. If someone else contributes a key idea affecting your program design, you must credit them in a code comment or reflection document, clearly specifying the scope of their contribution.
- If you choose to complete an assignment with a partner, you must collaborate on all aspects of the assignment. It is a violation of academic integrity to submit as a group if both members cannot claim joint authorship of all portions of the submission.
- We may upload student submissions to 3rd-party services that detect plagiarism; enrollment in this course implies consent for your submissions to be used in this manner.
This course is participating in Accepting Responsibility (AR), which is a pilot supplement to the Cornell Code of Academic Integrity (AI). For details about the AR process and how it supplements the AI Code, see the AR website. Violations of the Code of Academic Integrity, especially plagiarism, may result in an F in the course.
Copyright
Course materials posted on this website, Ed Discussions, and Gradescope are intellectual property belonging to the authors of the materials. Students are not permitted to buy, sell, trade, or share any course materials without the express permission of Matt. Such behavior constitutes academic misconduct. Public availability does not imply permission to redistribute.
You hold the copyright on original work that you create in this course. Note that assignments include significant “skeleton” code authored by the course staff and licensed for use only in the context of this class, unless otherwise indicated. It is generally not permissible to share code for completed assignments. If you want to showcase your new skills in a portfolio, be creative and apply them in a novel setting.
Accommodations
Our primary goal is to establish an inclusive learning environment that is accessible, comfortable, and supportive of everyone’s physical, mental, emotional, and learning needs. Services and reasonable accommodations are available to persons with temporary and permanent disabilities when conditions cause barriers to equal educational opportunity. Student Disability Services (SDS) determines the eligibility of students to receive accommodations and works collaboratively with the student, faculty, and staff to recommend appropriate accommodations. If you believe you require an accommodation, please reach out to SDS at sds_cu@cornell.edu or by going to their office at Cornell Health as soon as you can. To have adequate time to arrange your approved accommodation(s), you should request your SDS accommodation letter no later than the add/drop deadline for the semester.
Beyond formal accommodations, if you ever have concerns about your learning, grades, or progress in the course, if you get sick, or if you are facing other challenges and need help connecting with the right resources, please don’t hesitate to reach out to Matt.
Exam Accommodations:
In addition to requesting your accommodation letters, this course is participating in the Alternative Testing Program (ATP). All exams will be centrally managed and supported by the ATP Testing Coordinator in the Office of Student Disability Services. You will receive communication about the time and location of the exam in your SDS student portal and via email from sds-testing@cornell.edu.
Inclusivity
Students in this course come from a variety of backgrounds, abilities, and identities. We support an inclusive learning environment where diversity and individual differences are understood, respected, appreciated, and recognized as a source of strength. It is expected that students in this class will respect differences and demonstrate diligence in understanding how other people’s perspectives, behaviors, and worldviews may be different from their own. Please contact Matt if you observe any behavior (from other students, TAs, or instructors) that runs counter to our goal of inclusivity.
Attestation
By registering for this class and accessing its materials, students agree to abide by University, College, Department, and Course policies.