CPSC 120 Principles of Computer Science Fall 2016

CPSC 120 Assessment and Policies

You are expected to be familiar with the course policies stated below. Ignorance of a policy is not an excuse for violating a policy or being surprised when it is applied to you, and will not exempt you from its penalties.

On this page:


You are expected to regularly check your HWS email and the course web page (especially the syllabus page). Assignments, handouts, and other information relevant to the class as a whole will be posted on the course web page. Email will be used in the case of a particularly time-sensitive announcement (e.g. an announcement about a homework which is due in the next class meeting) or for matters which are only relevant to a few people in the class.

Classroom Behavior

You are expected to be on task during class - web surfing, texting, playing games, doing assignments for other courses, etc. are not acceptable. Except in the case of an emergency, leaving the classroom during class is not acceptable. (Take care of any necessary business before or after class!) Also, please do not use headphones during lab - you may miss important announcements to the class about assignments, and it makes it difficult to interact with you about the assignment.

Disruptive classroom behavior will negatively impact your participation grade.

Assignments and Evaluation

Readings: Readings are an important component of this course - they are your first exposure to new material and provide the basis for the examples worked on in class. It is important to 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. Readings are to be done before the class period for which they are assigned.

Labs: Lab sessions will be held on Fridays in the Rosenberg 009 computer lab. Lab assignments will be posted on the syllabus page prior to each lab session. Your time in lab will be most effective if you read the lab handout before lab and come prepared with any questions that may have arisen. You will generally not be able to complete all of the lab exercises during the lab period; anything not completed during lab will have to be finished on your own as homework. Completed exercises are due by the start of the following week's lab.

Projects: There will be two projects in addition to the weekly labs. The projects will require somewhat larger and more sophisticated programs than the labs, and will integrate several concepts. Expected dates for the projects are posted on the syllabus for planning purposes.

Exams: There will be two midterm exams and a final exam. The dates and times of these exams are noted on the syllabus - be sure to consult this schedule before making travel arrangements! More details about each exam will be announced prior to the exam.

Participation: You are expected to actively contribute to group work (not sitting back and letting others do everything), and should be actively engaged in class - this means that you are paying attention and contribute meaningfully to the class on a regular basis. Disruptive behavior (such as walking in and out during class, ringing cell phones, or disturbing others) and excessive absences will count against your participation grade.

Grades: Grades in this course will be computed as follows:

  • Labs: 40% (approx. 3.3% each)
  • Projects: 25% (12.5% each)
  • Exams: 25% (midterms 7.5% each, final 10%)
  • Participation: 10%

Talks: The Math/CS Department sponsors a number of colloquium talks from alumni and visitors during the semester. These talks are a great way to find out about a variety of topics in the fields of mathematics and computer science. You can earn extra credit for attending talks relevant to this course - this includes computer-science-themed math/CS colloquium talks, as well as any other talk given on campus that is relevant to this course. (Get a small additional bonus for suggesting a relevant talk not part of the math/CS colloquium series!) To get credit for attending a talk, you must be present at the talk and must submit a three-paragraph writeup of the talk: one paragraph summarizing the talk, one paragraph discussing what you learned from the talk, and one paragraph explaining why the talk is relevant to this course. Writeups are due within one week of the talk. Writeups which are clearly written, substantive, contain the three paragraphs listed, and make a strong case for the relevance of the talk to the course will earn up to 5% of the participation grade per talk. A maximum of four talks will be counted for extra credit.

Extra credit: In addition to attending colloquium talks, some labs and all of the projects will have the potential for extra credit by going beyond the minimum requirements of the assignment. No additional extra credit assignments or special extra credit opportunities will be given - the time to worry about your grade is during the term, not at the end.

Coding Standards

Following reasonable conventions is important for readability of your code. The course coding standards specify the particular conventions you should use in this course; not following these standards can result in points lost on assignments.


You are expected to attend and be on time for all class and lab sessions and to be present for the full class period. Announcements are made at the beginning of class and late arrivals may miss important information.

