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:
Running a C/C++ compiler and linker; Creating programs from multiple source files
Standard coding style (names, braces, spaces, comments, etc.)
Use/misuse of external variables; Use/misuse of floating point types
Basic portability issues
Logical step-wise debugging with printf/cout
Creating/deciphering simple declarations/typecasts
Operators and built in data types; Data types of common expressions
Automatic type conversions
The proper way of opening files and doing basic file I/O
The proper way of dynamically allocating memory
The differences/relationship between pointers and arrays; Pointer arithmetic
String operations
Pre-ANSI function syntax
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.