Skip to Content - Skip to Navigation

COSC 210 Object Oriented and GUI Programming

Loading...

Prerequisite: COSC110

An in-depth introduction to the Object Oriented Programming (OOP) paradigm. The focus will be on designing, implementing, and using objects. We will cover function and operator overloading, templates, inheritance, and polymorphism. This course will also include an introduction to Graphical User Interface (GUI) design and  programming.

Course Objectives

The student will:

1. Learn the fundamental concepts of the OOP paradigm.
2. Implement object definitions.
3. Incorporate objects and arrays of objects in application programming.
4. Use overloading, templates, and inheritance when designing, implementing, and using objects.
5. Design Object Oriented applications.
6. Learn the fundamental concepts of GUI design.
7. Develop and test object oriented GUI programs.

Course Outline

A. Introduction to the Object Oriented Programming Paradigm — 2 hours
1. Overview of the fundamental concepts of OOP
2. Object model terminology
3. Introduction to the language and programming environment

B. (C++) Programming Basics — 4 hours
1. Data representation and standard types
2. Literals and literal types
3. Namespaces
4. Input and output (I/O)
5. Operators and expressions
6. Control flow constructs
7. Functions and return types
8. User defined data structures
9. Static and dynamic arrays
10. Structs and unions
11. Memory allocation
12. Debugging techniques

C. Defining Objects — 4 hours
1. Encapsulation
2. Constructors and destructors
3. Member variable and functions
4. Accessor and modifier functions
5. Public, protected, and private declarations
6. Object initialization

D. Overloading — 3 hours
1. Function overloading
2. Overloading resolution
3. Operator overloading
4. Friend functions

E. Using Objects — 4 hours
1. Scoping
2. Static and dynamic objects
3. Arrays of objects

F. Object Design — 3 hours
1. Goals of Object Oriented Software

G. Templates — 4 hours
1. Template functions
2. Simple sorting techniques (exchange, insertion, selection)
3. Template object definitions

H. Inheritance — 4 hours
1. Derived types
2. Virtual functions
3. Declarations
4. Single and multiple inheritance
5. Public vs. private inheritance
6. Virtual Derivations

I. Run Time Type Identification — 2 hours
1. Polymorphism

J. Exception Handling and Debugging — 3 hours
1. Exception handling functions
2. Expected and unexpected exceptions
3. Using a debugger

K. Graphical User Interface Design — 2 hours
1. Goals of GUI software

L. Implementing GUIs using Object Oriented Programming — 5 hours
1. Concepts and terminology
2. Dialogue Interface
3. Single Document Interface
4. Multiple Document Interface

Evaluation Methods
Exams: 3 (50-60%) (including final)
Projects: 5-6 (30-40%)
Quizzes, Homework, and Lab Exercises: (10-20%)

Grading Scale:
The standard grading scale will be used.

90-100% : A; 80-89% : B; 70-79% : C; 60-69% : D; below 60% : F.

Attendance policy

The attendance policy will conform to the universitywide attendance criteria.

Samples of projects assigned to help students fulfill course objectives: 

Project 1. Develop a new numerical class such as rational, complex, or Roman. This project will introduce the students to the class syntax, private and public attributes, and methods.

Project 2. Expand the class developed for project 1 to incorporate operator overloading. This project will include the syntax for operator overloading and friend functions.

Project 3. Develop a template container class. This project will include template syntax and the use of dynamic arrays.

Project 4. Develop a hierarchical set of classes such as quadrilaterals. This project will include inheritance, polymorphism, protected attributes and methods, and overloading.

Project 5. Develop a Dialog Based Graphical User Interface application. This project will introduce the concepts of GUI design and development. The project will also include the use of a large library of predefined classes.

Textbook(s)

Deitel, H.M. and Deitel, P.J.
C++ How to Program. Second Edition.
Prentice Hall PTR, Upper Saddle River, NJ. 1998.

Deitel, H.M., Deitel, P.J.,  Nieto, T.R., and Strassberger, E.T.
Getting Started with Microsoft Visual C++ 6 with an Introduction to MFC
Prentice Hall PTR, Upper Saddle River, NJ. 1998

Loading...
  • Computer Science Department
  • Stright Hall, Room 319
    210 South Tenth Street
    Indiana, PA 15705
  • Phone: 724-357-2524
  • Fax: 724-357-2724
Loading...
  • Office Hours
  • Monday through Friday
  • 7:30 a.m. – 12:00 p.m.
  • 1:00 p.m. – 4:00 p.m.