La n Sp ga rin ra ar g Co ch 20 lle ive 07 ge d - Department of Computing Science and Information Systems CPSC 1181 – Object-Oriented Computing Course Outline Spring 2007 Course Number: Sections: Room: CPSC 1181 (4:0:2) 1 Section 1 Lecture: Lab: Instructor: Office: Office Hours: Phone Number: E-mail: B014 (15:30 - 17:25 M––R-) A217 (15:30 - 17:25 ––T—) Bryan Green B246c 9:30 – 11:25 TR (or by appointment) 604-323-5736 bgreen@langara.bc.ca Description and Objectives As printed in the calendar, the description is: Introduces the fundamental concepts of programming from an object-oriented (OO) perspective: abstraction; objects; classes and class hierarchies; methods; parameter passing; encapsulation and information hiding; inheritance; polymorphism. OO design with modeling tools (e.g., class diagrams). Application of simple container/collection classes; event-driven programming; exception handling; GUI; multithreading; and networking. Emphasizes good software engineering principles using a language that supports the OO paradigm (e.g., Java). The topics covered will be: 1. Object Oriented Programming – classes and objects 2. Java Data types, Arrays and Strings 3. Inheritance and Polymorphism 4. Java Applets and GUI Design 5. Event Handling 6. Files and Streams 7. Exception Handling La n Sp ga rin ra ar g Co ch 20 lle ive 07 ge d - 8. Multithreading 9. UML Prerequisites and Expectations As printed in the calendar, the prerequisite for CPSC 1181 is minimum ‘C’ in CPSC 1150 or CPSC 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 answers to their own questions and to learn new software features by looking up information in help files, by guessing, and by experimenting. Transferability CPSC 1181 transfers to several other BC institutions. Please check the transfer guide for other institutions not mentioned here, or for your situation. SFU CMPT 125 (3) – Q UBC CPSC (3) 1st. or CPSC 1150 & LANG CPSC 1160 & LANG CPSC 1181 = UBC CPSC 111 (4) & UBC CPSC 211 (4) & UBC CPSC 1st (1). UVIC CSC 110 (1.5); LANG CPSC 1150 & LANG CPSC 1181 = UVIC CSC 110 (1.5) & UVIC CSC 100 lev (1.5) Equipment and Labs The scheduled lab component of this course is taught in A217, which is equipped with IBM PCcompatible microcomputers. These computers (and all computers on campus) are attached to the 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, B019, G109a, K110, L011, L012) to do your homework. Texts and Materials Required: • A couple of 3½ floppy disks or memory stick • Folders for handing in assignments Required (buy at least one): • Big Java 2ed, Cay Horstmann (John Wiley and Sons, 2006). • OO Design & Patterns, 2nd ed., Cay Horstmann (John Wiley and Sons, 2005). Useful: • Thinking in Java, 3rd or 4th edition, Bruce Eckel (I:\Courses\CPSC\1181\Thinking In Java or http://bruceeckel.com/) B. Green 2 CPSC 1181 La n Sp ga rin ra ar g Co ch 20 lle ive 07 ge d - Course Evaluation Task % of Final Mark 25% 30% 10% 35% Written Midterms (2) Weekly Labs and Assignments Unannounced quizzes and participation Final Written Examination 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 1181 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 Registrars 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 in computer science courses, 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 may receive a failing grade in the course, even if the mark would otherwise be 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 B. Green 3 CPSC 1181 La n Sp ga rin ra ar g Co ch 20 lle ive 07 ge d - completed assignment is better than a zero. If you will be late for or absent from a 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 the class Web site. Students are responsible for regularly checking the site for updates. 11. Each student is expected to do 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 penalized appropriately. Penalties may include, but are not limited to: a zero grade on the assignment, failing the course, 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. B. Green 4 CPSC 1181 La n Sp ga rin ra ar g Co ch 20 lle ive 07 ge d - Outline The following is a tentative schedule for the semester. Due dates are subject to change. Week Lecture Topic 1 Jan 8 – 12 Introduction / OOP/ Objects and data types 2 Jan 15 – 19 Decisions, Loops and arrays 3 Jan 22 – 26 Designing Classes and UML 4 Jan 29 – Feb 2 5 Feb 5 – 9 6 Feb 12 – 16 7 Feb 19 – 23 8 Feb 26 – Mar 2 9 Mar 5 – 9 10 Mar 12 – 16 11 Mar 19 – 23 12 Mar 26 – 30 13 Apr 2 – 6 Generics and Internet Programming Apr 9 – 19 Final Exam Period Apr 9 – Easter Monday Apr 10 – Study Day Textbook Readings Ch 1, 17.1, 2, 3, 4, 5, A, C Ch 6, 7, 8, E, F, G, K Ch 9, 17.2, N Testing Ch 10 Interfaces Ch 11 Inheritance and Polymorphism Ch 13 Exception Handling 14 B. Green Feb 22 - 23 – Spring Break Class Cancelled File IO Feb 26 – Midterm #1 Ch 15 Ch 16 Event Handling Ch 12 GUI Ch 14 OO Design Mar 22 – Midterm #2 Multithreading Mar 30 – Last Day to Withdraw 5 Ch 17 Ch 23 Ch 22, 24 CPSC 1181