MEDGAR EVERS COLLEGE of CUNY
Department of Physical, Environmental and Computer Sciences
Department Office, Carroll 417 - Phone 718-270-6453

“Time, Effort, Integrity”

Object-Oriented Programming & Design (CS 244)


3 credits, 3 class hours, 1 lab hour

Course Description: This course presents an object-oriented approach to software development used in large-scale programming projects.  A software engineering methodology, such as the Unified Modeling Language (UML), will be used for object, dynamic, and functional modeling.  Students learn how to implement a system using an appropriate object-oriented programming language.  Programming topics include: Classes and data abstraction, operator overloading, inheritance, virtual functions and polymorphisms, templates, exception handling, and class libraries including GUI applications.

Note:  Microsoft Visual Studio (C++) is used to develop and implement programming algorithms. 

Prerequisites: CS 151

Required Textbook:  Starting Out with C++ : From Control Structures through Objects, by Tony Gaddis

Pearson Education - Publishers (Sixth Edition)   * ISBN 10: 0-321-54588-5 * ISBN 13: 978-0-321-54588-6


Course Requirements: All students have the responsibility to arrive on time, attend class regularly, and to participate fully in the work of the course. Additionally, students are not to work on other materials in class.  Assigned readings, problems and programs should be completed before class.  Several computer programs (using C++) will be assigned to reinforce the concepts presented in class.  Unless you own or have access to equivalent hardware and software, plan on spending a lot of time on campus.

Project/Presentation: A project covering Object-Oriented Programming & Design may be also required and must be presented to the class.  Use the following guidelines when preparing your presentation: (i) select an OOP/D application area of interest to you, (ii) use UML to design a small OOP/D application in this area, and (iii) use C++ to implement your OOP/D application (i.e., fully explain syntax and semantics).  Specifically, you must use C++ to write a program for your selected OOP/D application.  Remember to observe the required presentation format, described in the Computer Science Booklet, when preparing your 2-page presentation proposal.  The instructor prior to the midterm examination must approve your detailed outline, along with a project design.  Absolutely no project/presentation will be accepted after the last day of class

Grading Procedure:  The final grade will be determined objectively by using a weighted average along with the following weighted areas: computer programs, examinations, homework assignments, and the final examination.  Check with the college catalog for information regarding the official grading policy.  Note that missed chapter examinations cannot be made-up.  Programming projects submitted after the stated deadline will receive a reduced grade.

Academic Requirements and Regulations:  Students who officially withdraw from a course between the 4th through the 8th week receive a grade of W, which is not counted in computing the grade point average.  Courses officially dropped after the 8th week of class will appear as a WF and count as an F grade.  INC (Incomplete) or ABS (absent) grades will only be given to students who are passing the course.

Honor Code and Plagiarism: Students are required to sign and adhere to the departmental honor pledge.  Check with the department for a copy of the pledge.

CUNY Proficiency Examination (CPE)

The CPE is a graduation requirement.  All students between 45-60 credits are required to sit for and pass the CPE.

You have only three chances to pass this examination.  Each missed scheduled examination after the 45 credit mark counts as a failure.  For more information about this requirement, contact the Medgar Evers College CPE Liaison.


MEDGAR EVERS COLLEGE of CUNY
Department of Physical, Environmental and Computer Sciences
Object-Oriented Programming & Design (CS 244)


Course Outline

Week: Chapter-SectionsTopics

Week 1:Review of Functions
Chapter 6Defining and calling a function; function prototypes; returning values; passing data by value and reference; overloading functions.

Chapter 7Review of Single Dimension Arrays
Defining arrays; array initialization; accessing arrays; array of characters; processing arrays; arrays as function arguments.

Week 2:Review of Pointers
9.1 – 9.6Defining and assigning pointer variables; dereferencing a pointer variable; relationship between arrays and pointers, pointer arithmetic; initializing pointers, comparing pointers.

9.7 – 9.9Pointers as function parameters; dynamic memory allocation, returning functions from pointers.

Week 3:Introduction to Virtual Worlds and 3D Objects (Alice Tutorial 1)
Layout of the Alice Interface; Playing Worlds and Changing Routines. Teaching Alice Worlds & Objects to do New Things (Alice Tutorial 2) Creating New Methods; Opening New Methods.

Interactive 3D graphics: Making Worlds Respond to Events (Alice Tutorial 3) Key Typed and Mouse Click Events; Creating New Events. Creating New Worlds and Adding Objects (Alice Tutorial 4) Positioning Objects in the Scene; Making Multiple Copies of Objects.

Week : 4Introduction to Classes
13.1- 13.3Procedural and Object-Oriented Programming; introduction to classes; defining an instance of a class.

13.4-13.7 Why have Private Members? Focus on software engineering: Separating class specification from implementation; inline member functions; constructors.

Week 5:Introduction to Classes
13.8 – 13.13Passing arguments to constructors, destructors; overloading constructors; private member functions, arrays of objects, focus on problem solving and program design.

Week 6-7:More About Classes
14.1-14.4Instance and static members, friends of classes; memberwise assignment; copy constructors.

14.5-14.6Operator overloading; object conversion, aggregation.

14.7-14.8Design: class collaborations.

Week 8-10:Inheritance, Polymorphism, and Virtual Functions
15.1-15.4What Is inheritance?  Protected members and class access; constructors and destructors in base and derived classes; redefining base class functions.

15.5-15.7 Class hierarchies, polymorphism and virtual member functions, abstract base classes and pure virtual functions.

15.8 Multiple Inheritance

Week 11:Exceptions: Signaling Errors or Unexpected Events
16.1Exceptions (throwing, handling, multiple exceptions, extracting data from exceptions).

Week 12-13:Function Templates, Defining Templates, Class Templates
16.2-16.4Function templates; focus on software engineering: Where to start when defining templates; class templates.

16.5Introduction to the Standard Template Library (STL)

Useful templates for algorithms and data structures.

Week 14:Using Microsoft Visual Studio to Create, Compile, and Execute Visual C++ Windows Programs (An Instance of a GUI/OOP Application):  Windows programming concepts, Windows programming with MFC, Windows programming with Windows Forms.

Week 15:Final Examination Comprehensive