Department of Computer Science and Engineering
CS302: Data Structures (Spring 2012)
Meets: TR 2:30 PM - 3:45 PM (new room: SEM 326)
Instructor:
Dr. George Bebis
- Email:
bebis@cse.unr.edu
- Phone:
(775) 784-6463
- Office : SEM 235
- Office Hours: TR 4:00 PM - 5:30 PM and by appointment
Student Assistant: Emily Hand
- E-mail: e.hand@live.com
- Office Hours: W: 4pm - 6pm and F: 1pm - 4pm
- Office ECC (Linux Lab), SEM 2nd floor
Text:
N. Dale C++ Plus Data Structures Jones and Bartlett Publishers, 4th edition, 2007.
Other Texts:
- W. Ford and W. Topp, Data Structures with C++, Prentice Hall
- R. Kruse and A. Ryba Data Structures and Program Design in C++ , Prentice Hall
.
- M. Main and W. Savitch Data Structures and Other Objects Using C++., Addison-Wesley
Prerequisites
C or above in CS202. If you do not meet the prerequisite requirements for this course, you should see me immediately.
Description/Objectives
The purpose of this course is to introduce you to 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)
- C++ Review
- Introduction to Image Processing and Analysis
- Analysis of Algorithms
- Stacks (i.e., array-based an linked-list-based) & Templates
- Queues (i.e., array-based an linked-list-based)
- Unsorted Lists (i.e., array-based an linked-list-based)
- Sorted Lists (i.e., array-based an linked-list-based)
- Recursion
- Binary Search Trees
- Heaps and Priority Queues
- Graphs (i.e., array-based an linked-list-based)
- Searching (i.e., DFS and BFS)
- Shortest Paths (i.e., Dijkstra.s and Bellman-Ford algorithms)
- Sorting
- Selection Sort, Bubble Sort, Insertion Sort
- Heapsort, Mergesort, Quicksort
- Linear Time Sorts
- Advanced Data Structures for Searching
- Range Trees
- kD-Trees
- Quadtree
- Hashing
Exams and Assignments
Grading will be based on two exams, 6-7 quizzes and 4-5 programming assignments.
Quizzes will be announced at least one class period in advance. There will be
two exams: a mideterm and a final. The material covered in the exams will be
drawn from the lectures and the quizzes. The programming assignments will be
done in groups of two. The goal is to provide you with hands-on experience
with handling various kinds of data structures. Homework will be assigned but
will not be collected for grading.
Course Policies
Slides, assignments, and other useful information will be posted on the course
web page. Regular attendance is highly recommended. If you miss a class, you
are responsible for all material covered or assigned in class.
The programming assignments are to be completed in groups of two, however,
both members of a team are 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.
Assignments which are too similar will receive a zero. No late
programming assignments will be accepted unless there is an extreme
emergency. If you are unable to hand in an assignment by the deadline,
you must discuss it with me before the deadline in order to avoid the late
penalty. No incomplete grades (INC) will be given in this course and a missed
quiz/exam may be made up only if it was missed due to an extreme emergency.
Academic Dishonesty
Your continued enrollment in this course implies that you have read the section on Academic Dishonesty found in the UNR Student Handbook (see http://www.unr.edu/stsv/acdispol.html) and that you subscribe to the principles stated therein.
Disability Statement
Any student with a disability needing academic accomodations is requested
to speak with me or contact the Disability Resource Center (Thompson Building,
Suite 101), as soon as possible to arrange for appropriate accomodations.
Unauthorized class audio recording or video-taping
Surreptitious or covert video-taping of class or unauthorized audio recording
of class is prohibited by law and by Board of Regents policy. This class may be
videotaped or audio recorded only with the written permission of the instructor.
In order to accommodate students with disabilities, some students may have been
given permission to record class lectures and discussions. Therefore, students
should understand that their comments during class may be recorded.
Useful Information
- Research
- Data Structures
- C++ information
- Unix information
- Makefiles
- Debugging
Syllabus
Sample Exams
Helpful Material Related to Images
Source Code for Reading/Writing Images
Lectures
Homework Assignments
Programming Assignments