Programming Data Structures

COSC 211

Instructor: Matt Evett ; Dept. Computer Science; room 511 Pray-Harrold
Tel: 734-487-1227; e-mail: mevett@emich.edu Web: http://emunix.emich.edu/~evett

Grading Assistant:

Course Information: This web page is mainted for archival purposes. The up-to-date page is accessible via canvas.emich.edu.

Syllabus

Programming Environment

We will be using the Eclipse (www.eclipse.org) integrated development environment to solve the programming assignments in the lab. You may install Eclipse on your machines for free. Eclipse is a professional development environment having several interesting features you might not immediately be aware of. A simple tutorial on using Eclipse can be found at http://agile.csc.ncsu.edu/SEMaterials/tutorials/eclipse/eclipse_tutorial_3.3.html.

If you would like to work while on campus, Eclipse has been installed on the machines in the department's open laboratory, PH514. Hours of availability are shown here. There is tutoring available there during the hours shown here.

There is excellent on-line documentation for the java JDK API at http://java.sun.com/j2se/1.5.0/docs/api/index.html.

Details of the required Java coding style can be found here.

Lecture Notes

  1. Code from Savitch's Textbook
  2. Chapter 7 PowerPoints from Savitch
  3. Chapter 8 PowerPoints from Savitch
  4. Chapter 9 PowerPoints from Savitch
  5. Chapter 10 PowerPoints from Savitch
  6. Chapter 11 PowerPoints from Savitch
  7. Specifications, Comments and Javadoc
  8. Coding examples for recursion lectures.
  9. Serialization Warnings in Eclipse.

Labs and Assignments

Submitting assignments:

In general, unless a particular lab assignment gives different instructions, whenever a lab asks you to write or modify a program, you should hand in a hardcopy of that code, plus a hardcopy of the output of that program. Here are instructions for obtaining hardcopy.

When you hand in your hardcopy, make sure the individual elements appear in the same order as in the assignment. The prelab exercises should be first, followed by the individual programming assignments. Each programming assignment should consist of the hardcopy of its code, followed by hardcopy of sample output of that program. For example, the material you turn in for assignment Chapter 3, part 1 (just an example, we're not doing this assignment) should be this sequence:

  1. Prelab exercise for sections 3.2-3.4
  2. Prelab for section 3.5
  3. Computing a Raise
  4. Charge Card Statement
  5. Lake LazyDays
  6. Rock,Paper, Scissors
  7. Verifying Dates
  8. Processing Grades

The assignments (subject to change!):

  1. Lab 1, Inheritance. due Thursday, May 7.
  2. Lab 1.5, More Inheritance, due Tuesday, May 12.
  3. Lab 2, Test Questions, due Thursday, May 14.
  4. Lab 2, Polymorphism. due not this semester .
  5. Lab 3, Doodlebugs, due Thursday, May 21
  6. Lab 4 Exception Handling,. .
  7. Lab 4 Debugging with Eclipse, due Tuesday, May 19.
  8. Lab 5, Interfaces. Due Thursday, May 28.
  9. Lab 5.1, Inner classes. Due Tuesday, June 3.
  10. Lab 6, File IO #1. Due Thursday, June 5.
  11. Lab 7, File IO #2. Omitted this semester.
  12. Lab 8, Recursion, Due Tuesday, June 10.
  13. Lab 8.1, Recursion #2, Due Thursday June 12
  14. Lab 9, Singly-Linked Lists, part 1 , due Tuesday, June 17.
  15. Lab 10,Singly-Linked Lists, part 2, due Thursday, June 19.
  16. Lab 10, Doubly-Linked Circular Lists, due Wednesday, April 18.

Tutoring

There are several opportunities for tutoring. See the associated page.