CPSC 120 Data Structures and Algorithms Fall 2023

CPSC 120 Policies

On this page:


Course Communication

Assignments, handouts, and materials from class will be posted on the course web page, specifically the schedule page. You will need to check this page regularly to make sure you stay up-to-date.

Some material may be posted on Canvas. There will always be a reference to the existence of this material on the schedule page so that you don't need to also check Canvas for updates.

Email will be used for individual communications and for time-sensitive announcements, so you should also regularly check your HWS email account.


Classroom Conduct

Learning is much more effective if you are engaged in the material. You should come to class prepared for the day's activities, and should be on task during class - please do not surf the web, text, play games, do assignments for other courses, etc during class time. Also please do not wear headphones during lab - it makes it difficult to interact with you, and you may miss important announcements to the class about assignments.

You are encouraged to bring a laptop to class for use during group activities. Outside of these activities, note taking on paper is encouraged as it avoids the distraction of electronic devices; if you do use a laptop or other device to take notes, you are encouraged to turn off notifications and close other applications to reduce the temptation of those distractions.

Arriving late, leaving early, and coming and going during class is distracting to me and your fellow classmates. Please endeavor to arrive on time, and to take care of any necessary business before or after class so you can be present for the whole class period. If you know in advance that you will need to miss part or all of a class, please let me know.

Disruptive classroom behavior will negatively impact your participation grade.


Coding Standards

Following reasonable conventions is important for the readability of your programs. These will be introduced in class, and are summarized in the course coding standards for easy reference. Not following these standards may result in points lost even if your program otherwise works correctly.


Attendance and Making Up Work

You are expected to be on time for all class and lab sessions, and to be present and engaged in the course for the full period. Any absence, whatever the reason, means that you miss out on discussions and activities that take place in class. This puts a greater burden on you to catch up, and students who regularly miss class often end up not doing as well in the course. In addition, announcements are made at the beginning of class, and late arrivals may miss important information.

However, it is understood that sometimes there may be circumstances when you are unable to attend class. It is especially important that you not attend class and expose others to illness if you are sick.

Excused absences are absences due to official Colleges activities (e.g. sports competitions, musical performances, debate competitions, field trips), academic events (such as presenting at or attending a conference), religious observances, illness, or personal or family emergencies. A reason must be provided in order for such an absence to be counted as an excused absence. (Note that providing a reason does not automatically make an absence excused - it must also be one of the reasons listed above.)

Missing class for other reasons - such as job interviews, sports practices, helping out a friend, leaving early for a vacation, oversleeping, or being too busy - is considered to be an unexcused absence. Any absence for which no reason is provided is automatically considered to be unexcused.

  • There is no direct penalty for three or fewer absences, whether excused or unexcused.

  • There is no direct penalty for excused absences, regardless of the total number of absences. However, missing more than three classes, or more than one in a row, puts you at greater risk of falling behind. This means it is important for you to be proactive about planning for absences in advance when possible and catching up promptly afterwards.

  • If you have more than three absences (whether excused or unexcused), any unexcused absences will negatively impact your participation grade - in-class activities cannot be made up, and you are less engaged in the course if you are not present in class.

If you cannot attend class, please let me know as soon as possible. You are responsible for acquiring any notes, handouts, assignments, and other material missed as the result of an absence - make sure that you check the schedule page for new assignments and materials from class, complete any missed readings, and come to office hours if you have any questions or need help with any aspect of the material. This should be done promptly to avoid falling behind. In addition, every effort should be made to hand in assignments on time, even if you are absent from class that day. If a last-minute emergency prevents you from handing in completed work on time, the assignment will be accepted late without penalty only if arrangements are made as soon as possible to get the assignment handed in. If you need more time to complete the assignment, then you need an extension (see below). A missed exam can only be made up afterwards if the absence is excused and not foreseeable (e.g. illness or other last-minute emergency). For planned absences, arrangements for rescheduling the exam must be made in advance.


Late Policy, Extensions, and Rescheduling Exams

There is a steady workload throughout the course, and foundational topics introduced earlier are used and built on later in the course. Both of these mean that it is important to stay on track - it is difficult to catch up if you get behind, and every effort should be made to hand in assignments on time. However, as with attendance, it is understood that there may sometimes be extenuating circumstances which make meeting every deadline difficult.

