COSC 210
Object Oriented and GUI
Programming
Syllabus of Record
I. Catalogue Description
COSC 210 Object Oriented and
GUI Programming 3 credits
3 lecture hours 0 lab hours
(3c‑0l‑3sh)
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.
II. 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.
III. 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
IV. Evaluation Methods
Evaluation:
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 University wide 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.