Fall 2009 York College, CUNY CS 291 SV Introduction to Data Structures 4 hrs, 4 credits, Prerequisite: CS 172; Pre-coreq: MATH 141. Not open to students with credit in MATH 291. Danyang (Dan) Zhang, Ph.D. Office: 4G04C Office hours: M 1:30pm-3:30pm Phone: (718)262-2749 E-mail: dzhang@york.cuny.edu Time: M, W 6:00—7:50pm Place: CL-206 Class Website: http://faculty.york.cuny.edu/dzhang/cs291.htm Course Description This course will give you an introduction to data structures in computer programming. Besides learning the basics of the programming language C++ and various data structures such as linked lists, stacks and queues, this course has a heavy focus on problem solving. You will learn and practice to analyze and understand given problems and then design, implement and test solutions for them. This course will introduce you to a methodology of systematic problems solving used in computer science and related fields. This approach to problems will be useful in many different areas beyond computing or computer science. Required Textbook C++ Plus Data Structures, 4th Edition, by Nell Dale Publisher: Jones and Bartlett Publishers, ISBN 0-7637-4158-2 Course Objectives By the end of the semester, students will be able to: (1) The students will understand the concepts of the following data structures and know how to implement them in the programming language C++: • Unsorted List • Sorted List • Stack • Queue • Linked List (2) The students will understand how recursion works and know how to design recursive programs; (3) The students will know the basic sorting and searching algorithms. Grading Policy Homeworks (written and programming) 10% Lab and Projects 30% Midterm 20% Final Exam 30% Attendance, Class Participation and Quizzes 10% 1 Fall 2009 York College, CUNY Class Requirements 1. Attendance is MANDATORY. Students are required to attend each class. For absence due to emergency reasons, related documentation needs to be submitted to the instructor. 2. Projects are usually group projects. Report to the instructor if any group member does not contribute to the completion of the projects. No contribution, no credits. 3. Late submissions will be deducted by 10% of the total points for each day late except a college verified excuse. 4. Quiz can not be made up. 5. Other academic policies. Refer to “Academic Integrity Policy” below. Class Schedule Week Lecture topic 1 Review structured programming concepts 2 Objects and classes: using objects, data members and functions 3 Objects and classes: constructors, data access (public and private) 4 Pointers: Dynamic Memory Allocation 5 Pointers: pointers to objects 6 Pointers and Arrays: Dynamically allocated arrays 7 Review and Midterm 8 Abstract Data Type, Unsorted List 9 Sorted List: concepts and implementation 10 Stack and Queue: concepts and implementation 11 Linked List: concepts and implementation 12 Recursion 13 Sorting and Searching 14 Class wrap-up and review Final Exam C++ IDE (Integrated Development Environment) 1. Microsoft Visual Studio: commercial software, installed in the lab, runs on Windows. 2. Bloodshed http://www.bloodshed.net/ freeware, runs on Windows and Linux. Academic Integrity Policy Academic dishonesty is prohibited. Penalties include failing grade, suspension, and expulsion: http://web.cuny.edu/academics/info-central/policies/academic-integrity.pdf No use of cell phone or any communications device during class and exam hours; No cheating, no act of plagiarism in any forms or media. Students are required to follow the CUNY policy on academic integrity, which is available on the CUNY site above. A brief description of the policy is also included in the Schedule of Classes booklet. Accommodations for Learning Disabled Special arrangement can be made for students with verification letter from the Office in 1G02. 2