Syllabus

CMP 338: Data Structures and Algorithms I
Spring 2011

Catalog Description: 4 hours, 4 credits. Abstract characterizations as well as the design and implementation of data structures such as arrays, stacks, queues, linked lists, binary search trees, heaps, and graphs along with algorithms that make use of such structures including algorithms for sorting, searching, and memory management, will be studied. Algorithms will be analyzed for their asymptotic behavior in terms of time complexity and space requirements will be considered as well. Implementation issues will be considered and students will write programs that embody these data structures and algorithms.
Prerequisites: CMP 326 and CMP 232

Instructor: Dr. Katherine St. John, stjohn AT lehman.cuny.edu
Office Hours: listed here
Class meetings: Tuesdays and Thursdays from 9 to 10:40 in Gillet 333.

Grading Policy

Expectations: Students are expected to learn both the material covered in class and from the textbook and any other assigned reading. Students must write readable and complete programs that execute correctly. Completing homework is part of the learning experience. Students should review material from prior courses as needed using old notes and textbooks.

Homework: In addition to explicitly assigned problems, students should implement each data structure and algorithm that is covered in class. Style and comments are a necessary component of programs. Complete sentences, correct spelling and grammar are expected for written exercises. Homework will be submitted via the campus Blackboard system and is due by midnight of the assigned date.

Note that no late homework is accepted. However, there is a bonus for turning in homework early-- up to 12 points for 2 days early (prorated at .25 points for every hour early).

Exams: There will be two midterm exams and a final exam. The exams will be:

Since the final exam is comprehensive, if you do better on the final exam than the midterm exams, the final grade can replace those grades. There are no make-up exams.

Grades: The precise grading policy for your section will be determined by your instructor.

Materials, Resources and Accommodating Disabilities

Textbook: There is no required textbook for the course. Suggested books include Introduction to Algorithms by Cormen, Leiserson, and Rivest (about $70 from Amazon.com) and Data Abstraction and Problem Solving with Java: Walls and Mirrors by Frank M. Carrano and Janet J. Prichard (about $115 on Amazon.com).

Technology: Students will need to have access to personal computers with Java IDE software installed. Such computers are available for student use on campus. For students with computers at home, Java IDE Software is available free of charge on the internet. See, for example, eclipse.org

Accommodating Disabilities: Lehman College is committed to providing access to all programs and curricula to all students. Students with disabilities who may need classroom accommodations are encouraged to register with the Office of Student Disability Services. For more information, please contact the Office of Student Disabilities, Shuster Hall, Room 238, phone number (718) 960-8441.

Course Objectives

At the end of the course students should:

  1. Analyze and use lists, stacks, queues, trees, graphs, and hashes.
  2. Be able to describe formal analysis measures as well as use them in the analysis of new data structures and algorithms.
  3. Describe and use abstraction for problem solving.
  4. Apply algorithm design techniques to solve programming challenges efficiently.
  5. Use appropriate data structures in programming.
Note: An outline of the course topics can be found on the course webpage:
http://comet.lehman.cuny.edu/stjohn/teaching/cmp338/s11.html