COMP 121: Data structures


Time/ Location. Tu Th 12:30 – 1:45. SN 014

(MWF 4:30 – 5:20. SN 014)

Instructor. Sanjoy Baruah [baruah@cs.unc.edu; (919)962-1803; Sitterson 319]

Course Goal. To provide knowledge of, and experience in implementing, several useful data structures and associated algorithms.

Objectives. During this course, you will

Prerequisites. Discrete Mathematics (Math 81) and Foundations of Programming (Comp 114). You must drop the course if you do not have these prerequisites.

Text. The required course text is: Sartaj Sahni, Data structures, algorithms, and applications in C++. WCB/McGraw-Hill. If you are not already familiar with the C++ programming language, you should also purchase some introductory language text.

Grading. Grades will be based on several programming assignments (30% of your grade), two in-class exams (30%), a final examination (25%), and class-participation and pop-quizzes (15%). I reserve the right to change the method of assigning grades.

Programs. Barring documented tragedy, I will not accept late programs. You are not permitted to work in groups --- all your work must be your own, and you must attest to this in a signed comment that begins each program.

Special needs. If you are entitled to extra accommodation for any reason (such as a disability), we will make every reasonable attempt to accomodate you. However, it is your responsibility to discuss this with the instructor during the first week of the course.

Course Information. Latest organizational information concerning this course is available off the WWW, at the following URL:

http://www.cs.unc.edu/~baruah/Teaching/2000S/courseHomePage.htm

It is your responsibility to check this URL frequently.

Course outline (subject to change)

(Features of C++, object-oriented programming principles, and features of the Unix programming environment will be introduced concurrently with the study of these topics, as appropriate.)

  1. Review of C++
  2. Introduction to Unix
  3. Review of program performance

-- searching (linear vs binary) & sorting (insertion sort vs mergesort)

  1. Data representation and lists
  2. Stacks and Queues
  3. Hash tables
  4. Binary trees
  1. Priority queues
  1. Search trees
  1. Graphs