Craig Miller
256 South College, x-1400
Email: millercr
Office hours to be announced and placed on Web page
9 MWF
Lab: 3:30-5:30 Tuesday Room 4 (basement) South College
Data Structures & Other Objects using Java, by Michael Main
This course covers common data structures (e.g. arrays, linked lists, trees, and hash tables), their role in implementating abstract objects (e.g. collections, stacks, queues, tables, and iterators), and their application to problems. Particular attention is given to understanding the tradeoffs of different data structures in terms of efficiency, maintenance, and simplicity. As with the previous course, students will practice the skills of a computer scientist, which include testing and debugging, technical writing, creating and verifying theories, and using reference materials. Students taking this course are expected to have an understanding of object-oriented principles, substantive programming experience, and familiarity with computer science concepts that include efficiency, recursion, and abstraction.
The course will be taught using the Java programming language. Previous experience with Java is not required, but students without Java experience should anticipate needing some additional study at the beginning of the semester.
Lab assignments will be posted by the Monday of the scheduled lab period, and will be due on the Monday following the lab (at the beginning of class). Late assignments will be accepted until the following Friday with a 20% penalty. Many of the labs will be assigned for a two week period. In these cases, students will turn in their current work after one week and receive feedback and a score out of 5 points. The completed 2-week assignment, turned in after two weeks, is worth an additional 35 points. All one week labs are worth 20 points.
The scheduled lab period will be used to discuss the assignment and related concepts, and to provide students with immediate feedback as they work on the assignment. While students should be able to complete a substantial portion of the lab within the scheduled lab period, it is expected that a significant amount of work must occur outside of class time in order to finish the lab. Note: attendance at labs is mandatory.
In addition to labs, two 50-minute tests and a cumulative final exam, exercises will be assigned and presented on a daily basis. Students are expected to come prepared to present their solutions to problems assigned on the previous day. Grades will determined using the following weighted averages:
15% | Test 1 | Wed Mar 3 |
15% | Test 2 | Wed Apr 14 |
25% | Final Exam | Mon May 3 |
35% | 13 Labs | Weekly |
10% | Participation | Daily |
Unless explicitly told otherwise, all assignments in this course are individual assignments. Students may not work together in the design or implementation of code or written assignments. The only exceptions to this are:
All other assistance should come from the instructor. Any questions about the appropriateness of collaboration should be discussed with the instructor. Failure to acknowledge someone else's code or even design ideas in any work is plagiarism, which warrants a report to the College's judicial system and may lead to suspension or expulsion.
Week | Topic | Text Reading | Lab |
---|---|---|---|
Jan 20 | Software Development | Ch. 1 | No Lab |
Jan 25 | Abstract Objects | Ch. 2 | Java Review |
Feb 1 | Collection Classes | Ch. 3 | PokerHand collection class |
Feb 8 | Intro to linked lists | Ch. 4 | |
Feb 15 | More linked lists | Ch. 4 | Solitaire: Row of Cards using Linked Lists |
Feb 22 | Java Objects & Iterators | Ch. 5 | |
Mar 1 | Stacks & Queues | Ch. 6 & 7 | Evaluating RPN Expressions with Stacks |
Mar 8 | Priority Queues & Recursion | Ch. 7 and 8 | Queuing Simulation |
Mar 15 | Spring Break --- No classes | ||
Mar 22 | More Recursion | Ch. 8 | Group Project: Specification |
Mar 29 | Trees | Ch. 9 | Group Project Completion |
Apr 5 | Searching in arrays | Ch. 11 | Decision Trees |
Apr 12 | Searching with Hash tables | Ch. 11 | |
Apr 19 | Sorting | Ch. 12 | File compression using a hash table |
Apr 26 | Assorted topics | Ch. 13 & 14 |