CS 222 Spring 2016

Academic integrity

Violations of scholastic honesty include, but are not limited to cheating, plagiarizing, fabricating information or citations, facilitating acts of dishonesty by others, having unauthorized possession of previous or current assignments, submitting work of another person or work previously used without informing the instructor, or tampering with the academic work of other students. Any act of scholastic dishonesty is a serious academic violation and will result in a disciplinary action. The assignment in which plagiarism is detected will receive zero points.

You are encouraged to study together with your friends. You may discuss course topics and assignments with other people; however, all assignments are individual unless otherwise specified. This means that you have to write down your own solutions for the problems given as assignments.

Rule of thumb: If you are looking at the solution to a problem that was written by somebody else, or if you are making your solution available to somebody else in whatever format (e.g. verbally, by sending an email, by instant messaging, by writing on the board, etc.), you are violating the academic integrity. If you are in doubt whether an action you take is a violation or not, don’t do it!

See a longer version of the honor code, adapted from Stanford University Computer Science Department’s Honor Code.

Format

The purpose of this course is to improve your coding skills in the correct way. This will be done through numerous programming assignments.

You will attend a lecture on Wednesday plus a discussion session on Thursday or Friday. In the lecture you will be introduced to good habits about programming and you will be given an assignment for the next week’s discussion session. A sample solution will also be discussed in the lecture for the past assignment.

In the discussion session, you will present your code to your friends and the session leader. You are expected to be able to answer questions raised by your friends and your session leader. Occasionally, you will also be asked to review a peer student’s code.

Interaction

We will be using Piazza for offline discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. You may ask questions you have regarding the assignments, course topics, the project, etc. Caution: NEVER post assignment solutions to Piazza.

Find our class page at: http://www.piazza.com/.

Grading

Grading will be based on the programming assignments. There are no exams. For each assignment, you will be graded based on a pre-announced rubric.

Due dates (tentative):
Assignment 1: Feb 17th, 23:55.
Assignment 2: Feb 24th, 23:55.
Assignment 3: Mar 2nd, 23:55.
More to come…

If a student cannot submit up to and including 2 assignment(s) due to a formal excuse (e.g. doctor’s report, dean’s permission, etc.) the student may take a single make-up assignment during the final exam period. In this case, the make-up assignment’s grade will replace the missed ones’. If 3 or 4 assignments are missed, two make-up assignments will be given. If more than 4 assignments are not completed, the student fails the course.

Assignments

  • There will be an assignment (almost) every week.
  • New assignments sometimes depend on previous assignments, so you should make sure all your previous assignments are working properly.
  • New assignments are posted to the class website. Read the new assignment carefully and pay attention to the grading rubric before starting on it.
  • Sometimes we require that you use a particular tool for accomplishing the assignment. Refrain from using complex libraries or frameworks that most students are not familiar with unless you get prior permission from a TA or your section leader.
  • Unless otherwise stated, all work is individual.
  • Ask questions on Piazza whenever you are unsure about something.
  • In this class, you are allowed to use code snippets from various resources (web, books, etc). If you use any code snippet, you need to include the source as part of your code comments (see the Honor Code). Please note though, if for example an assignment asks you to code a specific algorithm and you properly use and cite pre-written version of that algorithm from another source, you will not be penalized for plagiarism but you will not receive credit for the component of the rubric that covers that algorithm (since you did not write it). For example, if we ask you to use Dijkstra’s algorithm for an assignment and you use a properly cited pre-written version of it, you will not receive credit for writing the algorithm.
  • If you don’t give proper citation, it’s plagiarism.
  • To receive points for an assignment you must present your code in discussion section and it must compile. Submitting code that does not compile is a big sin.
  • The course is not about ‘getting the job done’ but rather to improve style and organization which is addressed in discussion sections. You may earn more points by writing high quality code that does not fulfill all of the functional requirements of the assignment than writing poor quality code that meets all of the functional requirements.
  • Before the discussion section, it is your responsibility to post your source code to subversion by the deadline on the assignment specification. This is a HARD deadline and you must post your source code by deadline.

The instructor reserves the right to change the policy at any time.