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