La n Sp ga rin ra ar g Co ch 20 lle ive 06 ge d - Department of Computing Science and Information Systems CPSC 1160 –Program Design II Course Outline Spring 2006 Course Number: Section: Room: CPSC 1160 (4:0:2) 1 Section 1 Lecture: Lab: Instructor: Office: Office Hours: Phone Number: E-mail: B149 (12:30 - 13:25 MTWR–) B019 (15:30 - 17:25 —–W––) Bryan Green B246c 14:30 – 15:25 MTW–– (or by appointment) 604-323-5736 bgreen@langara.bc.ca Description and Objectives Provides extensive exposure to problem analysis and procedural abstraction through lectures and supervised labs and extending the principles of computer programming learned in CPSC 1150. Reviews data types, control statements, input/output facilities, and procedures. Covers recursion, complex data structures, systematic software development, abstract data types, creation of libraries of reusable routines, sorting and searching algorithms, efficiency considerations in algorithms, linked lists and graphs, advanced data manipulation and low-level applications. Object-oriented programming will be introduced. Students will develop a major project for this course. Upon successful completion of this course, you will be able to: • Design, develop, implement (using C++) and properly document programs for various applications of intermediate difficulty. • Continue to use procedural abstraction as well as data abstraction to solve problems • Design an ADT for, and implement (using static and dynamic data) and test some linear data structures (e.g., sets, queues, stacks, lists). • Analyze algorithms for efficiency. • Use recursion to solve simple tasks. La n Sp ga rin ra ar g Co ch 20 lle ive 06 ge d - Prerequisites and Expectations As printed in the calendar, the prerequisites for CPSC 1160 are: A minimum grade of "C" in one of CPSC 1150 or 1155; or permission of department. Other expectations for this course: • Students are expected to find at least 4 hours of lab time per week in addition to the scheduled class and lab time to complete hands-on exercises and assignments. • Students are encouraged to experiment to find the answer to their own questions and to learn new software features by looking up information in help files, by guessing, and by experimenting. Step-by-step procedural descriptions will evolve to independent problem solving. Transferability CPSC 1160 transfers to several other BC institutions. Please check the transfer guide for other institutions not mentioned here, or for your situation. SFU CMPT 212 (3) UBC CPSC 1st (3) if taken alone; LANG CPSC 1150 & LANG CPSC 1160 & LANG CPSC 1181 = UBC CPSC 111 (4) & UBC CPSC 211 (4) & UBC CPSC 1st (1) UVIC CSC 115 (1.5) Equipment and Labs The scheduled lab component of this course is taught in B019, which is equipped with IBM PCcompatible microcomputers. These computers (and all computers on campus) are attached to the Novell network, which provides shared storage and printing facilities. You can use any of Langara’s other labs (such as A215, A216, A217, A219, A264, B015, G109a, K110, L011, L012) to do your homework. Texts and Materials Required: • C++ plus Data Structures, 3ed. by Nell Dale, Jones and Bartlett, 2003. • At least 3 folders for handing in assignments Optional: • Absolute C++ 2ed. by Walter Savitch, Addison-Wesley, 2006. Course Evaluation Task Assignments (approx. 4) Lab Exercises Written Midterms (2) Unannounced quizzes / attendance / participation Final Written Examination B. Green 2 % of Final Mark 20% 10% 25% 10% 35% CPSC 1160 La n Sp ga rin ra ar g Co ch 20 lle ive 06 ge d - Grading Letter Percentage Grade A+ 90 – 100 A 85 – 89 A80 – 84 B+ 76 – 79 B 72 – 75 B68 – 71 C+ 64 – 67 C 60 – 63 C55 – 59 D 50 – 54 F < 50 Course Policies 1. Participation includes (but is not limited to): attending classes and labs, arriving on time and being prepared, working on and completing in-class exercises, being respectful of others and finally, offering responses to questions and actively participating in classroom discussions. 2. The student is responsible for all materials covered in any classes that he/she misses. 3. No make up midterms or quizzes will be given. 4. The final examination is common to all sections of CPSC 1160 and will be two (2) hours in duration. Permission to change the date and time of an exam cannot be granted by the instructor; it is given by the General Office only for valid reasons outlined in the Final Examination Policy (leaving for a holiday is not considered a valid reason). 5. In order to get a C or higher, a student MUST achieve at least a 50% average in each examination component (midterms and final) of the course. 6. In order to pass the course, everyone is required to hand-in an attempt at solving every assignment and to achieve a satisfactory assignment mark. 7. A student who misses 20% or more of the course (lectures, labs, or other activities) may receive a failing grade for the course, even if the mark would otherwise indicate a pass. 8. Each assignment is due on the day and the time appointed. Assignments received after that time will be considered late. 20% will be deducted for each day late. A partially completed assignment is better than a zero. If you will be late for or absent from class, it is your responsibility to make sure your assignment gets handed in on time. 9. Start your assignments early. The excuse "The computer ate my homework," or “The computer network is down” or any variants thereof, will not be accepted as viable reasons for lenience concerning the late policy. 10. Questions and problems regarding assignments will be posted on WebCT. Students are responsible for regularly checking for updates. 11. Each student is expected to his/her own work and enter his/her own keystrokes. While helping one another is encouraged, direct copying of assignments is cheating and will be B. Green 3 CPSC 1160 La n Sp ga rin ra ar g Co ch 20 lle ive 06 ge d - penalized appropriately. Penalties may include, but are not limited to: a zero grade on the assignment, an interview with the Dean, and a permanent note on your student record. 12. Please read other Langara Policies (http://www.langara.bc.ca/policies/index.html) under which you are required to abide, particularly B3002, B3008, B5002, and F1004. Useful Notes • • Computer science is a contact sport. The successful student is one who is interested in learning the rules of the game, not afraid of getting their hands dirty and willing to play with all their heart and enthusiasm. With respect to assigned work (and solving problems in general!), you might want to keep the following slogan in mind: “Make it work before you make it good; make it good before you make it beautiful”. The message it conveys is to concentrate on the important features of the overall design. Within the systems we will be using, it will be a constant danger to overly concentrate on whiz-bang presentation without doing anything productive. (“It took me a week and a half but I finally got my name to dance across the screen!”) You may get close to zero because although some piece of your output was incredibly brilliantly designed and beautifully presented, nothing actually worked the way it was supposed to! Emphasis will always be placed on modularity and the principles of incremental design, clear layout and helpful documentation. Topics 1. Review of what we know so far, up to procedural abstraction 2. Introduction to C++ 3. Guidelines: algorithms, design, analysis, testing, documentation and code 4. Program organization: modularization and libraries 5. Abstract data types and objects 6. Tools provided by C++: enumerated types, unions, structs, classes 7. Algorithm efficiency 8. Container classes and their implementations: sets, queues, stacks, lists, etc. 9. Pointers, references and dynamic data 10. Building classes with dynamic data 11. Simulation 12. Analysis of some recursive algorithms 13. Searching and sorting methods 14. Introduction, time permitting, to further OOP features such as inheritance Important Dates Feb 22 – Midterm #1 Feb 23, 24 – Spring Break Mar 22 – Midterm #2 Mar 31 – Last Day to Withdraw Apr 7, 10 – Study Days Apr 10 – 21 – Final Exam Period Apr 14, 17 – Good Friday and Easter B. Green 4 CPSC 1160