Other Useful Information
 Course Description 
The purpose of this course is to introduce you to the exciting world of data 
structures, an issue central to the art of computer programming. At the end 
of the course you will be equipped with the tools of data organization to 
enable you to write simple, clear, and efficient programs. The course will 
be structured around a comprehensive set of computer assignments to enable 
you to get hands on experience. Our programming language of choice will be C++. 
Course Outline (tentative) 
- Software Engineering Principles (Chapter 1)
 - C++ Review 
 - Stack and Queue 
 - Unsorted and Sorted Lists 
 - Linked Structures 
 - Lists Plus
 - Recursion 
 - Binary Search Tree 
 - Trees Plus 
 - Sorting and Searching (if time permits)
 
Exams and Assignments
There will be one midterm exam and a final. The material covered by the exams
will be drawn from the lectures and from the homework. Both exams will be
closed books, closed notes. Moreover, there will be 5-6 short quizzes in class
(they will be announced at least one class period in advance). Homework
problems will be assigned but will not be collected
for grading. Also, there will be 4-5 programming assignments. The goal of the
assignments is to provide you with hands-on experience with handling various
kind of data structures. In the lectures, you will be introduced to data
structures at an abstract level and in the assignments you will write
code to implement and use these data structures. The set of tasks
chosen for your assignments all relate to images (check the web page
of the course for more information on how to read, write, and display images).
You will design algorithms to perform simple image processing tasks using data
structures such as arrays, stacks, queues, trees, and hash tables. These
exercises are not only important from a grading standpoint but also are
crucial learning tools.
You will use your Linux accounts to do the assignments. The Engineering
Lab contains a number of PCs to host your assignments and is a good 
place to do your work. You can, of course, remote log in to any of the 
PCs. The assignments are to be completed in groups of 2-3, however, 
all the members of the team is expected to fully understand the structure of 
the code and the implemented algorithms. Discussion of the programming 
assignments is allowed and encouraged. However, each team is expected to do 
its own work.
Ghostview(software for viewing postscript files)