COSC 210 – New Syllabus of Records

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, inheritance and polymorphism. This course will also include an introduction to Graphical User Interface (GUI) design and  programming.

 

II. Course Objectives

 

Upon completing the course, the student is expected to:

·         know the fundamental concepts of the OOP paradigm.

·         be able to Implement object definitions.

·         be able to incorporate objects and arrays of objects in application programming.

·         be able to use overloading, and inheritance when designing, implementing, and using objects.

·         know the fundamental concepts of GUI design.

·         Be able to design Object Oriented applications.

·         be able to 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. Defining Objects                                                                                                                                                4 hours

1. Encapsulation

2. Constructors and destructors

3. Member variables and functions

4. Accessor and modifier functions

5. Object declaration and initialization

 

C.  Programming Basics                                                                                                                                         6 hours

1. Object-Oriented Language basics

2. Data representation and standard types

3. Literals and literal types

4. Input and output (I/O)

5. Operators and expressions

6. Control flow constructs

7. Functions and return types


8. Static and dynamic arrays

9. Memory allocation

10. Debugging techniques

11. Public, protected, and private declarations

D. Overloading                                                                                                                                                        3 hours

1. Function overloading

2. Overloading resolution

3. Operator overloading

 

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

2. Event driven programming

3. Basic GUI components

 

G. Sorting and Searching                                                                                                                                       5 hours

1. Sorts and sorting techniques (exchange, insertion, selection)

2. Searching

3. Recursion and recursive techniques

4. Strings and string manipulation

 

H. Inheritance                                                                                                                                                          5 hours

1. Single and multiple inheritance

2. Public vs. private inheritance

3. Polymorphism

4. Abstract classes

5. Interfaces

 

I. Exception Handling and Debugging                                                                                                                3 hours

1. Exception handling functions

2. Expected and unexpected exceptions

3. Assertions and threads

4. Using a debugger

 

J. Graphical User Interface Design                                                                                                                       2 hours

1. Goals of GUI software

 

K. 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.

 

V. Textbook(s)

 

Wu, C. Thomas, An Introduction to Object-Oriented Programming with Java, Third Edition, , McGraw Hill Publishers, Boston, Massachssetts, 2004.

 

Deitel, H.M. and Deitel, P.J., Java: How to Program, Sixth Edition, Prentice-Hall,  Upper Saddle River, NJ. 2005.

 

VI. Special Resource Requirements

None.

 

VII. Bibliography

 

1. Barker, Jacquie, Beginning Java Objects:  From Concepts to Code,  2nd Ed., Apress, Berkeley, CA, 2005.

 

2. Forster, David, The Java Primer, Addison-Wesley Publishers, Reading Massachusetts, 1999.

 

3. Horstmann, Cay S., Computing Concepts with Java, John Wiley & Sons, Inc., Edison, NJ, 1997.

 

4  Marinilli, Mauro, GUI Development in Java, John Wiley & Sons, Inc., Edison, NJ, 2005.

 

5. Morelli, Ralph and Walde, R.,  Java Essentials for Object Oriented Problem Solving, Prentice Hall PTR, Upper Saddle River, NJ. 2005.

 

6. Schneider, F., and Powell, Thomas A., JavaScript: The Completer Reference, McGraw Hill Publishers, Boston, Massachssetts, 2001.

 

7. Wiley, Russell, Developing Java Software, 3rd. Ed., John Wiley & Sons, Inc., Edison, NJ, 2005.