Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Course Policies

Communication

Office Hours: Generally, answering questions about the assignments is much more efficient in person. As such, please ask questions about the assignments during office hours or class whenever possible.

Ed Discussion: We will primarily use Ed for discussion outside of class and office hours. We will also be using Ed to post announcements and other course updates. The system is highly catered to getting you help efficiently from classmates and the course staff. Rather than emailing, we encourage you to post your questions on Ed.

The following is the link to the course’s Ed Discussion board: https://edstem.org/us/courses/104870/discussion

Gradescope: We will use Gradescope for all assignment submissions. For assignments that have a autograder, you will be able to see your score and feedback immediately, and there will be no submission limit. Thus, it is in your best interest to submit early and often!

The following is the link to the course’s Gradescope page: https://www.gradescope.com/courses/1379985. You should have already been added to the Gradescope page for this course. If you do not have access, please reach out to an instructor so we can get you added.

Canvas: Canvas will only be lightly used in the course, primarily for hosting slide PDFs and source code. Instead, look to the Ed Discussion board for announcements, Gradescope for assignment submissions, and to this course website for the content and assignments.

Private Ed Posts

A private Ed post can be used to answer more specific questions about your work, especially if you do not want to share the details in a public Ed post.

If you have a question about a program you are writing, whether we are meeting in person or you are sending us a message, it is important to be specific about the problem you are encountering. In particular, you should be clear about:

What You’ll be Doing

Reading

We will be providing freely accessible online reading material at https://comsc205.github.io/readings. These readings will supplement and reinforce the material covered in lecture.

In-Class Activities

In most lectures, we will have in-class activities such as worksheets or PollEverywhere questions, often done in a group with one or two other students. These activities will give you a chance to self-assess your understanding of the material and work collaboratively with other students. This work is intended to help you master the material and is not graded.

Labs

Lab time will be devoted to working on questions and hands-on programming exercises with the support of Sage and TAs. These will be your first chance to put the new ideas from lecture to practice in code. Lab time is an opportunity for exploration and learning.

Concept Checks

These assignments conducted through Gradescope will let you apply the course content in order to check your understanding of the course material. The intent of these assignments is to be able to identify and resolve any confusion, and provide practice for the question styles that will be seen on the exams in the course.

Programming Assignments

Programming assignments will ask you to apply the algorithms and data structures from the lecture and lab to solve specific problems. You will practice planning out a solution, then writing, debugging, and testing your program.

Written Tests

There will be a midterm and final exam to test you on the material that you have been learning and practicing in prior work. These will be pencil-and-paper tests focusing on the concepts, similar to the questions done on worksheets and concept checks.

Reflections and Feedback Surveys

Throughout the semester, we will periodically check in to ask what is going well for you, what difficulties you are encountering with the material, as well as how you are growing and learning throughout the course. These reflections and surveys will also be an opportunity to let us know about any challenges that you may be facing, such as health, technological, or other issues, so that we can work together on a plan to get you back on track. Reflections and feedback surveys will be graded on good-faith effort and completion.

Assessment

Component%
Concept checks10%
Programming assignments45%
Labs12%
Reflections and feedback3%
Midterm exam12%
Final exam18%

Late Submissions and Grading Policies

Lab Assignments

We expect that everyone attends their designated lab each week and submit their lab assignment on time. The lab assignments will be graded on good-faith effort, no matter how far you get during lab -- our goal is to get you in lab and working alongside your peers with the support of Sage and the TAs. Labs are intended to be submitted at the end of the lab period and are due at 5pm the day of your lab section.

However, we also understand that there may be times when you are unable to attend lab due to illness or other extenuating circumstances. If you are planning on missing lab, please email the instructors ahead of time so that we can work together on a plan for you to get the lab assignment done on your own time.

Concept Checks

There will be six concept checks throughout the semester, each worth 2 points. You’ll notice that the total value of the concept checks is 10% of your overall grade, which means there is a 2 point buffer for any missed or incorrect submissions. For example, if you completely miss one concept check, you could still earn full credit for the concept checks if you score 100% on the remaining five. In another example, you could score 50% on two concept checks and still have the possibility of earning full credit for this portion of the course. The intent of this grading policy is to provide you with flexibility throughout your learning process this semester.

