Test 2 Objectives
Test 2 Objectives


The topics for test 2 includes all material covered in sections 6-8 of the course notes. The notes and a list of the associated section readings from the textbook are located on the course schedule page and on the readings page The learning objectives for the course material leading up to the second test are listed below.

Learning Objectives

Students must be able to:

  • Know the general terms that apply to programming iteration constructs.
  • Compose, trace and understand C++ code employing the while, for and do-while loop statements.
  • Understand the difference between a pre-test and post-test loop.
  • Recognize when the body of loops never execute.
  • Determine when a loop would result in infinite execution.
  • Form and trace count controlled loops.
  • Compose and desk check event controlled loops.
  • Apply and hand execute sentinel controlled loops.
  • Employ Boolean variables to compose loop termination conditions.
  • Read a data file with a loop using the data header processing pattern.
  • Process a data file with a loop using the end-of-line and end-of-file processing pattern.
  • Understand all of the considerations that must be taken into account to form logically correct loops.
  • Identify the loop control variable and it's initialization, updating and testing loop expressions.
  • Know, understand and apply the C++ identifier scoping rules.
  • Distinguish between a local scoped identifier and a global scoped identifier.
  • Know, understand and apply the C++ identifier binding rules.
  • Modify code to eliminate the use of global scoped variables.
  • Recognize the programming advantages gained by employing functions.
  • Create function definitions and function prototype declarations.
  • What results due to the execution of a function return statement.
  • Distinguish and understand the matching of the formal and actual function parameters.
  • Invoke and trace the execution of C++ functions.
  • Determine the scope of a function identifier by the location of the its prototype.
  • Know and correctly apply the three C++ parameter communication mechanisms:
    1. Pass-by-Value
    2. Pass-by-Reference
    3. Pass-by-Constant -Reference
  • Trace code emplying the three C++ parameter communication mechanisms.
  • Document a function.
  • Recognize when functions should be defined as void versus returning functions.
  • Adequately test a function, employing driver code, developing good test case data sets and analyzing test output.
  • Store a list of data in an array.
  • Understand the difference between structured and simple data types.
  • Use and employ standard array terminology.
  • Define a C++ array variable for a given data set.
  • Access and initialize the individual elements of an array.
  • Know how arrays are allocated in computer primary memory.
  • Distinguish between the usage and size of an array.
  • Pass arrays and array elements as parameters to functions.
  • Determine C++ language provided aggregate operations on arrays.
  • Implement aggregate operations on arrays.
  • Trace C++ code involving arrays.
  • Recognize out-of-bounds array index accessing.
  • Know the various possible outcomes from the execution of code that generates out-of-bounds array index references.
  • Use the assert() function to guard against invalid array accesses.
  • Instrument C++ code to determine the location and cause of an out-of-bounds array index access.
  • Define parallel arrays to process heterogenous record data sets.
  • Define and employ multi-dimensional arrays in C++.
  • Pass multi-dimensional arrays in C++ between functions.
Computer Science 1044, Introduction to Programming in C/C++
D. Barnette