Late days: Three late days may be applied to labs and projects. These are available in whole-day increments, with the exception that something handed in by midnight on the due date is considered only a half day late. (For example, a lab due at 1:20pm on Friday is half a day late if turned in by midnight that night, one day late if turned in any time between 12:01am and midnight Saturday, two days late between 12:01am and midnight Sunday, etc.) College recesses aren't counted, so, for example, a lab due at 1:20pm on the Friday before fall break is only one day late if turned in any time between 12:01am Saturday and midnight Wednesday night. No reason is needed to utilize late days, but you must email me before the due date to say that you plan to use late day(s) and to indicate when you will hand in the assignment.

Extensions: If you have exhausted your late days and don't think you can get something handed in on time, see me as soon as possible to discuss a timeline for getting back on track. Extensions are expected to be rare and to accommodate specific situations (such as illness); if you are struggling with the material, seek help promptly at office hours and/or Teaching Fellows so that you don't fall behind.

Rescheduling exams: If you will have an excused absence on the date of an exam, please see me as soon as possible (before the exam date!) to discuss options for rescheduling. (Note that final exams can only be rescheduled in the case of religious observances, post-season athletic competition, or three exams scheduled on the same day.) A missed exam can only be made up after the fact if the absence is excused and not foreseeable (e.g. illness or other last-minute emergency). Arrangements for making up the exam must be made as soon as possible.

No work will be accepted after the end of the Registrar-scheduled final exam time slot except in the case of an incomplete. Late days may not be used to extend this deadline.


Academic Integrity and Collaboration

The HWS Principle of Academic Integrity, stated below, governs all of the work completed in this course. From the HWS Catalogue: (available online at http://www.hws.edu/catalogue/policies.aspx)

Principle of Academic Integrity

The faculty of Hobart and William Smith Colleges has oversight of the curriculum and the classroom experience, and insists that students undertake all academic exercises with the utmost honesty and integrity. This principle of academic integrity lies at the heart of our learning community and forms the foundation for everyone's academic efforts.

Starting with adherence to the principle of academic integrity, the individual student bears responsibility for his or her own education and must undertake all academic work with complete honesty and integrity. As well, each student must do his or her best to assure that this principle extends to all others in the community. Categories of academic work covered by the principle of academic integrity include, but are not limited to, the following:

  • Examinations: Giving or receiving assistance during an in-class or take-home examination, quiz, or any other academic exercise, except as specifically authorized by an individual course instructor, violates this principle.
  • Papers: The presentation or reproduction of ideas, words, or statements of another person as one's own, without due acknowledgment, is considered plagiarism and violates this principle.
  • Library Use: Failure to sign for materials taken from the library, destruction or theft of any library materials, and similar abuses of library privileges infringe upon the rights of other students to fair and equal access and violate this principle.
  • Reports and Laboratory Exercises: Giving or receiving unauthorized assistance and the fabrication of data or research results violate this principle.
  • Computer Use: Any deliberate attempt to prevent other users' access to computer services, deprive them of resources, or degrade system performance violates this principle. The use of programs or files of another computer user or the use of another person's account number or password without permission also violates this principle. Failure to attribute the source for any information or writing derived from any computer source (database, website, internet, etc.) and incorporated in any academic work submitted is also a violation.
  • Advising and Registration Forms: Forging an adviser's signature or altering any signed document will result in the student's de-registration. The student will not be allowed to re-register until the adviser has approved any changes. Any student suspected of forgery of any faculty or administrator signature may face disciplinary action by the student's dean or the Committee on Standards, a faculty, student, and administrative committee charged with enforcing the academic and behavioral expectations of the Colleges' community (for more information about the Committee on Standards, please review the Disciplinary Process section, Hearing Bodies of the Community Standards).

Academic dishonesty is determined in every case by the evidence presented and not by intent. Questions of intent and circumstances under which an infraction occurred may be considered in determining a sanction.


The following is an excerpt from a post by Alex Gourevitch, a professor at Brown University:

The point of writing assignments in college is not the product but the process. The process involves having to face a question, work out what you think, roll it over in your mind, make false starts, try again, and, after all that, develop your own thinking. If you take the process at all seriously then you should come out a little different at the end than at the beginning. And if it is a process you have to engage in repeatedly, over the course of college, then you graduate more than a little different than when you entered.

It is true that the writing process happens to issue in a product: the essay. And yes, you only go through the process because you have to produce the essay, and you feel pressure to produce a decent essay because you know that is what will be graded. But it's still not the product that is the point. It is the development of those capacities for understanding questions, considering possible answers, working with and through language for yourself. Those are abilities of general value in life, not just in a specialized academic setting. ... Which again, is why the particular product is not really the point, at least not in college.

What Prof. Gourevitch says about writing papers is equally applicable to programming - just substitute "program" for "essay". The core content of this course is the process of going from an idea to a working program, which includes not just the syntax and semantics of a particular programming language, but also a way of thinking, of organizing, of breaking down large problems into smaller tasks. Success means gaining proficiency with that process, not simply turning out programs, and academic integrity requires that the programs you hand in reflect your engagement with that process.

So, what does that all mean for this course?

When it comes to programming assignments, copying part or all of someone else's solution is expressly prohibited and it is never acceptable to be in possession of someone else's program or solution before you have handed in your own. This includes both computer files and paper copies, and also solutions produced by generative AI (such as ChatGPT and Codex), "homework help" or "study aid" sites (such as Chegg and Course Hero), and sites where you post a homework problem or question and solicit answers from others. Decompiling or reverse-engineering someone else's code (including provided code) is also prohibited.

The course materials (including provided links or references to documentation and other materials) along with office hours and the Teaching Fellows should be your primary resources. However, unless it is otherwise prohibited (such as on exams), you can use other materials (such as reference books or websites) as technical references to learn about a particular topic and for examples, not solutions. An example illustrates a technical point or problem-solving strategy, applied to a different problem instance than the one you are trying to solve. An example can't be used as-is to solve your specific problem, but can be adapted to address some aspect of the problem. For example, an example demonstrating the proper syntax for a while loop is OK to use when writing a program which involves a while loop (as long as the point of the problem isn't to write exactly the while loop given in the example). A solution gives a significant amount of the answer to your particular problem (or an extremely similar problem). Quantity is relevant here - something might seem like just an example because it doesn't solve the exact problem, but if a single source covers a lot of your task, it becomes more of a solution. Using someone else's code "as a guide" to completing your own is using it as a solution, not an example, even if you make some changes.

