Course Objectives
Source: Computing Concepts with C++ Essentials
Author: Cay Horstmann
Publisher: John Wiley & Sons, Inc.
- Introduction
- To understand the activity of programming
- To learn about the architecture of computers
- To learn about machine languages and higher-level programming
languages
- To become familiar with your compiler
- To compile and run your first C++ program
- To recognize syntax and logic errors
Fundamental Data Types
- To understand integer and floating-point numbers
- To write arithmetic expressions in C++
- To appreciate the importance of comments and good code layout
- To be able to define and initialize variables and constants
- To recognize the limitations of the int and floattypes
and the overflow and roundoff errors that can result
- To learn how to read user input and display program output
- To be able to change the values of variables through assignment
- To use the ANSI C++ standard string type to
define
and
manipulate character strings
- To be able to write simple programs that read numbers and text,
process
the input, and display the results
Objects
- To become familiar with objects
- To learn about the properties of several sample classes that
were
designed
for this book
- To be able to construct objects and supply initial values
- To understand member functions and the dot notation
- To be able to modify and query the state of an object through
member
functions
- To write simple graphics programs containing points, lines,
circles,
and
text
- To be able to select appropriate coordinate systems
- To learn how to process user input and mouse clicks in graphics
programs
- To develop test cases that validate the correctness of your
programs
Basic Control Flow
- To be able to implement decisions using if statements
- To understand statement blocks and nesting
- To learn how to compare integers, floating-point numbers, and
strings
- To develop strategies for processing input and handling input
errors
- To recognize the correct ordering of decisions in multiple
branches
- To program conditions using Boolean operators and variables
- To avoid infinite loops and off-by-one errors
Functions
- To be able to program functions and procedures
- To become familiar with the concept of parameter passing
- To recognize when to use value and reference parameters
- To appreciate the importance of function comments
- To be able to determine the scope of variables
- To minimize the use of side effects and global variables
- To develop strategies for decomposing complex tasks into
simpler ones
- To learn how to design programs that solve practical problems
- To document the responsibilities of functions and their callers
with
preconditions
- To be able to program recursive functions
Classes
- To be able to implement our own classes
- To master the separation of interface and implementation
- To understand the concept of encapsulation
- To design and implement accessor and mutator member functions
- To understand object construction
- To learn how to discover new classes and member functions
- To learn how to use object-oriented design to build complex
programs
Advanced Control Flow
- To be able to program loops with the while, for
and do/while statements
- To learn how to read input from a file through redirection
- To learn how to process character, word and line input
- To implement approximations and simulations
- To avoid infinite loops and off-by-one errors
- To understand nested loops and nested variable scopes
Testing and Debugging (self study)
- To learn how to design test stubs for testing components of
your
programs
- To understand the principles of test case selection and
evaluation
- To be able to use assertions to document program assumptions
- To become familiar with the debugger
- To learn strategies for effective debugging
Vectors and Arrays
- To become familiar with using ANSI stand vectors to collect
objects
- To be able to access vector elements and resize vectors
- To be able to pass vectors to functions
- To learn about common array algorithms
- To be able to build classes containing vectors
- To learn how to use matrices for two-dimensional collections