General Information

Section: Class Hours: Room: Instructor: E-mail: Office: Office Hours:
CMP 338 ZF81 (77233) M, W 6:00-7:40 PM GI-305 Sameh Fakhouri sameh DOT fakhouri AT lehman DOT cuny DOT edu GI-102 Tuesdays 1:00-4:00 PM

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

Grading Policy

Expectations: Students are expected to learn both the material covered in class and the material in the textbook and other assigned reading. Completing homework is an essential part of the learning experience. Students should review topics from prior courses as needed using old notes and books.

Honor Code: You are encouraged to work together on the overall design of the homework. However, for specific homework assignments, all work must be your own. You are responsible for knowing and following Lehman's academic integrity code (available from the Undergraduate Bulletin, Graduate Bulletin, or the Office of Academic Standards and Evaluations).
All incidents of cheating will be reported to the Vice President of Student Affairs.

Email: I will be communicating with you on a regular basis throughout the semester using your Lehman College email address. You must check that email address on a regular basis. There will be no acceptable excuse for missing an email announcement.

Homework: Homework is due most weeks. Homework assignments are posted on the class website, they reinforce concepts covered in class. Extra credit will be availble for the homework and will consist of 5% for the completion of the homework 24 hrs ahead of the deadline and 10% for the completion of the homework 48 hrs ahead of the deadline.

All homework will be submitted on blackboard.

No late homework will be accepted.

Exams:

Grades: The grading for the course will be based on:

Since the final exam is comprehensive, if you do better on the final exam than the midterm exam, the final grade can replace the midterm grade. This will be done automatically when your final grade is calculated. Please note that There are no make-up exams.

Materials, Resources and Accommodating Disabilities

Textbook: Data Abstraction and Problem Solving with Java: Walls and Mirrors by Frank M. Carrano and Janet J. Prichard. (ISBN: 978-0-13-212230-6).

Technology: Students will need to have access to personal computers with Java IDE software installed, Eclipse. 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. Please visit the Eclipse Download Page

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 info, please contact the Office of Student Disability Services, Shuster Hall, Room 238, phone number, 718-960-8441.

Course Objectives

At the end of the course, students should:

  1. Improve skills in object-oriented programming.
  2. Improve understanding of recursive methods.
  3. Understand a core group of basic data structures as enumerated in topics below.
  4. Be able to conceptualize many programming issues at a higher level through data structures.
  5. Know the tradeoffs of each studied data structure so as to employ the appropriate one for a given situation.
  6. Be able to design algorithms that incorporate data structures for efficient handling of data.
  7. Be able to code algorithms involving data structures using an object oriented programming language.
  8. Be able to analyze new data structures and their algorithms for asymptotic behavior.
  9. Achieve a level of maturity in the subject so that further study of data structures can be pursued independently.

Review Topics

Topics

For each algorithm, verification of its correctness and analysis of its efficiency will be considered.