| Semester: | Spring 2009 |
| Room: | King 221 |
| Class Time: | Mon/Wed/Fri 10:00pm-10:50am |
| Office Hours: | Tuesday, 3:00-4:30pm Friday, 2:30-4:00pm or by appointment |
| Professor: | Benjamin Kuperman |
| email: |
benjamin.kuperman AT oberlin edu Please include "cs151" in the subject. |
| AIM: | ProfKuperman |
| Office: | King 223B |
| Phone: | x58556 |
| WEEK | DAY | ANNOUNCEMENTS | READING | HW |
|---|---|---|---|---|
| 1 | Feb 02 | Course Overview | Lab 0 - Intro to lab/Eclipse | |
| Feb 04 | Review of Java and Object Oriented Programming (Skim: Ch 1-3, Read: 2.5, 2.6, 3.3) |
|||
| Feb 06 | ||||
| 2 | Feb 09 | Inheritance, Generics, and Collections (Read: Ch 4, 6) |
Lab 1 - MyArrayList | |
| Feb 11 | Last Day to Add/Drop | Data Structure: Array Lists, Iterators (Read Ch 15) |
||
| Feb 13 | Algorithm Analysis
(Read Ch 5) |
|||
| 3 | Feb 16 | Lab 2 - Algorithm Timing | ||
| Feb 18 | Recursion
Data Structure: Queues (Read Ch 7.1-7.3, 7.7, 16) |
|||
| Feb 20 | Kuperman at ACEIS 2009 Awesome guest instructor! |
|||
| 4 | Feb 23 | Data Structure: Linked Lists (Read Ch 17) |
Lab 3 - Maze Solver | |
| Feb 25 | ||||
| Feb 27 | ||||
| 5 | Mar 02 | Data Structure: Trees
(Read Ch 18,19) |
Lab 4 - Directory | |
| Mar 04 | ||||
| Mar 06 | ||||
| 6 | Mar 09 | Lab 5 - Binary tree methods | ||
| Mar 11 | ||||
| Mar 13 | Swing and Graphical User Interfaces (Read Appendix B) |
|||
| 7 | Mar 16 | No Lab | ||
| Mar 18 | Review for exam | |||
| Mar 20 | Midterm Exam [topics] | |||
| Mar 23 | Spring Break (Mar 21-29) | |||
| Mar 25 | ||||
| Mar 27 | ||||
| 8 | Mar 30 | Data Structure: Priority Queues
(Read Ch 21) |
Lab 6 - Word Frequency Tree | |
| Apr 01 | ||||
| Apr 03 | ||||
| 9 | Apr 06 | Data Structure: Hashtables (Read Ch 20) |
Lab 7 - Process Queries | |
| Apr 08 | ||||
| Apr 10 | ||||
| 10 | Apr 13 | Data Structure: Tries | Lab 8 - Hashtable/GUI | |
| Apr 15 | Tentative: Data Structure: Graphs
(Read Ch 14) |
|||
| Apr 17 | ||||
| 11 | Apr 20 | Lab 9 - Boggle solver | ||
| Apr 22 | ||||
| Apr 24 | ||||
| 12 | Apr 27 | Last Day for P/NP, CR/NE, or Withdraw |
Lab 10 - Kevin Bacon Game | |
| Apr 29 | Sorting Algorithms
(Read Ch 8) |
|||
| May 01 | ||||
| 13 | May 04 | Lab review and Eclipse tips | ||
| May 06 | Other structures and algorithms
(Read ??) |
|||
| May 08 | ||||
| May 13 | Final Exam (7-9pm King 221) [topics] | |||
From the Oberlin catalog course description:
This course builds upon the principles introduced in CSCI 150 and provides a general background for further study in Computer Science. The course will cover object-oriented programming concepts; the design and implementation of data structures (linked lists, stacks, queues, trees, heaps, and hash tables) and related algorithmic techniques (searching, sorting, recursion); and algorithm analysis. Students will be expected to complete a number of programming projects illustrating the concepts presented.
My goals and objectives for students taking this course are as follows:
The text for the course is Data Structures and Problem Solving Using Java, Third Edition by Mark Weiss. All of the code from the text is available on the author's website: http://www.cs.fiu.edu/~weiss/dsj3/code/code.html
|
You can use the 2nd edition if you want, but you'll need to read up on the features added in Java 5 on your own.
A copy should be on reserve in the library.
Course grades will be calculated based on the following distribution:
The distribution might be adjusted based on the progression of the course.
Programming projects will generally consist of two major components:
If a portion of your program is not working correctly, please clearly indicate it in the comments at the beginning of the file and in the methods that are not working. Problems that I discover are graded more severely than those you discover.
Programming assignments will be graded on both correctness as well as programming style. Good programming style includes the following:
Regular class attendance and participation is expected. Please talk to me if regular class attendance is going to be a problem.
There will be a number of assignments made in this class. I expect every student to attempt each assignment and turn in the results. You are encouraged to complete every assignment as this is one of the most effective ways to learn the material.
If you know that for some reason you will not be able to submit the assignment before the deadline, you should contact me in advance of the deadline. Extensions are only granted in exceptional circumstances, but need to be done in advance.
Late submissions of lab assignments will be penalized up to 10% per day.
If you have a disability that might impact your performance in this course, or requires special accommodation, please contact me as soon as possible so that appropriate arrangements can be made. Support is available through Student Academic Services, specifically Jane Boomer. You will need to contact them to get your disability documented before accommodations can be made.
I have very low tolerance for academic dishonesty, and will vigorously pursue available remedies for any incidents. All work in this class is to be performed according to the Oberlin Honor Code. Specifically I expect that:
Illustrative examples:
All assignments must include the following signed statement:
"I have adhered to the Honor Code in this assignment."
Electronic submissions should include the honor statement in either the README file or header comments and must include your name.
Contact me if you are interested in a Student Academic Services approved tutor.
The CSMC might hold walk-in tutoring sessions as well.
The CS department will be hiring a couple of students to work as lab helpers. They will be in the upstairs lab during the hours posted below.
![]() |
![]() |
![]() |
| Joe Kramer-Miller Lab hours: Sun 2:00-5:00pm |
Sam Cole Lab hours: Sun 7:00-9:00pm |
Kiron Roy Lab hours: Tues 8:00-10:00pm |
Last Modified: March 01, 2009 - Benjamin A. Kuperman