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.
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
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++
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.