Because attending and participating in class and lab is an important part of your experience in this course, any unexcused absence after the first three absences (whether excused or unexcused) will lower your final grade by a full letter grade. In addition, more than three absences (whether excused or unexcused) may impact your participation grade as in-class exercises cannot be made up. It is your responsibility to make sure that you sign the attendance sheet each day; a few slip-ups will be allowed but repeatedly forgetting to sign in may result in the accumulation of unexcused absences.

Excused absences include absences due to sports competitions, official Colleges activities such as musical performances or debate competitions, academically-related events such as 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 being too busy, oversleeping, or leaving early for a vacation - is considered to be an unexcused absence. Any absence for which no reason is provided is automatically considered to be unexcused.

Making Up Work

You are responsible for acquiring any notes, handouts, assignments, and other material missed as the result of an absence, whether excused or unexcused. This should be done promptly to avoid falling behind.

Every effort should be made to hand assignments in 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 if the absence is excused and not foreseeable (e.g. illness or other last-minute emergency). (For foreseeable excused absences, such as a scheduled sports competition, arrangements for rescheduling the exam must be made in advance.) In addition, documentation from an appropriate person (such as a dean) is required to validate the excuse.

Late Policy, Extensions, and Rescheduling Exams

Labs and projects will be penalized 5% if turned in by midnight on the due date and 10% per day or part of day thereafter up to a maximum of 50%. For example, an assignment due Friday will be penalized 30% if it is turned in on Monday; an assignment turned in a week late will be penalized 50%. College recesses (such as Fall Break and Thanksgiving Break) count as a single day regardless of the actual length of the break. Deductions are calculated as a percentage of the total points possible on the assignment, not the number of points you earned. Labs will be accepted at any point up to the final end-of-semester deadline but projects will not be accepted more than one week late.

Extensions will only be granted for the kinds of things that count as excused absences, and generally only if a significant portion of the time allocated for the assignment is affected. Note that leaving early for a vacation, being busy, or having a bunch of assignments due at the same time are not considered reasons for extensions. Save often and make backups of your files - computer failures do occur and are generally not grounds for an extension. Note that computer labs may not be available at all hours or over college holidays, so be sure to take this into account if you are relying on those facilities. Furthermore, labs tend to get very busy right before deadlines, especially at the end of the semester. "I couldn't get my work done because I couldn't find a computer!" is not grounds for an extension.

Similarly, exams can only be rescheduled if you will have an excused absence on that day. Rescheduling of the final exam will only be allowed as required by Colleges policy - religious observance, post-season athletic competition, or three or more final exams scheduled on the same day.

Arrangements for extensions or rescheduled exams must be made sufficiently in advance of the date in question - contact me as soon as you know you'll need an extension or will miss an exam rather than waiting until the last minute! Last-minute requests may be denied. Also, it is your responsibility to make sure there are actual arrangements (a specific new deadline or date) - simply sending an email notification about an upcoming absence does not constitute "arrangements".

Extensions will not be granted retroactively - if a last-minute emergency causes you to miss an exam or prevents you from handing an assignment in on time, the make-up policy applies (see "Making Up Work" above). Note that the "extension" in this case will only be for long enough to get the already-completed assignment handed in; if you need more time to complete the assignment, it will be considered late.

No work will be accepted after the end of the Registrar-scheduled final exam time slot.

Working Together and Academic Integrity

