Unit 1 Study Guide: C++ and Java

1a. Demonstrate an understanding of the history of C++ and the language's development

The history of a programming language helps us understand why it was developed, the new features that it introduced, and how it relates to earlier languages.

  1. Describe the role of C in the development of C++.
  2. Programming languages are categorized by the programming paradigm they follow. What programming paradigms do C and C++ follow?
  3. Briefly describe the OO programming paradigm using 'ideas' and 'objects'.

Programming languages were developed to support various approaches to solving problems. These approaches, and the languages as well, evolved over time. The history of their evolution teaches us why the languages were developed, what computational needs they addressed, and the context in which they were intended to be used.

To review for the final, read Stewart's "C Programming Language History". Note the features of portability and improvability. The latter, 'improvability', pertains to the operating system Unix. This tells us that the usefulness of a programming language can depend on the context in which it is used.

A programming language can influence the development of other languages. This suggests that programming languages are related. One relationship is compatibility. C is largely upward-compatible with C++. A C program will likely compile by a C++ compiler. Review the compatibility of C and C++ in "Compatibility of C and C++".

Suppose the features and concepts of a programming language can be used to model a problem and its solution. Then, it would be easy to implement that solution using that particular programming language. More technically, we say that a programming paradigm can be used to solve certain problems, and the solution can be naturally implemented by a language of that paradigm. Review the interesting explanation of the OO paradigm using terms that we all are familiar with, Ruby for Beginners: "Object-Oriented Programming".

1b. Demonstrate an understanding of how C++ and Java are used in industry

  1. There are several reasons why a programming language is widely used. It may be very efficient in performing certain types of computations, be very user-friendly, or it may introduce new programming features.
  2. What made C popular?
  3. List some of the uses of C++ and Java in industry.
  4. What features make C++ and Java useful in industry?

C++ extended C and, thereby, continued C's popularity. Review Chapter 1 of Eck's "Introduction to Programming using Java" and 1.1 of Guttag's "Introduction to C++" for useful features of each language, respectively. Read and think about the framing text for subunits 1.2.2 and 1.2.3 of this course, and pay special attention to 'chunks'. A program is part of a system that includes applications, support of an operating system(s) and compiler, and interfaces to other systems, including environments, tools, networks, and libraries. All of these contribute to the usefulness of the programming language. Further, a program is part of a programming process of integrated activities, involving requirements, design, build, and verify/validate activities, which provide a framework to help implement the 'chunks' and the system efficiently and effectively for industry.

1c. Compare the similarities and differences between Java and C++

  1. Comparing a new language to another known language reinforces our learning of the new language.
  2. How can you compare two programming languages?
  3. Comparisons of two programming languages can be according to: grammar, semantics, support systems, or programming process.

A comparison of languages should have several perspectives: language features, context in which they are used, and processes for using them. Can you think of any others? Study the table in Comparison of Java and C++. Pick several entries in the table and identify which perspective each one takes. "Code to Executable" compares the C++ and Java compiling and linking processes.

Unit 1 Vocabulary

This vocabulary list includes terms that might help you with the review items above and some terms you should be familiar with to be successful in completing the final exam for the course.

Try to think of the reason why each term is included.

  • Bytecode
  • Chunk
  • Class
  • Compiling
  • Event handling
  • Generic and generic programming
  • ISO programming language standard
  • Java virtual machine
  • Language compatibility
  • Linking
  • Object
  • OO paradigm
  • OO programming
  • Paradigm
  • Passing parameters by reference passing parameters by value
  • Programming process
  • Smalltalk
  • Template
  • Unix
  • User interface
  • Weakly-typed
Last modified: Wednesday, July 17, 2019, 6:12 PM