Home
Teaching
 
CS U213 Sp '09
General
Readings
Syllabus
Assignments
Communication
Blog
Labs
Office Hours
Advice

Assignments

Etudes: These exercises will help you to master the basic concepts for the given week.

Work out the etudes on your own before you meet with your partner. When you meet, compare your solutions and discuss any problems you encountered. If you are unable to complete the etudes by Sunday, ask questions in class, or see someone during their office hours. Etudes are designed to give you a practice with the basic skills and concepts you need to understand for each week.

Include the solution to the required problems in your portfolio. We will check them when we check your portfolio. The optional problems provide further practice of the same concepts, if you need additional practice.

Main part: assignments and projects: Work with your partner and hand in one joint program.

Assignments: These are weekly programming assignments that lead to a larger program in about four weeks. You will build on the solution(s) from the previous week(s) as you go on.

Work on the assignment with your partner. If you have done the etudes and you follow the design recipe carefully, the assignments should be straightforward.

Projects: There will be three project assignments where you can apply what you learned to a project of your choice. Each will span four weeks of the course, but intermediate parts should be submitted on a weekly basis. Make sure you follow the instructions carefully. Just writing a program that works does not guarantee even a passing grade for the project!

Work on the project with your partner. Here you have the opportunity to be creative and engage in the design process from the beginning.

DUE DATES: Homework assignments must be submitted by 10:00 pm on Wednesday unless otherwise specified.

Turn in each assignment with a Java comment on the top of the assignment that specifies the following pieces of information:

  • Assignment: (number)
  • Name:
  • ID: (last 4 digits only)
  • Name:
  • ID:
Omission of this information leads to immediate loss of all credit for the homework.

Download the homework server from here. Make sure you use your NEU login as the login name for homework submission. If your program does not compile in the language that is appropriate for the assignment, it will not be graded. Additionally, make sure your program never exceeds 80 characters per line.

WeekAssignmentsDue Date
1     

Review HtDP: Loops, Accumulator style programs, World

1/14
2     

Data definitions and class diagrams to represent classes; containment, union, mutual reference

1/21
3     

Designing methods for simple classes, containment, unions.

1/28
4     

Abstracting classes: lifting fields, lifting methods, creating a super class, a union. Using libraries: The World Teachpack.

2/4
5     

Complex Program; World: Refactoring

2/11
6     

Data integrity; Circular Data; Exceptions; Equality of Data.

2/18
7     

Stateful Classes, Imperative Methods; Equality. Testing the effects; Imperative World

2/25
8     

Abstracting over the data type.

3/11
9     

Abstracting over the behavior; Traversals, Visitors, Function objects.

3/18
10     

Designing programs with iterators: recursion vs. iteration; ArrayList; Java loops

3/25
11     

Using libraries (Maps, hash tables, trees, priority queues); JUnit

4/2
12     

Project: Graph traversals: DFS, BFS, shortest path, minimum spanning tree -- optimizing the performance, designing reusable code

4/14
13     

Work on the Project. Portfolio Review

4/14
14     

Final Project

4/14

last updated on Thu Feb 5 16:39:18 EST 2009generated with PLT Scheme