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)