SYLLABUS CMPS 2143: Object Oriented Programming Catalog Description:

advertisement
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
Download