CPSC 120 Principles of Computer Science Fall 2025

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 to see if something new has appeared.

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 or lab time. Also please do not wear headphones or earbuds during individual or group work times — it makes it difficult to interact with you, and you may miss important announcements to the class about assignments.

The classroom computers are to be used only when directed for class activities. Handwriting notes, whether on paper or a tablet, rather than typing has many advantages for retention, including making you think about the material to determine what to write down instead of simply trying to capture everything verbatim. Keep in mind that everything that appears on the screen in class — slides, examples, and code written in class — will be posted on the schedule page after class so that you do not need to try to copy it all down. 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 both physically and mentally 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 engagement grade.


Assignments and Evaluation

Assignments

Readings: Readings provide an initial exposure to new material before class, and are a supplement and reference for material covered in class. When reading, you should make an effort to understand the reading and the examples, which means that you may need to read over things multiple times. Trying some of the exercises in the book is also valuable as that can reveal that something that seemed clear when you read about it isn't actually that clear. Core readings are to be completed for the class period where they are listed on the schedule page; those labelled "supplemental" or "optional" can be read after class. (Supplemental readings are still expected; optional readings are encouraged for greater depth but are not required.)

In-class Exercises: Many class periods will include hands-on activities to practice the day's material. In-class exercises are graded on a 0 / – / ✓ scale according to effort rather than correctness.

Labs: Hands-on practice is essential for learning and mastery, and labs provide an opportunity to apply the material for yourself. There will be weekly lab assignments consisting of programming and related exercises for the core topics of the course. Your time in lab will be most effective if you review the material from the previous few class sessions before lab and come prepared with any questions that may have arisen.

Topics Problems: Each of the applications topics covered in the course will be accompanied by some programming problems, similar to lab assignments.

Capstone Project: A final capstone project will provide an opportunity to create a larger program bringing together all of the material covered in the course.

Exams: There will be two midterm exams and a final exam. The midterms will be held during regular class periods and the final will be in the registrar-assigned final exam period. These will be written exams (not on the computer); more details will be provided closer to each exam. Dates and times are posted on the schedule page — be sure to consult this schedule before making travel arrangements!

Assessment

Proficiency-based grading will be used in this course. This means that instead of accumulating points by completing assignments, you will need to demonstrate a certain level of mastery of the course material.

Grading Levels: There are five grading levels for individual concepts and skills:

  • No Attempt — No work was submitted, or there was no discernable attempt to address the task.

  • Beginning — An attempt was made, but it fails to demonstrate understanding of the core concepts required. Explanations reflect major misconceptions or confusion. Major errors interfere with meaning or execution; code doesn't run or barely runs.

  • Developing — Partial understanding of the content or skill is demonstrated. There are some correct ideas but understanding is fragmented or incomplete. Programs contain some correct elements but errors are still present.

  • Proficient — Solid understanding and consistent application of the concept or skill is demonstrated. The student can explain or apply the concept correctly in typical contexts. Appropriate constructs are used. Code is mostly correct with only minor issues that don't affect core functionality.

  • Advanced — A strong grasp of the material is demonstrated. Concepts can be applied in new or complex situations. Code is well-structured and exhibits good programming style.

Programming tasks will also be assessed on how well the specifications are met — does the program work correctly and do what it is supposed to do. This is graded on a scale of 0-10.

Demonstrating Proficiency: In most cases, demonstrating proficiency for a standard means achieving the level of "proficient" or "advanced" twice in different forms of proctored assessment (presentation meetings and exams). In cases where something is only assessed in one form, it is only necessary to achieve "proficient" or "advanced" in that form. For topics problems, it is necessary to achieve an average score of 7 or better for the topic.

Second Chances: You may revise and resubmit labs, topic problems, and the project once each. Resubmits are due within three weeks of when an assignment is handed back to the class or by the final end-of-semester deadline, whichever comes first. (A few things late in the semester may not have second chance opportunities or only abbreviated opportunities due to lack of time.) If you do not achieve "proficient" or better the first time for standards assessed in a presentation meeting, you will need to schedule a redo presentation meeting.

Final Grades: The course material is divided into three groups — core concepts, programming elements, and topics.

  • A C- or better requires demonstrating proficiency in all of the core concepts and most of the programming elements, and a 5 or better score for meeting specifications for both labs (average over all lab exercises) and the capstone project.

  • A B- or better requires demonstrating proficiency in all of the core concepts, all of the programming elements, and at least three topics, and a 7 or better score for meeting specifications for both labs (average over all lab exercises) and the capstone project.

  • An A- or better requires demonstrating proficiency in all of the core concepts, all of the programming elements, and at least five topics, and an 8.5 or better score for meeting specifications for both labs (average over all lab exercises) and the capstone project.

