Course requirements

  • Weekly assignments (primarily programming)
  • Weekly labs
  • Mid-semester programming project
  • Final programming project
  • One in-class midterm exam
  • A self-scheduled final exam in the final exam period

Grading

This class is designed so that if you regularly attend class & lab, participate, and turn in completed assignments on time, you can feel secure that you will earn a good grade in the course.

   
Assignments: 40%
Labs: 10%
Mid-semester project: 10%
Final project: 10%
Midterm exam: 10%
Final exam: 10%
MaGE participation: 5%
Class participation: 5%
   

Lab Grades

See the lab grading page here.

Attendance

Because we do not follow a course found in a textbook, class and lab attendance is important. You are responsible for material presented in class; be sure to ask questions if there are concepts you do not understand. If you miss a class, please ask a classmate for notes and see me or the lab instructor with any subsequent questions on covered material.

Classroom conduct

Cell phones should not be out during lectures. Laptop computers and tablets are allowed only for taking notes or following along with course materials. If you choose to use a laptop or tablet, you must sit in the front row of the classroom. Violations of these policies will affect the participation component of your final grade.

Submitting coursework (aka “How to get an A on homework”)

  1. Many of your assignments and labs will be submitted online. To submit, save your final files in your dev folder on athena.cs.mtholyoke.edu (the CS department server) by the deadline. Please note that anything on the Desktop or other folders of the lab Macs will disappear forever when you log out (see the CS help site).

  2. Important: do not modify files beyond the submission date! If you decide to work out some bugs after the deadline, do so in a postSubmission directory. Include a README text file that lists the changes you’ve made, as this will help us with grading.

  3. You must have comments in your code! Poor commenting or missing javadocs (after we have seen automatic documentation) will result in a deduction of up to 10%.

  4. Your program must compile! Non-compiling code will result in an automatic deduction of 25%. It is better to submit a program that works but does not satisfy all required behavior than a program that attempted to do everything, but does not run!

  5. A and A- level work means quality programs that run, do what they are supposed to do, are well designed, well documented and submitted on time.

Late policy

You have 4 “free” late days to use on assignments throughout the semester. These may not be applied to the mid-semester project (Tetris) or the final project (20 Questions)!

To use a late day, you must fill out this late day Google form prior to the assignment due date. You will need to specify:

the number of late days being used for the submission the number of late days you have remaining If you do not use all your late days, each unused day (max of 4) will transform into an extra 1/8 point (i.e., up to 0.5) on your final course grade.

If you run out of late days, you may submit beyond the deadline with a penalty of 10% per day late.

Honor Code

REMINDER: YOUR CONDUCT IN THIS COURSE MUST FOLLOW THE ACADEMIC HONOR CODE! You are encouraged to

  • Speak with your classmates about the lab and homework,
  • Organize study groups,
  • Consult other books or the Internet for inspiration and clarifications,
  • Ask the lab instructor or TA to help you find bugs in your code,

but it is very important to be sure that

  • All the work that you submit is your own: it is against the honor code to have somebody else do the assignment for you (including TAs or tutors) or to copy it from somewhere else (including books or the internet).
  • You acknowledge classmates or TAs that you worked with for each assignment–this should be done in a comment at the top of your main source code file.
  • I understand that a great way to learn about new technology is by adapting code snippets found online; however, this enters very sensitive territory! For most of the assignments, you should not be adapting code you’ve found online; you may, of course, adapt code from the course web site. In some rare situations, there will be cases where it is appropriate to use other online resources (e.g., when using Java swing libraries we have not explicitly worked through in class or lab). Any code that you adapt MUST be properly referenced (e.g., give the URL of the site you obtained the original from)! I expect to see comments where you have modified the original code. If you are at all unsure about what is acceptable, contact one of the instructors.
  • We automatically compare all code submissions to other submissions from this semester and past semesters. I assure you that if you copy someone else’s homework, you will be caught!