Unit 5: Object-Oriented Programming
Object-Oriented programming languages are widely used in both government and industry, thanks to the popularity of Java and its older brethren, C++. Object-Oriented Programming has many practical advantages over other programming paradigms. It is considered an upgrade over the once-dominant Procedural Programming scheme. This unit will present an overview of Object-Oriented Programming, including examples of the two most popular languages mentioned above. Next, we will discuss some of the distinctive properties of Object-Oriented Programming, discussing the ways in which it differs from other schemes and why it is considered an improvement over older designs. By the end of this unit, you will be able to describe Object-Oriented Programming and identify the main properties of and advantages to using Object-Oriented Programming.
Completing this unit should take you approximately 14 hours.
5.1: Introduction and Fundamental Features of Object Oriented Programming
Read these slides.
Read Chapter 5, which discusses object-oriented languages and why they have become popular.
Watch these lectures for an introduction to object-oriented programming. The second lecture discusses the implementation of object-oriented programming in SmallTalk, as well as several basic concepts in object-oriented programming languages, such as inheritance, class, superclass, exceptions, simulation, message sending and type declaration. The third lecture discusses the specific and fundamental features in object-oriented programming languages.
5.2: Object Types and Subtyping
Read Chapter 6 on Type Systems for a discussion of statically-typed object-oriented languages and the similarities and differences between C++ and Java implementations of object system.
5.3: Java Virtual Machine
Watch this brief overview of Java Virtual Machine, method lookup, verifier analysis, and Java security. What is the difference between a complier and a virtual machine?
5.4: Templates and Generics
Read this introduction to parametric polymorphism for object-oriented programming through in-depth analysis of C++ Templates and Java Generics.
Unit 5 Assessment
Please take this assessment to check your understanding of the materials presented in this unit.
Notes:
- There is no minimum required score to pass this assessment, and your score on this assessment will not factor into your overall course grade.
- This assessment is designed to prepare you for the Final Exam that will determine your course grade. Upon submission of your assessment you will be provided with the correct answers and/or other feedback meant to help in your understanding of the topics being assessed.
- You may attempt this assessment as many times as needed, whenever you would like.