Office hours: MWF 11 am-noon, MF 1:30-2:30 (or
by
appointment)
Meeting time: MWF
10-10:50 am, King 221
Lab: Tuesdays
1-2:50, King
135
Course Information
Prerequisite: CS 150
Text: Weiss, Data
Structures
and
Problem Solving using in Java,
4th edition, Addison Wesley, 2010.
Course Objectives:
To study fundamental data structures and algorithms which are
used in different areas of computer science.
To learn basic techniques used in the implementation of data
structures.
To introduce the theory used to study algorithms; that is, the
basic methods of algorithm analysis.
To gain further experience in object-oriented programming and
design.
Grading Procedures
Your grade will be based on weekly labs and and two exams.
Point breakdown (tentative):
Labs
220
Midterm Exam (October 22)
100
Final Exam (December 20 - 2 pm)
150
Total
470
Policies
The results of each Tuesday lab session are to be handed in
electronically
by midnight the following Sunday. Late assignments will be
assessed
a penalty of up to 10% per day.
All late assignments must be submitted by the end of the reading period
(December 17).
Regular class attendance and participation is expected of everyone in
the class.
The Honor Code
The Honor Code has a straightforward application to this class.
On
all of the exams you are responsible for your own work; you may neither
give
nor receive aid during the course of the exam. If someone takes
an
exam at a different time than the rest of the class there may be no
communication
concerning the exam between that person and anyone else in the class,
not
even about whether the exam was easy or difficult. The atmosphere
is
somewhat more relaxed for the homework and programming assignments.
You
may discuss the problems with anyone else in the class, but you may not
share your code with anyone. You must design and write your own
solutions.
Course outline
Review of object-oriented programming in Java: classes,
methods,
and inheritance. The Java Collection classes. (Chapters
1-4, 6)
Foundations of algorithm analysis: measuring run time.
(Chapter 5)
Recursion. (Chapter 7)
Stacks and queues.
(Chapter 16)
Linked lists. (Chapter 17)
Binary trees and binary search trees. (Chapters 18, 19)