1. General

    • Structure of the computer: the Von Neumann architecture
    • Computers and software
    • Algorithms and programs
    • Debugging and maintenance
    • Programming practices

    2. The C language

    • Data types, operators, expressions
    • Control flow within a function
    • How functions treat their parameters; superficial discussion of pointers; static vs. automatic variables
    • Program structure, scope of variables
    • Preprocessor
    • Input/output
    • Arrays and pointers
    • Multidimensional arrays, arrays of pointers
    • Dynamic memory allocation
    • Recursions
    • Structures

    3. Algorithms and Data Structures

    • Asymptotic cost of algorithms
    • Elementary data structures: lists, heaps, trees
    • Elementary algorithms: searching, sorting, hashing
    • Considerations specific to numerical algorithms