COSC****E: Object-Oriented Programming
Instructor: Dr. Haibin Zhu
Office: A124A Ext: 4434
Email: ******@**********.**
Web: http://www.nipissingu.ca/faculty/haibinz
Office Hours: Mon., Wed., Thu. 12:30pm-3:30pm or by appointment
Course Description:
Covers the concepts of object-oriented programming (OOP) languages and systems including an introduction to fundamental abstraction, modularity and encapsulation mechanisms in OOP from a software engineering and representational perspective. Basic OOP concepts covered include: polymorphism and operator overloading; message passing via generic functions; late versus early binding times; and inheritance mechanisms and their relationship to the type systems of programming languages. Other topics include: a survey of OOP languages and systems; OOP languages versus imperative programming languages; and contrasting pure OOP environments versus mixed paradigm languages.
Prerequisite: COSC 1557, COSC 1567
Textbook: The Introduction to Object-Oriented Programming (3rd Edition) by, Addison-Wesley, ISBN 020*******
Course Objectives:This course will introduce the concepts of Object Oriented Programming (OOP) Languages and Systems. The course will start with an introduction of fundamental abstraction, modularity and encapsulation mechanisms in Object Oriented Programming Languages such as Smalltalk, C++ and Java. Abstract data types will be examined from both a software engineering and representational perspective. Contrasts with imperative programming languages will be made. Advanced C++ and Java constructs such as abstract base classes, static members and other constructs will be presented. Comparisons with Java between C++ will be made. Other concepts to be covered include polymorphism, operator overloading, message passing viz. generic functions, late versus early binding times, as well as inheritance mechanisms and their relationship to programming language type systems. The emphasis of this course this semester will be the comparison of central features of several OOP. Special topics will be included as time permits. One such topic will be the discussion of Object libraries including the Java class libraries. Other topics include CORBA. Pure OOP environments such as Smalltalk will be contrasted with mixed paradigm languages such as C++ and Java. Object Oriented Design techniques as well as OOP idiom will be presented. We'll look at classic OOP patterns and frameworks.
Grading:Quizes: 10%Projects: 30% Tests: 30%Final Exam: 30%
A: 100-80B: 79-70C: 69-60D: 59-50F: 49-0
Major tests are in-class, and closed book. Test dates will be announced one week in advance. There are no makeup tests and quizzes.
Schedule for COSC2767: Object-Oriented Programming
(Lectures in A120 at Tue. 6:30pm-9:20pm)
Quiz 1, Chap5, 8 Prj1
01/29
Lect4
Test 1, Chap10,
02/05
Lect5
Chap11-12, Prj1 Due
02/12
Lect6
Chap13-14
02/19
Study week
No class
02/26
Lect7
Test 2, Chap15, Prj2
03/04
Lect8
Chap16-17,
03/11
Lect9
Quiz 2, Chap18-19
10
03/18
Lect10
Chap20-21, Prj2 Due
11
03/25
Lect11
Chap25-26
12
04/01
Review
04/?
Final
Note: Everything may be subject to change, please pay attention to the class declarations.