Course Outline for EE 5C ======================== (Last update: 10/13/97) I. UNIX Operating System (covered in discussion sessions) A. Directory and file commands. B. vi editor. C. Electronic mail and communication. D. C compiler. E. How to get around SEASNET. II. Basic Elements of C/C++ Programs (via example) A. Comments B. #define and #include C. main() D. Variables E. Statements III. Data Types in C/C++ A. Integers B. Reals C. Characters D. Constants E. Pointers F. Reference types IV. General Programming Concepts A. Programming Methodology B. Style Rules C. Errors/Debugging V. C/C++ Operators A. Arithmetic B. Assignment Statement C. Precedence D. Casting VI. I/O in C/C++ A. printf B. scanf (brief description of addresses/pointers) C. Format codes and escape sequences. D. iostreams, insertion and extraction operators VII. Functions A. Declaration syntax B. Prototyping and default parameter list C. Variable scope and scope operator D. Call-by-value vs. call-by-reference E. Using pointers to simulate call-by-reference in C VIII. Relational Operators and Boolean Expressions IX. Flow Control Statements I - Conditional A. if B. if-else C. Compound statement D. nested if E. switch F. Conditional operator X. Flow Control Statements II - Loops A. for B. while C. do, while XI. Modular Programming A. Parameter passing mechanism (local parameter stack) B. Recursive function calles C. Multiple file compilation D. Functions vs macros with parameters E. Inline functions F. Function overloading G. Storage class H. Template functions XII. Arrays A. Relationship to pointers B. Sorting algorithms C. String processing in C/C++ D. arrays of pointers and two dimensional arrays XIII. Dynamic memory allocation A. malloc and free B. new and delete operators XIV. Class I A. Object oriented approach and data abstraction B. Class definition, member data and member functions C. Constructors and destructors D. Data encapsulation and interface functions E. Operator overloading F. Friends XV. Class II A. Inheritance B. Polymorphism and dynamic binding C. Template classes XVI. File I/O XVII. Preprocessor directives and conditional compiling XVIII. Bitwise Operations (optional)