CPSC 124 Introduction to Programming Fall 2009

CPSC 124 Course 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.

Email/Web Policy

You are expected to regularly check your HWS email and the course web page (especially the syllabus page). Announcements, 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.

Assignments and Evaluation

There are three components to successfully learning a topic: learning the fundamental concepts, practicing the application of those concepts, and demonstrating your mastery of the material.

Fundamentals: The first two components of the coursework emphasize fundamental concepts.

  • Readings: In computer science, one often begins to learn new things by reading about the topic - especially in conjunction with examples. Your first exposure to new topics will come the same way, via readings. These readings will be the starting point for in-class activities, so don't skip them! Longer readings will be due approximately every two weeks (though they are bunched a little more tightly at the beginning of the course), and will be announced at least a week in advance so that you have time to complete them on schedule. (Don't wait until the night before the reading is due to start a longer reading!) There were also be some shorter readings scattered throughout the semester; these will be announced at least one class period before they are due.

  • RATs and Syntax Quizzes: To provide incentive for completing the readings and to help you assess whether you've grasped the fundamental concepts, each unit will start with an in-class Readiness Assessment Test (RAT) on the key concepts from the assigned reading. RATs will be taken first individually and then as a group. The date of each RAT will be announced at least a week in advance. In addition, since getting the particular syntax of Java right is crucial for being successful at programming, there will also be occasional short syntax quizzes. These will be announced one class period in advance.

Practice: Programming is learned by doing, not just reading. The next components of the coursework emphasize actively applying the fundamental concepts.

  • Group Activities: Many class periods will be devoted to group problem-solving activities in which you will practice applying the course material. Group activities may have a preparation component which is to be done individually outside of class.

  • Peer Evaluation: Individuals are expected to be prepared for class activities and contribute to their group's learning. Group members will evaluate each other's contributions to the team.

  • Labs: Weekly lab assignments are intended to give you practice integrating and applying the course material, and will address larger tasks than the in-class activities. The lab assignment will posted several days in advance of the lab - you should read through the handout before coming to lab, so you are ready to get started working right away. Lab assignments are generally due at the start of the lab session one week after they are assigned.

Mastery: The remaining coursework is geared towards demonstrating your mastery of the material.

  • Projects: There will also be three individual programming assignments. These will be more sizable programs than the labs, and are intended to give you practice with skills needed when you create larger programs. (Projects really belong both under "Practice" and "Mastery" - they are a chance to practice skills as well, but in a more limited-help environment than the labs.) The final project will be due at the time of the final exam.

  • Exams: There will be three exams - two in class during the term, and one hour-long exam in the registrar-scheduled final exam timeslot. All three will be written (no programming on the computer) and closed book/notes. Details on the material covered and the exact format of each exam will be announced prior to the exam.

Final Grades: Final grades will consist of both individual work (individual RATs, syntax quizzes, labs, projects, exams) and group work (group RATs, in-class activities, peer evaluation). All members of a group will receive the same grade on group RATs and in-class activities - even if absent that day. Grades will be computed as follows:

  • Individual RATs: 10% (lowest score dropped; approx. 1.7% each)
  • Syntax Quizzes: 5% (lowest score dropped; approx. 1% each)
  • Labs: 25% (approx. 2.5% each)
  • Projects: 15% (5% each)
  • Exams: 15% (5% each)
  • Group RATs: 10% (1.4% each)
  • Group In-Class Activities: 15%
  • Peer Evaluation: 5%


Since in-class activities are an important part of the course, you are expected to attend and be on time for all class and lab sessions. Late arrivals may be marked as absent. More than three absences (for any reason) in class and/or lab will lower your final grade by 0.5% per additional absence. No distinction is made between excused and unexcused absences when computing the final grade; however, the number of unexcused absences is taken into account when considering borderline final grades.

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, serious illness, or personal or family emergencies. A reason must be provided in order for such an absence to be counted as an excused absence.

Missing class for other reasons - such as being too busy, oversleeping, or leaving early for a vacation - is considered to be an unexcused absence.

Missing Class / Make-Up Policy

Students 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. If you miss a group RAT or other group activities, you'll need to work out with your group how to make up for it so that you aren't getting a free ride.

Individual RATs and syntax quizzes cannot be made up; missing one will result in a 0. However, the lowest score for each will be dropped when computing final grades.

Other work (such as a missed exam or lab/project deadline) can only be made up in the case of an excused absence, and only when it was not possible to have made arrangements in advance. Making up an exam requires documentation from an appropriate person (dean, doctor, etc) to validate the reason for the absence. Arrangements for making up work must be made as soon as possible after the due date missed.