On some assignments you may discuss ideas with other students in the course as well as get help from the instructor and Teaching Fellows. These assignments are for learning and practice, and it can be very productive to figure things out with your peers. However, these are still individual assignments and it is easy to overestimate how much you yourself understand when watching someone else do something. You must always make the first attempt on a task yourself and you may not work with other students to produce a solution unless it is a designated group assignment. Limit your discussions with other students to ideas (e.g. how you might break down a larger task into smaller pieces), examples (e.g. "I don't quite get while loops - can you show me an example of when to use one?"), and specific technical questions (e.g. "how do you declare a variable?"); if you need help with specific details of a particular program or with the program code itself (e.g. debugging), go to office hours or the Teaching Fellows.

Specifically:

  • Exams measure your individual level of mastery of core concepts and fundamentals. They are to be completed solely by the student whose name is on the paper. Only resources allowed in the exam instructions may be used, and the only person you may discuss exams with is the instructor.

  • Projects complement the exams - while they are an opportunity to practice and learn, they are also an opportunity to demonstrate what you can do. Office hours should be your primary resource if you want to discuss ideas or need help. You may get help with debugging (and only debugging) from the TFs but may not discuss any aspect of the project with other students. You may use other materials (such as reference books or websites) as technical references, but remember examples not solutions and you must provide a reference in your program's comments for any outside source that you use.

  • Labs are a chance to practice the material and gain understanding. You may discuss ideas with other students in the course, get help from the instructor and Teaching Fellows, and use other materials (such as reference books or websites) as technical references as outlined above. However, anything you turn in for a grade must be your work - the idea is that you can get help with the process of constructing programs, but you may not work with others to actually write the program.

In all cases, you must fully understand the help you receive. (You should be able to explain your solution to someone else.) You should never just be writing down code that someone else wrote or told you to write.

