SFU Computing Science 04-2 ________________________________________________________________________ CMPT 201-4 Day" Data and Program Abstraction Instructor: A. Lavergne SFU ________________________________________________________________________ OBJECTIVE/DESCRIPTION: This course will explore ideas of data and program organization that allow complex tasks to be solved in simple and elegant ways. In order to manage the complexity of programs, we will look at program design and organization ideas such as abstract data types and object-oriented programming. We will gain practical experience of these ideas by considering their implementations in the Java programming language. TOPICS: o Object-oriented design and programming issues. o Abstract data types: encapsulation and information hiding, public interfaces. o Data structures: strings, sets, stacks, queues, lists, hash tables, trees, graphs (if time). o Recursive programming. GRADING: There will be 4 assignments worth 30% of the course, 1 midterm worth 25%, and a final exam (3 hrs) worth 45%. TEXTBOOKS: o Data Structures & Problem Solving with Java - Walls and Mirrors, F. Carrano & J. Prichard, Addison Wesley, 2001 REFERENCES: o Classic Data Structures in Java, Timothy Budd, Addison Wesley, 2001 o Computing Concepts with Java 2 essentials, 3rd edition, Cay Horstmann, John Wiley, 2003 o Problem Solving with Java, Elliot Koffman and Ursula Wolz, Addison Wesley 1999, o Java How to Program , H. Deitel and P.J. Deitel, Prentice Hall,1999 , o Data Structures & Prog Design in C++, Robert Kruse & A.J. Ryba, Prentice Hall, 1999: Has a good selection of data structures. PREREQUISITES/COREQUISITES: CMPT 101 or CMPT 104,and MACM 101 A minimum grade of C- is required in all prerequisite courses. Distributed: March 1, 2004 ....................................................................... Academic Honesty plays a key role in our efforts to maintain a high standard of academic excellence and integrity. Students are advised that ALL acts of intellectual dishonesty are subject to disciplinary action by the School; serious infractions are dealt with in accordance with the Code of Academic Honesty (T10.02) (http://www.sfu.ca/policies/teaching/t10-02.htm). Students are encouraged to read the School's Statement on Intellectual Honesty (http://www.cs.sfu.ca/undergrad/Policies/honesty.html).