CPSC 225 Intermediate Programming Spring 2022

CPSC 225 Assessment and 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 and lab - 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 as it makes it difficult to interact with you.

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 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/lab is distracting to me and your fellow classmates and interferes with group activities. Please endeavor to arrive on time, and to take care of any necessary business before or after class/lab so you can be present for the whole period. If you know in advance that you will need to miss part or all of a class or lab, please let me know.


Mask Policy

It is the policy of the Mathematics and Computer Science Department that, until further notice, masks must be worn in classes, labs, office hours, Math Intern hours, Teaching Fellow hours, and when present on the third floor of Lansing Hall.

Please always wear your mask properly (over your mouth and nose). You are strongly encouraged to use a N95/KN95 mask if possible.


Assignments and Evaluation

Readings: Readings are the first introduction for most material - it often takes more than one encounter to fully absorb something, and class time is more effective if it can be used to fill in the gaps and answer questions about things you have already started to think about. Readings are to be completed for the class period where they are listed on the schedule page.

Labs: Lab sessions will be held on Tuesdays in the Rosenberg 009 computer lab. Labs explore, practice, and reinforce ideas from class. Some labs may introduce specific software or packages. Labs are intended to be short enough that most, if not all, of the lab can be completed during the lab period with diligent effort. Anything not completed during lab must be finished outside of class.

Programming Assignments: The programming assignments (along with the final project) constitute the bulk of the out-of-class work for this course. The programming assignments provide an opportunity to work on larger, more complex programs and to apply the course material.

Exams: There will be two midterm exams. These will be written exams held during a regular lab period. The dates of the exams are given on the schedule page. More details about each exam will be announced prior to the exam.

Final Project: There will be a final project instead of a final exam. It will be due at the end of the registrar-scheduled final exam time slot. More details about the project will be announced later in the semester.

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

  • Labs: 20%
  • Programming Assignments: 45% (15% each)
  • Exams: 15% (7.5% each)
  • Final Project: 20%

If you are concerned about your grade, you are strongly encouraged to come to office hours to get help with any material you may be struggling with. Start assignments early so that you have time to get help before they are due. Staying on top of things and seeking help as soon as possible when you need it is the best route to success.

Extra Credit: There may be some opportunities to earn extra credit on programming assignments and the final project by going above and beyond the requirements of the assignment and/or tackling some harder problems. You are encouraged to take advantage of these opportunities to challenge yourself!


Attendance and Making Up Work

You should attend every class and lab - missing class means missing out on discussions and activities that take place in class, and missing lab means you miss group activities and an opportunity to get help if you need it as you are working. 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. However, especially with the continued threat of COVID, it is understood that there may be extenuating circumstances which make attending every class difficult.

If you cannot attend class or lab, please let me know and make sure that you check the schedule page for new assignments and materials from class, complete any missed readings or labs, 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.

If you miss more than three classes/labs during the semester or if you miss several classes/labs in a row, you are at greater risk for falling behind. In that case, please see me to discuss options for helping you stay on track.


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. However, as with attendance, it is understood that there may sometimes be extenuating circumstances which make meeting every deadline difficult.

Three late days are allowed for labs and programming assignments. (Turning in an assignment by midnight on the due date is considered a half day late, otherwise only whole-day increments are counted - turning in an assignment any time the next day after the due date is one day late, and so forth.) Late days can be used for any reason. You can use all three late days on one assignment or spread them out over multiple assignments.

Beyond the late days, late work is not accepted. If illness, a personal or family emergency, or another crisis causes you to miss several classes in a row or otherwise presents an ongoing difficulty that adversely affects your work, please see me as soon as possible to discuss options for staying on track.

If illness, a personal or family emergency, or another crisis results in an absence on an exam day, please let me know as soon as possible. Any extension will generally be for only a short period. If you have an unavoidable conflict with the date of an exam, please see me as soon as possible (before the exam date!) to discuss options for rescheduling. In both cases, you may not discuss the exam with anyone until you have turned it in.

No work will be accepted after the end of the Registrar-scheduled final exam time slot except in the case of an incomplete. In particular, late days cannot be used to extend the due date of the final project beyond the 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 measure your individual level of mastery of the course material, and thus are to be completed solely by the student whose name is on the paper. The only person you may discuss them with is the instructor.

  • Labs are for practice and learning. Working in pairs or small groups may be an option. Getting help from others is fine, but keep in mind that the goal of lab assignments is for you to master the material, so you should attempt the tasks yourself first and, after receiving help, make sure that you can explain everything in the solution and how it was arrived at. If working in a group, you should practice pair programming (where group members take turns typing and the others contribute to the solution the typist is writing) rather than dividing up the task so that each person completes a different part.

  • Programming assignments and the final project occupy a middle ground - they are opportunities for practice and learning as well as demonstrating your level of mastery of the course material. You can get help (including debugging help) from the Teaching Fellows and may discuss ideas with other students, but you may not write code or work with other students to develop a specific solution and you may not give or receive debugging help from other students (as that involves looking at others' code).

Even though getting help from others is allowed for labs (and more limited discussions are allowed for programming assignments and projects), 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. Decompiling or reverse-engineering someone else's code (including provided code) is also prohibited. All of this should be evident: using someone else's program or solution "as a guide" to completing your own is plagiarism.

Unless 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 (algorithm, data structure, technique, etc). However, looking for and/or copying a solution is not acceptable (even if you make some modifications) - the idea here is that someone else's solution is not helping you practice applying the material for yourself, and doesn't show your own level of mastery.

If any case you are unsure about what is acceptable and what crosses the line when it comes to collaboration and use of outside resources, please ask!


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

Note taking on paper is encouraged as it avoids the distraction of electronic devices and the act of handwriting helps with retention of information. (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.) 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.

There is a steady workload throughout the course, and foundational topics introduced earlier are used and built on later in the course. Review each day's material soon after class and start on assignments early, and seek help promptly if you are stuck on something or want to discuss ideas. Letting a point of confusion slide often snowballs, and it is easy to find yourself falling behind.

Your first resource if you need help with any aspect of the course material should be the instructor - ask questions during class and lab, stop by office hours, send email, or drop by or schedule a meeting. Teaching Fellows are also a valuable resource for help on assignments.

You are also 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 16 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.

Teaching Fellows: CTL works with the Computer Science Department to offer one resource that will be essential to your learning in this course, the CS Teaching Fellows. The Teaching Fellows are accomplished CS majors and minors who are paid to assist other students. They hold regular study hours Sunday-Thursday in Rosenberg 009.

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.


Accommodations

If you are a student with a disability for which you may need accommodations and are new to our office, you should self-identify for services by scheduling a Welcome meeting (link to do so is on the top right of our webpage) with Disability Services at the Center for Teaching and Learning (CTL). Disability related accommodations and services will be provided when 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

Returning students may request their accommodation letter by emailing the request to the CTL@hws.edu or by using the link on the top right of our webpage to schedule a meeting should you feel one is necessary.

Please direct questions about this process or Disability Services at HWS to ctl@hws.edu or x3351. Jamie Slusser, Disability Services Administrator & Accommodation Specialist and Christen Davis, Associate Director of CTL for Disability Services are the main contact staff for Disability Services.