Assignment Description
A0 Assert statement Learn about the assert statement and practice using Eclipse. See pinned Piazza note @6. "Assignment A0".
This helpful ppt file about the assert statement comes from Tony Hoare, author of Quicksort: Assert early and assert often (ppt)
A1 Classes Practice developing a class.
genealogies (pdf files): gries, birrell advisor
A2 Functions Practice writing Java functions, mainly dealing with Strings. See pinned Piazza note @31, "Assignment A2".
A3 Linked Lists Introduce you to linked lists. See pinned PIazza note @341, "Assignment A3".
A4 Recursion on trees Write methods to process trees in an interesting application. See pinned Piazza note @626, "Assignment A4".
A5 Heaps Implement a heap. See pinned Piazzanote @1087, "Assignment A5: Heaps".
A6 GUIs. Learn about GUIs!!! See pinned Piazza note @1241, "Assignment A6: GUIs".
A7 Shortest path Implement Dijkstra's shortest path algorithm. See pinned Piazza note @1435, "Assignment A7 Shortest path".
A8 Planet X Fly to Planet X to rescue a ship in distress and then return safely to Earth.

Homework Description
HW1 Presenting algorithms in English; the assignment statement See pinned Piazza note @14. Weekly Recitations / Homeworks

Rec 1 Basics Java applications, packages, API specs, programming with Strings. See pinned Piazza note @14.
Rec 2 Exceptions, 6-7 February See pinned Piazza note @14.
Rec 3 Invariants Invariant problem set
Rec 7 Iterable Iterable problem set
Rec 8 I/O I/O problem set
     
     
     
     

Automated Cheating Detection

We use an automated system that uses sophisticated artificial intelligence techniques combined with program analysis tools to notice unusual similarities between programs turned in by different people. These tools really work and 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, the tools would be very likely to figure out what you did.

The tool we use, called Moss, was developed by a Cornell PhD, now a professor at Stanford, over 20 years ago.

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 difficult to get away with cheating in CS2110. Please do your own work, and talk to an instructor, a TA, or a consultant, as often as needed if you get stuck and need help. We’ll get you back on track.