Assignments Information: Spring 2012

You'll use CMS to view and turn in your assignments

How many people per assignment?

For assignment 1, each student is expected to work on his or her own, and for other assignments you can work in teams of 2, but no more, and teams can't collaborate with other teams! You are welcome to have non-specific dialogue about the project with friends or a study group, but every line of code you type needs to be written by you personally, or by you and your teammate on A2-A5, and you can't show other people your solutions before the deadline for handing them in. (Suggestion: read the section on "automated cheating detection".)

One small comment: The assignments are designed to be solvable by a person working by him or herself. We allow teams on A2-A5 but aren't really encouraging or assuming that you'll work in teams. In fact it is better for you to work on your own, just as a runner who trains by jumping in the team car for half of each workout probably won't end up being as strong as a runner who runs the full distance on her own!

What You'll Do

There will be five self-contained assignements each linked to material we'll be learning in lecture. Each assignment will involve implementing some set of Java classes that supports a specific interface that we'll define carefully.

After each assignment is handed in, we'll release our solution for that same problem.

To get full credit for each subproject, your assignment must not only work, but should adhere to our CS2110 code style guidelines.

Automated Cheating Detection

We've noticed that some Cornell classes do a so-so job of enforcing the academic integrity policy. In CS2110, we have a solution: we're using an automated system that uses sophisticated artificial intelligence techniques combined with some pretty fancy program analysis tools to notice unusual similarities between programs turned in by different people. It is important to realize that these tools really work and that they are quite hard to fool. So while it might seem tempting to borrow a solution from a buddy, change the variable names and comments, or reorder the statements, our tools would be very likely to figure out what you did. We take cheating seriously, and cheating with an attempt to cover it up is grounds for failing the course outright. Realistically, it is much easier to just do the assigned problems than to get away with handing in code someone else wrote, because short of rewriting that code completely from scratch, we’ll catch it.

So you’ve been warned: It is just not possible to get away with cheating in CS2110. Please do your own work, and come talk to Professor Joachims, or the TAs, as often as needed if you get stuck and need help. We’ll get you back on track. In contrast, borrowing a solution from a pal will just get both of you into very serious trouble.