Prior programming experience not required. Introduction to both data structures and algorithms. The declaration, operation, and application of arrays, linked lists, binary trees, stacks, queues, B trees, heaps, hashing techniques and threaded lists are analyzed using the C language. Optimal searching and sorting algorithms are reviewed for performance. The application of these data structures in translators and simulators, lexical analysis and parsing, and an introduction to network theory are included.
Memory management is discussed in relation to data structures and algorithmic efficiency.
Introduces multilevel machines with emphasis on the digital logic level, conventional machine level, operating system level and the higher language level. Emphasis on understanding models and their applications and on rigorous use of basic techniques of analysis. Introduction to proofs, simulation, diagonalization, and reduction arguments. Group study of a selected topic, title to be determined in advance. Total credit limited to 6 credit hours, with a maximum of 3 credit hours per term.