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