CPSC 215L: Data Structures and Algorithms
(Spring 2008)
Syllabus
Course Description
In this course we will study data structures and algorithms using the
Java programming language. The basic data structures (lists, stacks,
queues, trees) and basic algorithms (searching, sorting, recursion)
will be introduced and implemented or applied. This course is a
programming course and builds on the programming and design skills
introduced in CPSC 115 (Introduction to Computing). Emphasis will be
placed on designing and implementing object-oriented programs that
implement or use the basic data structures and algorithms. This course
will also introduce some basic concepts used in the complexity
analysis of algorithms. Details related to programming will be covered
in a required weekly lab.
Course Goals
The objectives of the course are:
to consolidate the knowledge of object-oriented design and
programming technique that was begun in CPSC 115L, especially
emphasizing the design and implementation of larger programs utilizing
an object oriented approach;
to begin a detailed study of data structures, data abstraction,
and related algorithms;
to introduce the uses of mathematical concepts such as complexity
analysis (Big-O notation) and program verification techniques to
analyze the behavior and efficiency of algorithms.
Grading Policies
Final grades are determined by taking weighted averages of your grades
on exams, programs, labs, and quizzes. There will be 2 hourly exams
and a 2 hour comprehensive final exam. To calculate your letter grade
at any given time during the course, just calculate your average on
exams, programs, labs and quizzes, multiply each by its weight and add
them together. A final average of 90% or better is A-, 80% or better
is B-, and so on.
Category
Weight
Hour Examinations (2)
30%
Final Examination
20%
Weekly Lab Assignments
20%
Programming Assignments
20%
Quizzes and Graded Homework
10%
TOTAL
100%
Attendance Policy
Attending class is crucial. The lecture sessions are
your opportunity to ask questions about the reading material,
homework, and other course content. The laboratory sessions are your
only opportunity to get hands-on help on the programming assignments.
If you must miss class or lab for any reason -- e.g., illness, travel,
oversleeping -- you must demonstrate that you have adequately mastered
the material for that day's class. This will be done by writing a 1-2 page
paper on that day's class material (in addition to completing any missed
assignments). These papers will be due at the next class. They will be
graded PASS/FAIL. Each failure (or failure to turn in the makeup
paper) will result in your final grade being lowered by one point
(e.g. 87 to 86).
Java, Java, Java!, 3rd Edition , R. Morelli, (Prentice-Hall, 2006)
Java in a Nutshell, 2nd Edition, David Flanagan, (O'Reilly, 1997)
Lab Grades
Most weekly labs will not be graded. These sessions will focus on a
programming exercise and the Lab Instructor and TA will provide
assistance, and answer questions. However, even though these sessions
are not graded, you are required to complete the lab exercise. Missed
labs should be completed in a timely fashion and are subject to the
same penalties as missed lectures.
There will be three or four graded labs during the semester. During
these labs, you will be given a programming problem but the Instructor
and TA will not provide help on the programming exercise, although
they will be available to help with system problems.
Programming Assignments
There will be 2 out-of-lab programming assignments. These will differ
from lab exercises in that you will be asked to design, code, test and
debug an entire program on your own and you will be evaluated on the
program's design, correctness, and readability.
Homework/Quizzes
The online course schedule lists the
reading and homework for each lecture session. These assignments
should be done BEFORE coming to class. We will try to use the lectures
to go over questions that come up in the reading or homework. There
may be periodic quizzes on the reading and homework.
TA Sessions/Study Halls
To help establish a supportive environment for the homework and
reading assignments, the TAs will conduct regular
evening study hall
sessions.