Chabot College Fall 2002 Removed Fall 2006 Course Outline for Computer Science 22 OBJECT-ORIENTED PROGRAMMING PROJECT Catalog Description: Computer Science 22 – Object-Oriented Programming Project May be repeated 2 times 1 unit Designed for students considering transferring to UC Berkeley in Computer Science. Discussion of objected-oriented programming methods and a large (over 1500 lines) object-oriented programming project. Selected topics from advanced data structures (graphs, sparse matrices, AVL trees, priority queues, etc.), memory management, interprocess communication, formal program design and verification, software engineering, others. Recommendation of a Computer Science instructor required. Concurrent enrollment in a UC Berkeley computer science class such as Computer Science 61A, Computer Science 61B or Computer Science 61C recommended. Prerequisite: Computer Science 20 or Computer Science 20J (all completed with a grade of C or higher). 3 hours laboratory. Prerequisite Skills: Before entering the course the student should be able to: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. define the term abstract data type (ADT); define a list ADT and implement list ADT as array and vector class; implement list ADT as singly and doubly linked list class; define a stack ADT and implement stack ADT as array (or vector) and as a linked list; define a queue ADT and implement queue ADT as array (or vector) and as linked list; define a binary tree ADT and implement binary tree class; define a binary search tree ADT and derive a binary search tree class from binary tree class; write recursive methods and explain how recursion is implemented; implement selected iterative and recursive searching and sorting algorithms; design and implement a search that uses a hashing function; explain the concept of time efficiency for algorithms using Big-O notation. Expected Outcomes for Students: Upon completion of the course the student should be able to: 1. design and write an object-oriented program in C++ or Java comprising at least 1500 lines of code; 2. describe the features and properties of selected advanced topics in computer science: advanced data structures (sparse matrices, graphs, AVL trees, priority queues, others), interprocess communication, memory management, formal program design and verification, software engineering, data compression, graphics, cryptography, advanced database management concepts, information theory, programming language concepts, compilers, computer architecture, analysis of algorithms, or other advanced topics of interest to the instructor and class, as selected by the instructor. Topics covered will change from term to term. Chabot College Course Outline for Computer Science 22 Fall 2002 Page 2 Course Content: 1. Object-oriented program design methods 2. Selected optional topics a. Advanced data structures (graphs, sparse matrices, AVL trees, priority queues, etc.) b. Memory management c. Interprocess communication d. Formal program design and verification e. Software engineering f. Other topics of interest Methods of Presentation: 1. Lecture/discussion 2. Student presentations of topics of interest and their projects 3. Students’ project-related questions Assignments and Methods of Evaluating Student Progress: 1. Typical Assignments a. One large (at least 1500 lines) object-oriented program b. Suggestions for projects could be simulations of real-word scenarios (road, rail, or air traffic, grocery store customers, ambulance companies, etc., modeling the behavior of a computer sub-system like a disk with many requests for reading or writing sectors), or a game of some complexity, etc. 2. Methods of Evaluating Student Progress a. Class project: Object-oriented program (at least 1500 lines) Textbook(s) (Typical): Program Development in Java, Barbara Liskov with John Guttag, Addison Wesley Publishers, 2001. Special Student Materials: Computer Lab fee Diskettes Optional zip disk Revised: 7/2001 Keith Mehl CS 22 Outline Fall 2002 hps