Skip to main content
CPE
201
Advance Computer Programming
A continuation of computing fundamentals given in CpE-200. Topics include data and procedural abstraction, software design principles and use of O-O design to develop solutions to simple problems. Ethical issues involved in computer use, Basic object-oriented design techniques (encapsulation and information-hiding, separation of behavior and implementation, classes and subclasses, inheritance, polymorphism, class hierarchies), Iterators as abstraction mechanisms, Linked structures, Event-driven programming, API programming. The laboratory projects include use of object-oriented design concepts with detailed documentation.
Prerequisites:
0600200
0612201
(3-2-3)

Credits and Contact Hours

3 credits, 43 hours

Course Instructor Name

Dr. Jassim Aljuraidan, Dr. Asmaa Al-Sumait

Textbook

Java: How to Program: Late Objects, Global Edition, 11th Edition, by Paul J. Deitel and Harvey M. Deitel

Catalog Description

A continuation of computing fundamentals given in CpE-200. Topics include data and procedural abstraction, software design principles and use of O-O design to develop solutions to simple problems. Ethical issues involved in computer use, basic object-oriented design techniques (encapsulation and information-hiding, separation of behavior and implementation, classes and subclasses, inheritance, polymorphism, class hierarchies), iterators as abstraction mechanisms, linked structures, event-driven programming, API programming. The laboratory projects include use of object-oriented design concepts with detailed documentation.

Prerequisite

ENGR-200

Specific Goals for the Course

Upon completion of this course, students will be able to:

Outline the philosophy of object-oriented design and the concepts of encapsulation, subclassing, inheritance, and polymorphism (Student outcomes: 1)

Identify the appropriate paradigm for a given programming problem (Student outcomes: 1)

Design, code, test, and debug programs of moderate complexity in an object-oriented programming language (Student outcomes: 1, 6)

Understand the techniques used for designing various graphical user interfaces (GUI) and the language support for GUI (Student outcomes: 1)

Understand exception handling and large class hierarchy (Student outcomes: 1, 6)

Develop code that responds to exception conditions raised during execution (Student outcomes: 1, 6)

Explain the value of application programming interfaces (APIs) in software development (Student outcomes: 1, 6)

Topics to Be Covered

Review: Classes and Objects

Classes and Objects: A Deeper Look

Object-Oriented Programming: Inheritance

Object-Oriented Programming: Polymorphism and Interfaces

Exception Handling: A Deeper Look

GUI Components: Part 1

Files, Streams and Object Serialization

Generic Classes and Methods

Real-life Projects