CPSC 327 Data Structures and Algorithms Spring 2020

CPSC 327 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:


Communication

You are expected to regularly check your HWS email and the course web page (especially the schedule page). Assignments, handouts, and other information relevant to the class as a whole will be posted on the course web page. Email may be used in the case of a particularly time-sensitive announcement (e.g. an announcement about something 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!)

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 choose to use a laptop or other device to take notes, you are encouraged to turn off the wifi and close other applications to reduce the temptation of those distractions. Either way, 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. (Also note that anything that appears on the projector screen - slides or code - will be made available on the schedule page 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.


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 meant to fill in the gaps and answer questions about things you have already started to think about. (Also, some material in the assigned readings may not get covered in class but you are still responsible for that material.) There is not a great deal of reading, and it is expected that you will do what is assigned. Readings are to be completed for the class period where they are listed on the schedule page.

Homework: Expect homework to be frequent, with a few problems due most class days. There are two kinds of problems: warmup problems (denoted by "[W]") are intended to help identify tricky points that need attention in class and to set up for in-class discussion, while practice problems (denoted by "[P]") are intended to provide additional practice with a topic after discussion in class. Warmup problems will be graded primarily on effort rather than correctness, while practice problems will be graded primarily on correctness. Completing both types of problems is important for mastery of the course material.

Projects: There will be three projects involving the development and implementation of data structures and/or algorithms. These projects emphasize practical applications of the material.

Exams: There will be two midterms and a final exam. All will be take-home exams, and will emphasize applying concepts rather than simple recall. The dates of the exams are noted on the schedule page - be sure to consult that! More details about each exam will be announced prior to the exam.

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

  • Homework: 20%
  • Projects: 40% (approx. 13% each)
  • Exams: 40% (midterms 12% each, final 16%)

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. "Engagement" covers aspects of participation in the course not otherwise graded: completion of assigned preparatory work (such as readings), meaningful contributions to class discussions, being on task in lab and in-class activities, and pulling your weight on group assignments. Class engagement may be taken into account when considering borderline final grades.

Extra Credit: Some extra credit opportunities may be available on projects and exams. If you are interested in extra credit, take advantage of these opportunities!


Coding Standards

For programming assignments (such as projects), you are expected to follow common conventions for readability such as the CPSC 329 coding standards. As with a paper that is poorly formatted, you will lose points for a program which does not adhere to a consistent and reasonable set of conventions.


Attendance

Updated policy for remote classes post-spring break:

Maintaining a connection is especially important. To maintain flexibility with different schedules, the attendance policy will shift to a participation policy. The expectation is two "participations" per week - being present for at least 30 minutes in class, asking a question in class, office hours, on the discussion board, or via email, and providing a good answer to a question on the discussion board all count as one "participation". (You are strongly encouraged to participate "in person" at least once a week if you are able to.) Given the flexibility, it is expected that exceptions will be rare - but stay in touch if circumstances get in the way.

Original policy, pre-spring break:

You are expected to attend and be on time for all class sessions. Late arrivals or early departures may be marked as absent. Also, announcements are made at the beginning of class and late arrivals may miss important information.

After three absences of any kind (excused or unexcused), any unexcused absence from lecture will impact your final grade. (For example, if you have two excused and two unexcused absences, the two unexcused absences will lower your final grade. If all four absences are excused, there is no penalty.) 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. It is also your responsibility to provide an excuse for absences that are to be considered excused.

In addition, note that any absence, whether excused or not, 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 even if all of the absences are excused.

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.


Late Policy, Extensions, and Rescheduling Exams

Warmup problems will not be accepted late, as the point of them is to prepare for that day's class. While you should complete all of them, a few can be missed before it starts to impact your homework grade.

Practice problems and projects can be turned in late for reduced credit. Practice problems and projects will be penalized 5% if turned in by the day after the due date, 10% if turned in within three days, 20% if turned in within a week, and 30% thereafter. No work will be accepted more than two weeks late without an extension.

In addition, no work will be accepted after the end of the Registrar-scheduled final exam time slot unless an incomplete has been granted.

Updated policy for remote classes post-spring break:

Deadlines are important for staying on track, and they will continue to be enforced with the same late policy. However, nothing about the rest of this semester is normal; if you or someone close to you gets sick or if there are other things going on that make it difficult to focus on your classes, stay in touch - with me, your dean, and/or anyone else you can talk to. There is flexibility if you need it.

Original policy, pre-spring break:

It is important to note that while late work is accepted in most cases, handing work in late should be a rare occurrence - deadlines are tight (being late on one assignment takes away time from the next, and practice problems left undone will pile up quickly) and a habit of late handins will have a significant impact on your grade as well as making subsequent topics harder to master. In addition, work handed in late may not be returned as promptly.

Extensions will generally only be granted for the kinds of things that count as excused absences (see the definition under "Attendance" above), and 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.

Similarly, exams can generally only be rescheduled in the case of an excused absence on the exam date. Leaving early for a vacation is specifically not a reason for an excused absence - note the dates of exams before making travel plans.

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/rescheduling will not be granted retroactively - you need to plan ahead. 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.


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

In the case of an illness or other emergency that causes you to be absent on the day of an exam, you must notify me of the reason for the absence as soon as possible (you can have the dean's office communicate with your professors). It is expected that the exam will be made up promptly. You may not communicate with other students about the exam until you have taken it.


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. The only person you may discuss them with is the instructor.

  • Homeworks and projects are individual assignments unless otherwise specified. This means that what you turn in must be your own work. Discussing ideas with and getting help from the instructor and other students in the course is fine but working together with someone else to produce a solution which you both hand in is not.

    To emphasize: "Your own work" means that the ideas and the effort to mold those ideas into a working solution are your own. 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 obvious: using someone else's program or solution "as a guide" to completing your own is plagiarism.

    Potentially less obvious is the line between getting help (OK) and working with others (not OK). Working together with someone else to produce a solution which you both hand in is not OK, even if you each type it in individually and/or make some modifications afterwards. You may discuss ideas about how to get started and you may get debugging help or discuss why something doesn't seem to be working; you may not work on designing a program or algorithm or writing code or pseudocode with someone else. Ask before you do something if you are unsure what is OK.

    It is OK to 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). See "Plagiarism in Programs and on Problem Sets" below for more information on the difference between a reference and a solution.

    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. A good guide is to make sure that the first attempt on any aspect of a problem is on your own (before asking others), and that you incorporate ideas discussed into your solution on your own (away from others).

    Submitting work which is unreasonably similar to another person's work and/or not being able to explain some 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 much of the course material is cumulative - it is important that you review each day's material (after class is a great idea) and promptly address anything that is confusing. It is also important that you budget your time and start on assignments early so that you have time to think about problems and deal with unexpected surprises.

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.

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


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 Christen Davis, Coordinator of Disability Services, at ctl@hws.edu or x3351.