A first offense may result in a warning, depending on the nature of the infraction. A second offense (and more severe first offenses) will result in a 0 on the assignment or portion of the assignment. Additional offenses are grounds for failure in the course. In all cases, the situation may also be referred to the Committee on Standards.

Ignorance of the policy and desperation ("It was the night before it was due and there wasn't anyone else to ask!") are specifically not excuses for violating academic integrity policies. If you are having trouble with the course material, come to the instructor! It is never advantageous to "borrow" someone else's solution, and the time spent trying to disguise this "borrowing" is far better spent getting help.


Being Successful

There is a steady schedule of assignments and the course material is cumulative - don't fall behind! Review each day's material soon after class, start on assignments early (it is better to spend some time each day than to set aside a large block of time the night before the assignment is due), ask questions, and take advantage of office hours and Teaching Fellows if you are stuck on something or want to discuss ideas. Letting a point of confusion slide can quickly snowball and then it is very difficult to catch up.

Note taking on paper is encouraged as it avoids the distraction of electronic devices and the act of handwriting helps with retention of information. If you do use a laptop or other device to take notes, you are encouraged to turn off notifications and close other applications to reduce the temptation of those distractions. Either way, anything that appears on the projector screen - slides or code - will be posted on the schedule page soon after class, so you don't need to copy down all of that material in your notes. I recommend that you (only) make note of key ideas and examples during class and then rewrite your notes, filling in other details and relevant information, soon after class. This allows you to pay more attention during class, increases your engagement with the material, and helps you identify what you need to ask questions about.

Getting help:

  • The primary resources for this course are the textbook, course website, materials provided in class, and office hours. Start with these! (If you can't make the scheduled drop-in office hours, email me to arrange another time.)

  • An important additional resource is the Teaching Fellows. Note that the TFs are not necessarily familiar with the details of Processing or the specific programming patterns discussed in class, but they should still be able to provide some assistance with how to approach solving problems and tracking down bugs. You can help by having the relevant notes and handouts available.

  • For more general help, such as with writing, study skills, or time management, you are encouraged to check out the Center for Teaching and Learning (CTL):

    At Hobart and William Smith Colleges, we encourage you to learn collaboratively and to seek the resources that will enable you to succeed. The Center for Teaching and Learning (CTL) is one of those resources: CTL programs and staff help you engage with your learning, accomplish the tasks before you, enhance your thinking and skills, and empower you to do your best. Resources at CTL are many: Teaching Fellows provide content support in 13 departments, Study Mentors help you manage your time and responsibilities, Writing Fellows help you think well on paper, and professional staff help you assess academic needs.

    I encourage you to explore these and other CTL resources designed to encourage your very best work. You can talk with me about these resources, visit the CTL office on the 2nd floor of the library to discuss options with the staff, or visit the CTL website.

    Study Mentors: The CTL resource especially valuable to students either just starting college OR adjusting to the demands of their choice of major is the Study Mentor program. Study Mentors engage directly with each student in the process of adjusting to new academic demands: they help you find the time you need for both your academic and co-curricular activities, and can help you find strategies to accomplish the tasks in front of you and enhance your reading and study time. Study Mentors may be especially important for those of you who are involved in many activities, work on or off campus, are studying for Teaching Certification, graduate school exams, or prepping for fellowships, or who have one or more unusually demanding courses on your schedule. To meet with a Study Mentor, make an appointment via StudyHub on the CTL website. You can also contact Ingrid Keenan, x3832, keenan@hws.edu, or drop in at the CTL office on the 2nd floor of the library.

  • There are a number of resources on campus if you are struggling with mental health or other issues. Contact the Counseling Center, or reach out to me, your dean, or anyone else you feel comfortable talking to.


Office of Disability Services

It is the policy and practice of Hobart and William Smith Colleges to create inclusive learning environments. If you are a student with a disability and there are aspects of the instruction or design of this course that present barriers to you, please begin the process of registering with Disability Services by completing the Intake Form on Accommodate (click here).

Students are always welcome to contact the Disability Services team: Shanelle France, Associate Director of CTL for Disability Services and Thom Mascia, Disability Services Accommodation Manager are the main contact staff for Disability Services.
Email: CTL@hws.edu
Phone: 315-781-3351

Additional information can be found on the Disability Services webpage.