Late Policy

Labs and projects will not be accepted more than five days late. (The last day to turn in a lab due Thursday is the following Tuesday.) Late work will be penalized 5% if turned in by midnight on the due date and 10% per day or part of day thereafter. (e.g. an assignment due Thursday will be penalized 30% if it is turned in on Sunday) Deductions are calculated as a percentage of the total points possible on the assignment, not the number of points you earned. This policy is intended to discourage habitually late handins and to prevent one late assignment from taking away time needed to work on the next, while still recognizing that sometimes there are circumstances where one just needs a bit more time.

No other assignments can be turned in late; see "Missing Class / Make-Up Policy" and "Extensions / Rescheduling Exams" instead.

No work will be accepted after the end of the timeslot in which the final exam is scheduled.

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 a valid excuse.

Extensions / Rescheduling Exams

Rescheduling of exams and extensions on assignments will only be allowed in compelling circumstances (e.g. an excused absence on exam day, or a series of excused absences covering a significant portion of time before the due date). In particular, note that leaving early for a vacation is generally not a compelling reason, nor is being busy or having a bunch of assignments due at the same time.

Arrangements for rescheduled exams or extensions must be made sufficiently in advance of the date in question - waiting until the day before a team trip which has been scheduled for weeks is not "advance arrangements". In addition, it is the student's responsibility to ensure that there are actual arrangements in place - simply sending an email notification about an upcoming absence does not constitute "arrangements".

If arrangements cannot be made in advance (e.g. due to a last-minute emergency), the policy for make-up work applies.

Collaboration Policy

The Principle of Academic Integrity (see the HWS Catalogue, p. 33) governs all of the work completed in this course. Specifically:

  • Individual assignments (individual RATs, syntax quizzes, and exams) are to be completed solely by the student whose name is on the paper. These assignments are closed book, and the only person you may discuss them with is the instructor.

  • Out-of-class preparation for group activities is to be done individually.

  • You may discuss labs with other students in your group, get help from a tutor, the TAs, and the instructor, and use other materials (such as reference books or websites) as technical references, but anything you turn in for a grade must be your work:

    • You must write up the assignment independently and in your own words.
    • You may not view or copy code or other solutions from others in your group, and you may not share your code or solutions with the group. (Formulating a question about what you don't understand is useful for clarifying what you do and don't know.)
    • You must fully understand the help you receive. (You should be able to explain your solution to someone else.)
    • You must acknowledge, in the assignment write-up, who you discussed the assignment with or got help from and in what capacity (include all sources - your group, tutors, TAs, the instructor, websites, etc).

    The purpose of these rules is to make sure that you learn the material so you can solve the next problem instead of getting an answer that only addresses the current problem.

  • Projects are to be completed individually. You may ask the TAs for help with debugging (and only debugging), as long as you understand the help received and you acknowledge who helped and how in the assignment writeup. All other questions should be referred to the instructor - you may not discuss projects with other students.

While you may discuss labs with your group, be careful of collaborating too much with others - it is worth reiterating that what you turn in must be your own work. You also 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 it is better to discover this before the exam.

Also be careful when using other materials for help on labs - it is OK to look for examples of concepts, but not to look for solutions. See "Plagiarism in Programs and on Problem Sets" below for more information.

For all 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. Decompiling or reverse-engineering someone else's code (including provided code) is also prohibited.

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.

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 that is plagiarism.

Center for Teaching and Learning (CTL)

Hobart and William Smith Colleges encourage students to seek the academic collaboration and resources that will enable them to demonstrate their best work. Students who would like to enhance their study skills, writing skills, or have other academic inquiries should contact the CTL. You may visit the CTL web site to learn more about the services and programs that are available: http://www.hws.edu/academics/ctl/

If you are a student with a disability for which you need or may need accommodations, you should self-identify and register with the Coordinator of Disability Services at the Center of Teaching and Learning. You will then be required to provide for review documentation of your disability to that office. Disability related accommodations and services generally will not be provided until the registration and documentation process is complete. Guidelines for documenting disabilities and information pertaining to registration with the CTL can be found at our website: http://www.hws.edu/disabilities

Extra Time on Exams or Other Accommodations

If there's something about the course that would serve you better (e.g. course material in other formats), let me know!

If you need extra time on exams or other accommodations, see the section on CTL above. CTL will then provide you with a letter stating what accommodations you are eligible for. You must provide me with this documentation in advance in order to receive accommodations.

Valid HTML 4.01!