An introduction to the concepts of languages and automata. Topics include languages, regular expressions, finite automata, grammars, pushdown automata and Turing machines. MATH 225 recommended. An introduction to machine organization and assembly language programming. Topics include an overview of computer organization, introduction to digital logic and microprogramming, the conventional machine level and assembly language programming, and introduction to operating systems.
Students are require to attend one three-hour laboratory appointment weekly.
This course satisfies the laboratory requirement. An introduction to the dimensions of modern programming languages. Topics include syntax, naming, state, data, control, concurrency, non-determinism, and types. Compiler Design Turbak A survey of the techniques used in the implementation of programming language translators. Topics include lexical analysis, the theory of parsing and automatic parser generators, semantic analysis, code generation, and optimization techniques.