Data Structures and Problem
Solving Using in Java, Weiss (2nd edition)
C++ for Java Programmers, Budd (3rd edition)
OBJECTIVE:
This course is designed
to complete your transformation from computer programmers to computer
scientists.In CS 251 we start to look
``under the hood" of various data structures (some old ones, some new) and
investigate how they can be implemented. After taking this course, writing
programs that simply work will no longer satisfactory - your programs should
now work as efficiently as possible, making use of these data structures and of
various algorithmic techniques that are to be covered during this semester.We will also use this course as an
opportunity to learn a new programming language -- C++ -- and compare and
contrast it with Java.This will serve
as a foundation for a more rigorous study ofprogramming languages in CS 411
(Language Design and Implementation).
GOALS:
learn the C++ programming
language
learn the mathematical tools
necessary to perform algorithm analysis
learn the mechanics and the
uses of basic data structures such as stacks, queues, lists, hash tables,
priority queues, graphs
learn various types of algorithmic
solutions to problems such as divide and conquer, backtracking