MOTTO:"Writing in C or C++ is like running a chain saw with all the safety guards removed." Bob Gray

"The evolution of languages: FORTRAN is a non-typed language. C is a weakly typed language. Ada is a strongly typed language. C++ is a strongly hyped language." Ron Sercely

The Origins of C++: C++ was developed by Bjarne Stroustrup of AT&T Bell Laboratories in the early 1980's, and is based on the C language. The name is a pun - "++" is a syntactic construct used in C (to increment a variable), and C++ is intended as an incremental improvement of C. Most of C is a subset of C++, so that most C programs can be compiled (i.e. converted into a series of low-level instructions that the computer can execute directly) using a C++ compiler.

On experimental algorithmics

Catherine McGeoch is the Beitzel Professor of Technology and Society at Amherst College, Massachusetts

Ubiquity, Volume 2011, Number August (2011), Pages 1-14

Computer science is often divided into two camps, systems and theory, but of course the reality is more complicated and more interesting than that. One example is the area of "experimental algorithmics," also termed "empirical algorithmics." This fascinating discipline marries algorithm analysis, which is often done with mathematical proofs, with experimentation with real programs running on real machines.

Catherine McGeoch: In fact there are three main activities in algorithm research: analysis, which is about predicting performance; design, which is about finding new and better ways to solve problems; and models of computation, which is about understanding how design and analysis changes when the basic operations (defined by the platform) are modified. In all three areas, theoretical methods necessarily make simplifying assumptions—worst-case inputs, dominant operation costs, and the RAM. Experimental methods fill in the gaps between those simplifying assumptions and real experience by incorporating interesting subclasses of inputs, constant factors and secondary costs, and more realistic machine models. This fundamental gap between theory and practice has existed since the beginning of computing, and experiments have always been used as a bridge between the two. In recent times the gap has become an abyss, due to the increased complexity of systems and algorithms, so the bridge must be stronger and more sophisticated. Also the traffic on the bridge has become more bidirectional—we see experiments developed in the service of theory as well as of practice.

Course: Procedural Programming | Bachelor of Science

This course aims to introduce the student to more advanced computer programming using the C++ language. As well as learning C++, the student will learn how problems that are initally described in very general terms can be analysed, outlined and finally transformed into well-organised C++ programs using structured programming techniques. The course also introduces students to programming in C++. The assessment items are designed to reward regular study throughout term and to provide timely feedback to students.