Extra credit: There will be opportunities on the project and some labs to go above and beyond the requirements of the assignment and/or tackle some harder problems. You are encouraged to take advantage of these opportunities to challenge yourself! Extra credit can raise your final grade up to 1/3 of a letter grade (e.g. from a B to a B+). It must be presented in a presentation meeting to count.

Attendance and Participation: Attendance and participation in in-class activities are important factors in being successful in the course. Poor attendance can result in up to 1/3 of a letter grade deduction in your final grade; see the attendance policy below for details. More than a handful of non-✓ scores on in-class exercises can also result in up to a 1/3 letter grade deduction regardless of the number of absences.

Engagement: Learning isn't a passive activity where you sit back and watch someone else do things — you need to work with the material by thinking about it, trying to apply it, asking questions about it, and so forth, and a lack of engagement often translates into poorer performance on assignments and exams. Being fully engaged in the course means being prepared for class by reviewing the previous material and doing any assigned reading, being on task during class and lab, making meaningful contributions to class by asking or answering questions, and going to office hours and Teaching Fellows.


Attendance, Making Up Work, and Rescheduling Exams

You are expected to be on time for all class meetings, and to be present and engaged in the class for the full period. ("Engaged" means paying attention and participating when appropriate, not just being physically present but doing something else.)

However, while attending and participating in class should be a high priority, it is understood that there are occasionally circumstances when you may be unable to attend class/lab. It is especially important that you not expose others to illness if you are sick.

  • If you have an unavoidable conflict with the date of an exam, you must notify me as soon as possible and make arrangements beforehand. Note that only your dean can reschedule the final exam. A missed exam can only be made up after the fact in the case of a last-minute emergency that prevents you from attending class. You must notify me of the situation as soon as possible, and may not discuss any aspect of the exam with anyone else.

  • If you miss class, you are responsible for making up missed content — make sure that you check the schedule page for new assignments and materials from class, 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 — much of the course material is cumulative, and we move steadily through it.

Any absence, no matter the reason, puts a greater burden on you to catch up on missed content and means that you miss out on the discussions, activities, and opportunities for participation and practice that take place in class. Students who regularly miss class often struggle to catch up and consequently end up doing poorly in the course.

  • Missing more than six classes will result in a 1/3 letter grade deduction on the final grade (e.g. an A- drops to a B+ or a C drops to a C-).

  • Missing more than three classes may result in up to a 1/3 letter grade deduction on the final grade unless you are proactive about communication regarding your absences (including notifying me of an upcoming absence as soon as you know about it), diligent about making up missed content, and more engaged in other aspects of the course (participating in class, asking questions, coming to office hours, etc).

Repeated late arrivals or early departures may be counted as an absence.


Late Work and Extensions

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. The deadlines are where they are for a reason!

However, as with attendance, it is understood that there may occasionally be extenuating circumstances which make meeting a particular deadline difficult.

Late handins: Late work is not accepted. Revise and resubmit provides an opportunity to make up for deficiencies in an initial handin, but it is not meant as a de facto extension — you must hand in something by the deadline in order to be eligible for revise and resubmit for a particular problem.

Extensions: Four extension tokens are available — tokens allow bypassing the "must hand in something" requirement for revise and resubmit, allowing a first handin up until the resubmit deadline. One token applies to a single exercise; multiple tokens are needed for an entire lab. One token applies to: all of the non-presentation exercises in one lab, the presentation exercise in a lab, or the project. (Two tokens are needed for an entire lab.) You do not need to provide a reason to use a token, just email me before the deadline to let me know that you want to use a token. (Note that using an extension token on a presentation problem may require rescheduling the presentation meeting.)

Extension tokens and late handins are meant to allow for the occasional need for a little extra time on a particular assignment. If you are struggling with the material, seek help promptly at office hours in order to stay on track.

Major disruptions: If a situation arises that has (or has the potential to have) a significant and/or long-term impact on your academics, see me as soon as possible to discuss managing your coursework and a timeline for getting back on track.

No work will be accepted after the end of the Registrar-scheduled final exam time slot except in the case of an incomplete.


Academic Integrity and Collaboration

The HWS Principle of Academic Integrity governs all of the work completed in this course. Students should read the full policy in the HWS Catalogue: https://www.hws.edu/catalogue/academic-policies.aspx

