C/C++ Programming 2
Ray Mitchell

Prerequisites and Description

This course picks up where C/C++ Programming 1 leaves off, first reviewing some basic topics then moving into more advanced ones.  Included are bit operations, the C/C++ run-time environment, recursion, advanced pointer and array concepts, state machines, basic sorting, basic data structures (including singly linked lists, binary trees, and hashing), file operations, time functions, variable argument functions, long jumps, efficiency, portability, the standard C/C++ library, and more. 

Although students enrolling in this course are obviously not expected to be experts, knowledge of basic concepts should be sufficient to permit their use with minimal instructor assistance.  Familiarity with the following topics in both C and C++ is expected:

  1. Running a C/C++ compiler and linker; Creating programs from multiple source files

  2. Standard coding style (names, braces, spaces, comments, etc.)

  3. Use/misuse of external variables; Use/misuse of floating point types

  4. Basic portability issues

  5. Logical step-wise debugging with printf/cout

  6. Creating/deciphering simple declarations/typecasts

  7. Operators and built in data types; Data types of common expressions

  8. Automatic type conversions

  9. The proper way of opening files and doing basic file I/O

  10. The proper way of dynamically allocating memory

  11. The differences/relationship between pointers and arrays; Pointer arithmetic

  12. String operations

  13. Pre-ANSI function syntax

  14. Proper use of NULL and '\0'

Test Your Readiness

It is recommended that those in doubt about their readiness for this course review the multiple choice Pretest.   You don't have to fully understand all of the material presented there but merely feel reasonably comfortable with most of the concepts.  If you're still not sure you may want to obtain "C/C++ Notes" or a detailed C/C++ text to review some of the topics with which you have problems.

 

Large Workload

Due to the large amount of material covered in the short time available, the work required to successfully complete this course can be significant.  To obtain a passing grade students can expect to spend at least 3 homework hours for every classroom hour, although this can vary greatly depending upon ability and aptitude.