The HWS Principle of Academic Integrity governs all of the work completed in this course. Specifically:

  • Exams 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 - they are a chance to combine elements into something larger than the labs, but they are also an opportunity to demonstrate what you can do. You may discuss ideas with the instructor and get help from the instructor, but you may not talk with anyone else (including TFs) about any aspect of the project - this includes discussing ideas, getting help, looking over someone else's shoulder, etc.

  • 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 or TFs, and use other materials (such as reference books or websites) as technical references. However, labs are still individual assignments - anything you turn in for a grade must be your work, meaning your ideas and your effort, not the result of several people working together to produce a solution. In particular:

    • You must write up the assignment independently and in your own words. This means you can discuss ideas and approaches and get help on a particular sticking point, but you may not sit down with a friend or Teaching Fellow and write the program or solution together. (Formulating a question about what you don't understand is useful for clarifying what you do and don't know, and writing things up on your own ensures that you understand the material - or that you realize what you still don't understand in time to get help.)

    • You may not borrow or copy solutions or code from someone or somewhere else and you may not share your own with others until after all parties have turned the assignment in. This includes both computer files and paper copies. This should be obvious: using someone else's program "as a guide" to completing your own is plagiarism, not collaboration, even if you make changes for your own version.

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

    • You must acknowledge, in comments in your sketch, who you discussed the assignment with or got help from and in what capacity (include all sources other than the instructor - other students, tutors, TFs, websites, etc).

The goal here is that you learn the material so you can solve the next problem instead of just getting an answer than only addresses the current problem (isn't that why you are taking the course?) and that your grade reflects what you are capable of (not what your friends can do). Getting help from others to collaboratively figure out a problem is a great thing, but be careful of too much collaboration - you do yourself a disservice if you rely too much on others, as it is then more likely that you don't fully understand the material and will struggle on exams or later assignments - and it is better to discover this sooner rather than later. Also be careful when using other materials for help - it is OK to look for examples of concepts, but not to look for (or use) solutions. See "Plagiarism in Programs and on Problem Sets" below for more information on the distinction between examples and solutions. 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. Decompiling or reverse-engineering someone else's code (including provided code) is also prohibited.

It is worth reiterating: what you turn in must be your own work.

Failure to acknowledge help received will generally result in a warning the first time, and point deductions for subsequent offenses. Submitting work which is unreasonably similar to another person's work and/or not being able to explain any part of your solution will result in a minimum penalty of a 0 on the assignment. A second such offense is grounds for failure in the course. Plagiarism offenses may also be referred to the Committee on Standards.

There are no exceptions to this policy; 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 the policy. 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.

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, recognizing the responsibility of the individual student for his or her own education, assumes honesty and integrity in all academic work at the Colleges. This assumption is the foundation of all intellectual efforts and lies at the heart of this community. In matriculating at the Colleges, each student accepts the responsibility to carry out all academic work with complete honesty and integrity and supports the application of this principle to others.

Categories covered by this principle include, but are not limited to, the following:

  • Examinations: Giving or receiving assistance during an examination or quiz violates this principle.
  • Papers: The adoption 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 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.

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

Plagiarism in Programs and on Problem Sets

As with papers, verbatim copying of programs and problem solutions constitutes plagiarism. Also as with papers, plagiarism is not limited to verbatim copying - copying the significant ideas and structure of someone else's program/problem solution also constitutes plagiarism.

But aren't all programs which solve the same task/solutions to the same problem pretty much the same, so won't my program/solution look like everyone else's even if I worked by myself?
It is true that programming languages are simpler and more structured than human languages like English, and so two independently-written programs solving the same problem will be more similar than two independently-written papers on the same topic. However, "more similar" doesn't mean "the same" - there is still flexibility in many aspects of the program, and each programmer will express themselves somewhat differently. It is clear when two programs were derived from the same source, and I routinely run a plagiarism-detection tool on all handins.
Problem sets are similar - there is enough room for variation in most solutions for it to be clear when solutions were derived from the same source.

Programming/problem solving techniques are often explained via examples - what's the difference between using an example and "copying the significant ideas and structure"?
Nothing - the whole point of examples is to provide the significant ideas and structure of the solution, with the idea that the details would be modified for the particular situation.

OK, then, so I can't use any examples because that constitutes plagiarism?!
No, not exactly. What is and isn't allowed is a matter of degree. Let's first define "example" and "solution":

  • 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 - you may view something as just an example (because it doesn't solve your exact problem), but if a single source covers most of what you need to do, it may well be what I consider a "solution".

Using "examples" (as defined above) is generally OK but using "solutions" is not.

There's a fuzzy middle ground here, and I'm still not sure exactly what is OK and what isn't.
Then ASK! - before you get into whatever situation you are wondering about. A few additional guidelines which may help:

  • Any materials provided as part of the course (examples in the textbook, from class, and directly posted on the webpage) are acceptable to use/adapt (unless specifically forbidden, such as on exams).
  • Any solutions written by another student (either this term or in previous terms) are not acceptable to use as "inspiration" or a guide when you are working on the same assignment. (Looking at someone else's work later, after the assignment has been handed in, is fine.)
  • Use caution with materials from other sources - think "examples, not solutions" and ask if you have any questions. In fact, ask even if you are sure something is allowed. (Specifically looking through other materials to find solutions to problems you've been assigned is not acceptable.)
  • Use common sense - the purpose of assignments is for you to practice and gain understanding of the material, and for you to demonstrate what you have mastered. If you are mostly just tweaking something written by someone else - even if you spend a lot of time renaming variables and inserting comments - then what you are turning in isn't your work.

Being Successful and Getting Help

There is a steady schedule of assignments and the course material is cumulative - don't fall behind! It is important that you budget your time and start on assignments early so that you have time to think about problems and/or seek help if you get stuck. (It is better to spend some time each day rather than a large block of time right before the assignment is due.)

It is also important that you keep up with the material - this goes beyond just turning assignments in on time. Do the readings, try some of the exercises in the book or handed out in class to test whether you really are getting the concepts (it's easy to think you understand when you just watch someone else), ask questions, and come to office hours. Don't let a question linger unanswered! Practice is essential, and learning material bit-by-bit means that you will be prepared for the next assignment rather than finding yourself suddenly having to figure out lots of things all at once.

Be sure to seek help promptly if you are having trouble with the course material or get stuck on something that you can't figure out how to solve. Seeking help once you have tried to figure things out for yourself is not a sign of failure or inability! There are several resources to help you be successful in this course:

  • Your primary resource for this course is the instructor - during lab, during office hours, and dropping by or scheduling a meeting outside of office hours. Come here first!

  • A secondary resource is the evening CS Teaching Fellows, available in the Rosenberg 009 computer lab. Note that the TFs are not necessarily familiar with the details of Processing, though they should be able to provide some assistance with how to approach solving problems and tracking down bugs.

  • 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 12 departments, Study Mentors help you find your time and manage your responsibilities, Writing Fellows help you think well on paper, Q Fellows support you in courses that require math, and professional staff help you assess academic needs.

    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 Mentors 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 to engage with both your academic and co-curricular activities, 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, one option is to go to the TutorTrac link provided on the CTL webpage and make an appointment. You can also contact Ingrid Keenan, x3832, keenan@hws.edu, or drop in at the CTL office on the 2nd floor of the library.

    Q Fellows: The Q Fellows offer support in courses that require students to use quantitative reasoning, mathematical processing, and symbolic logic to be successful. They are generalists, trained to work with students on the mathematical reasoning necessary to understand the content in a variety of disciplines. The Q Fellows hold drop-in hours and offer support to students around a wide range of mathematical concepts, from Algebra refreshers to learning Calculus II concepts. Students come from many departments including Environmental Studies, Economics, Physics, and Psychology, for a variety of reasons; reviewing basic mathematical concepts, deciphering statistic methods, applications of Calculus and many others.

Disability Accommodations

If you are a student with a disability for which you may need accommodations, you should self-identify, provide appropriate documentation of your disability, and register for services with the Coordinator of Disability Services at the Center for Teaching and Learning (CTL). Disability related accommodations and services generally will not be provided until the registration and documentation process is complete. The guidelines for documenting disabilities can be found at the following website: http://www.hws.edu/academics/ctl/disability_services.aspx

Please direct questions about this process or Disability Services at HWS to David Silver, Coordinator of Disability Services, at silver@hws.edu or x3351.

Valid HTML 4.01!