WEST VIRGINIA UNIVERSITY 

COLLEGE OF ENGINEERING


DEPARTMENT OF COMPUTER SCIENCE AND ELECTRICAL ENGINEERING

CpE 391D
FUNDAMENTALS OF OBJECT ORIENTED PROGRAMMING IN C++

Spring 2001

Instructor:Dr. Hany H. Ammar, Associate Professor of Computer Engineering, Office: 739 Engineering Sc. Buildg, Evansdale Campus, WVU, Morgantown, WV 26506, Ph: 293-0405 (ext.2514), Fax 293-8602, E-mail address:ammar@cemr.wvu.edu 

Teaching Assistant: Gopal Manchikanti, Graduate Teaching Assistant, Computer science and electrical Engineering, Office: 725 ESB, Ph.: 293-0405 (ext. 2557), E-mail: gopal@csee.wvu.edu. Office Hours: Mondays: 10:00 – 11:00 am, Wednesdays 10:00 -  11:00 am and Help Sessions: Tuesdays-Wednesdays 5:30-7:30. Help Sessions will be held in the 243 Lab in MRB.

Prerequisites: A working knowledge of a high level programming language is required. Students with no previous experience in C will need to put some extra effort to familiarize themselves with the relevant basic concepts in C.

Text: C++ How To Program: Introducing Object-Oriented Design with UML, Deitel& Deitel, Third Edition, Prentice-Hall, 2001.

Related Material: Web based course notes and tutorials
C++ Annotations.
Object-Oriented Software Design and Construction.
Introduction to C++
Introduction to Object-Oriented Programming using C++

Description and Objectives: This is a 3-credit hour project-based laboratory-oriented course aimed at learning the fundamentals of object-oriented design and implementation in C++. The objectives of the course are to have students identify and practice the object-oriented programming concepts and techniques, practice the use of C++ classes and class libraries, modify existing C++ classes, develop C++ classes for simple applications, and practice the concepts of Object-Oriented Analysis and Design (OOA/OOD) and design patterns and frameworks by developing a C++ based project.

Course Topics:

  1. Introduction to the Object-Oriented Programming Concepts
  2. C++ Program structure
  3. C++ Data Types
  4. Functions, Scope and the Free Store
  5. The C++ Class
  6. Static Class members and the this pointer
  7. Operator Overloading
  8. Class Derivation and Inheritance
  9. Virtual Functions and Polymorphism
  10. Templates
  11. Object-Oriented Analysis and Design (OOAD)
  12. Object-Oriented Testing Techniques

Lab Assignments:
Each assignment will be one week except when mentioned otherwise.

Lab Report Guidelines

  1. Introduction to OOP, and The C++ Program Structure.
  2. Data Types I, Pointers, references, and arrays (2 weeks)
  3. Data Types II, Structs and Classes.
  4. The C++ class, Sparse Matrix Application.
  5. Nested Classes, and discrete event simulation of a client server model (2 weeks).
  6. The this pointer, Static data members, and operator overloading.
  7. Class derivation, and inheritance.
  8. Multiple inheritance, and Polymorphism.
  9. Project: Object-Oriented Analysis and Design (2 weeks)
  10. Project: Implementation and testing (2 weeks)

Grading:

Attendance                                         5%
Lab. Assignments (assignments 1 - 8)    35%
Final Project (assignments 9 and 10)     25%, Tentative Final Demos Date: Thursday April 26, 2001
Final Examination                                35%, Tentative Date: Thursday April 12,. 2001

Lab. Policy:

Students will be divided into groups of 2. Each group will be required to submit a report (See Lab Report Guidlines) on each lab assignment. The report should be very brief and should discuss the concepts learned in the lab and includes well commented and documented programs.

__