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/93906/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 instance: https://www.gradescope.com/courses/1220158. You should have already been added to the Gradescope instance for this course. If you do not have access, please reach out to an instructor so we can get you added.
Moodle: Moodle 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 are trying to do.
The code that you have written that is not working.
What troubleshooting or debugging steps you have already taken.
If you are getting an error message, include the exact text of the error message and indicate where in your code the error occurs.
If your code is not working as you expect, but you are not getting an error message, indicate what output you are expecting and what output you are actually getting.
Note
We encourage you to post on Ed for general questions, as you can post anonymously and get help from your peers and the TAs. You can also make private posts on Ed as described above.
However, if you have a question you specifically want to ask the instructors only, you can email us at: comsc205-instructors@mtholyoke.edu
Please use this email address intead of emailing Sage or Tony directly, as this makes it easier for us to best coordinate support for you.
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.
Tip
The labs will also get you started on the programming assignments for the week!
Written Assignments#
These assignments conducted through Gradescope will let you apply the course content in a way that will serve as the first steps towards the larger programming assignment. The intent of these assignments is to be able to identify and resolve any confusion before embarking on the programming assignment. Each written assignment should take ~1-2 hours to complete.
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. Each programming assignment should take ~5-8 hours to complete.
Tip
If you find yourself taking much longer than these estimates for the written and programming assignments, please find some time with the teaching staff during office hours and we can get you back on track!
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 written assignments.
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 |
% |
|---|---|
Written assignments |
20% |
Programming assignments |
30% |
Labs |
11% |
Reflections and feedback |
4% |
Midterm exam |
15% |
Final exam |
20% |
Due dates#
Written assignments will typically be released on Thursdays and due on Thursdays.
Labs are intended to be submitted at the end of the lab period and are due at 5pm the day of your lab section.
Programming assignments will be introduced in lab. They will typically be released on Tuesday and due on the next Sunday (12 days later).
The above general due dates may change as the semester progresses, and we will keep the course schedule updated on the course website!
Late Submissions and Late Days#
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. Therefore, there are no late days for lab assignments.
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.
Written Assignment Drop Policy#
The lowest non-zero written assignment will be dropped from your grade. Thus, you should always try to submit something for every assignment!
Written Assignments#
There are no late days for written assignments. They are expected to be submitted on time so that we can give you timely feedback on how well you are understanding the course material. We emphasize that these assignments should not take more than 1-2 hours, and that we have the drop policy above if something comes up during the semester.
Programming Assignments#
You have 5 late days for programming assignments to use over the course of the semester.
They may be used for any reason and you do not need to ask permission to use them.
You can ask an instructor of your section 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.
Extensions will 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 initial submission, the above late policy applies. You may resubmit a programming assignment within two weeks of the original due date. If you’d like to do so, you must reach out to an instructor 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 80% of the original credit.
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:
Create study or accountability groups.
Clarify ambiguities or vague points in class handouts, textbooks, assignments, and labs.
Discuss assignments at a high level to understand what is being asked for, and to discuss related concepts and the high-level approach.
Outline solutions to assignments with others using diagrams or pseudo-code, but not actual code.
Get or give help on how to operate the computer, terminal, or course software.
Get or give some debugging help. Debugging includes identifying a syntax or logical error but not helping to write or rewrite code.
Warning
If you have engaged in any of the above acceptable collaboration activities for an assignment, you MUST acknowledge the classmates or TAs with whom you spoke. This acknowledgement should be placed in the README file you submit with your assignment.
If you are uncertain whether something is allowed, it is your responsibility to ask a teaching staff member.
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:
Look at resources for a broad topic such as a programming language. This includes information on syntax, built-in Java methods, and error messages.
Use or adapt code from class.
Search for and adapt general concepts related to the programming problem you’re trying to solve IF you provide a link to the source you are using (as a comment or in your README).
However, it is NOT okay to:
Directly copy any code for specific programming or written problems.
Turn in any part of someone else’s work as your own (with or without their knowledge).
Share your code or snippets of your own code online, such as in a public Github repository.
Use resources during an exam beyond those explicitly allowed in the exam instructions.
The general rule of thumb is that if you are looking for general knowledge, searching is ok. If you are looking for an answer to a specific homework question, that is not ok.
For example, suppose you are writing a program and you get a compiler error message that you do not understand. Searching for an explanation of the error message is ok. Suppose that you need to call a method and need more information on its parameters or exactly what it does. Searching for information on how to use the library function is ok. Posting a question on StackOverflow asking for help in getting your code to compile or run correctly is not ok.
Suppose a homework assignment asks you to write a program that plays Sudoku. Searching for Sudoku rules is ok. Searching for code of programs that play Sudoku is not ok.
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:
MHC Honor Code
I will honor myself, my fellow students and Mount Holyoke College by acting responsibly, honestly and respectfully in both my words and deeds.
LLM / AI Policy#
Large Language Model (LLM)-based assistants, like ChatGPT, Copilot, 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.
Warning
Therefore, it is against course policy to use any LLM-powered tool to generate code for you.
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.