We expect Concept Checks to be submitted on time so that we can give you timely feedback on how well you are understanding the course material. As a result, there are no late days for concept checks. We emphasize that we have the above buffer if something comes up, and the instructional staff is always available to help out if you have extenuating circumstances.

Programming Assignments

Part 1 checkpoints

Many of the programming assignments are broken up into two parts. You will have approximately 1 week each to complete the first and second parts of the assignment. Each part of the assignment will be introduced in lab on consecutive weeks, so it is important to stay on top of the material.

To facilitate this, the first part of the assignment will have a checkpoint submission due before lab that will be “lightly” graded for best effort completion. These checkpoints must be submitted on time by the due date to receive credit. This is to encourage you to get started on the assignment early so that you come to lab having familiarized yourself with the assignment and having made some progress.

Part 2 final submissions

After the part 1 checkpoint, you will submit both part 1 and part 2 files for the final submission. You will have 5 late days over the course of the semester to use for finalized programming assignment submissions that include both parts of the assignment. They may be used for any reason and you do not need to ask permission to use them.

You can ask an instructor at any point during the semester for the number of late days you have remaining. After these late days have expired, you will lose 10% of the assignment’s value for each day that it is late.

Additional extensions may be given in the event of extenuating circumstances, such as illness or an unexpected emergency. If this is the case, please reach out to the instructors as soon as possible so we can work together on a plan and timeline for any make-up work.

Programming Assignment Resubmission

On your finalized submission of a programming assignment, the above late policy applies. In addition, you may resubmit a programming assignment within one week after an initial grade is released. If you’d like to do so, you must reach out to the instructors indicating your plan to resubmit, and also include in your submission a short written reflection on what you did differently in your resubmission. Resubmitted programming assignments will receive up to half of the points deducted back from the original submission.

General Course Policies

Attendance and Participation

It is important that you attend lecture and lab to engage with your peers and the course material. However, we also understand that unexpected situations sometimes arise. Ultimately, we expect that you communicate with us about what is happening, especially if you need to miss several classes.

In general, if you miss class, you should find out from a classmate what you missed and then contact the teaching staff if you need additional help. Please let us know about any extended absences so that we can work together to make a plan to make-up any missed work.

Collaboration

Collaboration can help you better understand course material. We encourage you to collaborate with other students in the following ways:

Online Resources

The Internet is a useful resource when learning to solve computer science problems, and in some cases you will be expected to use reference material found online (e.g., documentation for a programming language or library). It is okay to:

However, it is NOT okay to:

As the situation arises, we will clarify more specific expectations or deviations from this policy, but it is always your responsibility to ask if you are unsure.

Academic Integrity

In order to protect the integrity and value of our work together, we expect that all of your work in this class will comply with the MHC Honor Code:

LLM / AI Policy

Large Language Model (LLM)-based assistants, like ChatGPT, Claude, and Gemini are powerful tools that are having a profound impact across industry and society. These tools can assist in many aspects of programming such as through providing suggestions or even generating code snippets. However, one of the key shortcomings of these models is that they are prone to (often confidently) incorrect output. In order to use these technologies effectively, you must first have a strong conceptual foundation in order to identify and correct any mistakes they may make.

As you are still early in your computer science learning journey, one of the goals of this course is to help you develop the skills to create well structured programs and reason through programming design choices. This hands-on practice is essential for building your own understanding of the subject. Using LLMs to generate code not only gives you an unfair advantage over your peers but also robs you of the instructional value and the satisfaction that comes from writing and debugging your own code.

This policy is not just about fairness or compliance; it is primarily about your development as a budding computer scientist. Learning to code independently will enable you to understand the underlying principles of data structures, preparing you for more advanced topics. By mastering these fundamentals now, you will be better equipped to use tools like LLMs effectively later in your career.