For this course:

What you turn in for a grade must be your workyour ideas and your effort.

Assignments in this course involve creating programs to meet certain specifications. The following excerpt from a post by Alex Gourevitch, a professor at Brown University, provides perspective for understanding what is acceptable and what is not:

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.

ChatGPT is a problem not just because it means something produces the essay for the student, but because it also suggests that something can do the thinking for you too, and that the whole point of the exercise was the product.

Prof. Gourevitch addresses writing assignments, but the same ideas apply to writing programs: the point of these assignments is the process of creating the end result — having to face a task, work out how to accomplish it, understand the underlying concepts and the necessary skills, make mistakes, fix bugs, and, after all that, develop how to solve future problems. Your ideas and your effort means not shortcutting that process.

  • 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.

  • Furthermore, using someone else's solution to the same or a substantively similar problem "as an example" for your own solution is prohibited, even if you make changes.

Beyond the hopefully crystal clear don't copy someone else's files, things can get murky — in technical fields, a great deal of learning how to do something comes from following and adapting examples. Furthermore, collaboration is a norm and AI tools are rapidly gaining ground in software development. It is important to recognize that academic settings — where the goal is learning the process, not merely producing the end result — are different from professional settings, and that understanding and adhering to principles of academic integrity now sets the stage for avoiding problems in future courses and in your career, whether in computer science or something else. In this course:

  • The course materials (slides and examples from class, the textbook), office hours, and Teaching Fellows should be your first resource for understanding the material and completing assignments. Using and adapting examples from these materials is fine, as is using your own solutions from earlier assignments.

  • If you go further afield (e.g. the Internet), do so to expand on the course materials rather than replace them, and look for explanations of concepts or examples of specific technical points rather than solutions for the specific tasks you need to accomplish. If other resources are used in the context of completing an assignment, include a comment in your program identifying the source (e.g. give the URL) and what you learned or gained from it.

  • It is always your responsibility to be diligent about making sure you fully understand any sources used and any help received. This means you can apply the knowledge in a new situation, not just that you think "oh yeah, that makes sense" when you read through an example or someone explains something to you.

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 penalty up to and including 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.


Use of AI

AI may not be used to complete assignments in this course.


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.

There are many resources to help you be successful in the course:

  • The primary resources for this course are the course website and the materials provided in class, the textbook, 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. CTL works with the Math/CS Department to offer an essential learning resource in this course, the CS Teaching Fellows (TFs). TFs are accomplished computer science majors and minors who assist other students. They hold regular study hours Sunday-Thursday. 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). See the CTL Syllabus Statement below.

  • Your dean is an important and valuable resource. See the HWS Deans' Syllabus Statement below.

  • For accommodations, see the Office of Disability Services Syllabus Statement below.

  • For help or support 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.

Finally, if there is something related to the course format or materials that would help you be more successful in the course, please come discuss it with me.

CTL Syllabus Statement

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 major's demands is the Study Mentor program. Study Mentors engage directly with each student: they help you find the time you need for both your academic and co-curricular activities, and can help you find strategies to 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 any demanding 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.

HWS Deans' Syllabus Statement

At Hobart and William Smith, the deans are one of the academic resources that will enable you to succeed in your learning and degree goals. The Office of the HWS Deans (located on the first floor of Smith Hall) is open Monday-Friday 8:30am to 5:00pm and is a central space where students can meet with a dean to: 1) talk about academic plans; 2) be connected to resources and assistance for academic success; 3) learn about honor societies, mentorship, and deeper academic involvement; 4) receive help communicating with faculty and other staff on campus; and 5) discuss challenges that impact academics. We encourage you to learn about your dean (individual dean assignments are listed in PeopleSoft) by visiting our website (Office of the Deans) and our Resources page to help you have the best possible learning experiences on campus. Students can schedule individual meetings with a dean by calling (315) 781-3467 or emailing HWSdeans@hws.edu.

Office of Disability Services Syllabus Statement

If you are a student with a disability for which you may need accommodations and are new to our office, you should self-identify by logging into the Accommodate Portal, Initial Accommodation Request Form, and completing the Accommodation Request Form. Disability-related accommodations and services will be provided when the registration and documentation process is complete.

Returning students may request accommodations by logging into the Accommodate Portal and submitting a Semester Request. Should you need to meet to add or discuss accommodations, please schedule an appointment with the Associate Director of CTL for Disability Services.

Please direct questions about this process or Disability Services at HWS to ctl@hws.edu or x3351.