CISC 3142
Programming Paradigms in C++
Introduction / Review



Readings from the Text

Chapter 1 — Notes to the Reader

The Prefaces are also worth the read; they're short and to the point. In particular, I am partial to Stroustrup's statement (in the general Preface):

This book assumes that its readers are programmers. If you ask, ?What?s a for-loop?? or ?What?s a compiler?? then this book is not (yet) for you; instead, I recommend my Programming: Principles and Practice Using C++ to get started with programming and C++. Furthermore, I assume that readers have some maturity as software developers. If you ask ?Why bother testing?? or say, ?All languages are basically the same; just show me the syntax? or are confident that there is a single language that is ideal for every task, this is not the book for you.

You are at the stage of your programming development that you (a) should understand this statement and its intentions, and (b) are indeed ready for this book.

The Goals of this Course

Your Expected Background Coming into this Class

What You Already Know

Based on your expected background, you should be familiar with the following topics. I've greyed out those topics that may not to have been covered in your courses; don't worry about those.

Program Structure and Development Environment

Imperative Programming

We will discuss this later — for the moment, think of imperative programming as the code/logic you write inside of a method: assignments, calculations, conditionals, iteration, calling of methods. Another way of thinking about it, it is the style/part of programming involving taking actions (e..g. Calculating and assigning statements, or calling methods), making decisions, and repetition.

Basic Classes and Objects

The class as a repository of state and behavior

Methods

Object-Oriented Programming

Types, Variables, Memory Model

Copy vs Reference Semantics

Input/Output

Strings

Programming 'in the Large'

Techniques & Algorithms

Data Structures

  • Quadratic (n2 and log-linear (n log n) sorts
  • Basic understanding of the complexity of data structure operations and sorts

    Exception Handling