Complexity of algorithms. Introduction to graph algorithms and their analysis. Computer structure, machine instruction execution, addressing techniques, digital representation of data. Assemblers, cross-assemblers and simulators. Input and output programming and devices.
System support macros and software.
Program segmentation and linkage. Programming language design issues and programming paradigms. Binding and scoping, parameter passing, lambda abstraction, data abstraction, type checking. Functional and logic programming. A functional description of computer hardware.