Skip to main content

CS404: Programming Languages

Page path
  • Home /
  • Courses /
  • Course Catalog /
  • Computer Science /
  • CS404: Programming Languages /
  • Unit 5: Object-Oriented Programming
Back to course 'CS404: Programming Languages'
  • 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.

    • Unit 5 Learning Outcomes Page
    • 5.1: Introduction and Fundamental Features of Object Oriented Programming

      •  University of Texas at Austin: Thomas Dillig's "Object-Oriented Languages" URL

        Read these slides.

      •  Johns Hopkins University: Scott F. Smith's "Principles of Programming Languages" URL

        Read Chapter 5, which discusses object-oriented languages and why they have become popular.

      • University of California, Berkeley: Brian Harvey's "Object-Oriented Programming" Page

        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

      •  Johns Hopkins University: Scott F. Smith's "Principles of Programming Languages" URL

        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

      •  Young Telecaster's "Java tutorial-Lecture 3-Basic Introduction 3" URL

        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

      •  Chris Szalwinski's "Overview of Polymorphism" URL

        Read this introduction to parametric polymorphism for object-oriented programming through in-depth analysis of C++ Templates and Java Generics.

    • Unit 5 Assessment

      •  Unit 5 Assessment Quiz

        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.

Navigation

Art History
Biology
Business Administration
Chemistry
Communication
Economics
English
History
Mathematics

Creative Commons License
© Saylor Academy 2010-2018 except as otherwise noted. Excluding course final exams, content authored by Saylor Academy is available under a Creative Commons Attribution 3.0 Unported license. Third-party materials are the copyright of their respective owners and shared under various licenses. See www.saylor.org/open/licensinginformation for detailed licensing information.

Saylor Academy and Saylor.org® are trade names of the Constitution Foundation, a 501(c)(3) organization through which our educational activities are conducted.

Terms of Use | Privacy Policy