SYLLABUS CMPS 2143: Object Oriented Programming Catalog Description: Introduction to object-oriented Programming techniques including but not limited to classes, objects, inheritance, polymorphism, and overloading. Various object-oriented languages will be considered. Instructor: Office: Office phone: E-mail: Office Hours: Dr. Catherine V. Stringfellow Bolin Science Hall, Room 128C 397-4578 catherine.stringfellow@mwsu.edu MWF 9-10am, MW 1:30-2:30pm, TR 9:30-11:30am, 3-3:30pm and by appt Credits: 3 (3 hour lecture) Course Prerequisite: Minimum grade of C in CMPS 1063: Data Structures & ADTs Required Textbook and Materials: The Object-Oriented Thought Process (4th ed.), Matt Weisfeld, Addison-Wesley, ISBN 978-0-321-86127-6. USB Flash drives Recommended Textbook UML Distilled, Martin Fowler, available for checkout A Java textbook and your C++ textbook from CMPS1063 (online sources acceptable) General Objectives Students will learn the concepts of object-oriented programming (OOP) including abstraction, modularity and encapsulation mechanisms in several languages, such as C++, Java, C#, Python, etc. Students will examine abstract data types both from a software engineering and representational perspective and be able to develop advanced Java/C++ constructs such as abstract base classes, static members and other constructs. Students will explore other concepts including polymorphism, operator overloading, and message passing viz. generic functions, late versus early binding times, as well as inheritance mechanisms. Students will learn object oriented design techniques as well as OOP paradigm and be able to apply classic OOP design patterns and frameworks. The emphasis of this course this semester will be the comparison of central features of several OOP languages. Special topics will be included as time permits. Instructional Method: Primarily lecture. Students and instructor will share their experience of coding programs in OOP languages. The instructor may group students in pairs for the different programming assignments. Class participation is highly recommended. Course Assignments and Evaluation: Students will be required to write four or five moderately complex programs in either C++ or Java. There might be a few very small programming assignments that will aid you in the larger assignments. These programs will involve applying some of the general concepts learned in class. Good documentation will also be expected! A couple of writing assignments and a few homework assignments will also be required. Final grades will be based on the following criteria. Activity percentage of grade Homework, quizzes, and participation Programming assignments TWO Exams Final 20% 45% 20% 15% Grades may be determined according to this scale (approximate): A 90% - 100% B 80% - 89% C 70% - 79% D 60% - 69% Makeup Exams and Quizzes: There are two exams and one final exam. The only acceptable reason for missing an exam is with a valid university excuse (e.g., excuse from the doctor, death in the immediate family, etc.) A makeup exam will only be given to those students who have a valid excuse. If you know ahead of time that you will miss an exam, please see me. Programming Assignment Policy: Policy for late programs and grading will be handed out. FALL 2015 CS2143-TENTATIVE ACADEMIC CALENDAR Aug 24 Aug 31 Sep 7 1 Tuesday Course info; Intro to OOP 2 Java Class Example (on Y:/drive in labs) OOD UML Assg1: Simple review 3 Advanced Classes and Methods Instances and Initialization Constructors/Destructors Assg1 due Assg2: objects Package/Library Case Study Stream classes REVIEW Review Assg2 Classwork Abstract classes Interfaces Subclasses and Subtypes Static/Dynamic Typing Sep 14 4 Sep 21 5 Sep 28 6 Oct 5 7 Oct 12 8 Oct 19 9 Oct 26 10 Nov 2 11 Nov 9 12 Nov 16 13 Nov 23 14 Nov 30 15 Dec 7 16 TEST 1 Inheritance Substitution Go over Assg 2 Copy, Clone, Equality Polymorphism REVIEW Reuse Mechanisms Thursday Abstraction Assgs HW1: email Install Java sdk Assg2 due Assg3 Multiple Inheritance TEST 2 Overloading Exceptions In class Activity Overriding Polymorphic Variables Generics Containers STL Example(s) Object Interconnections Friends No class Thanksgiving Design Patterns REVIEW Case Study FINAL EXAM 8-10am Assg 3 due Assg 4 Assg 4 due Assg 5 Assg 5 due