#### CSE200 - Engineering and Scientific Computing

This course provides an introduction to numerical methods for scientific computation which are relevant to engineering problems. Topics addressed include interpolation, integration, linear systems, least-squares fitting, nonlinear equations and optimization and initial value problems. Basic procedural programming concepts (procedural and data abstraction, iteration, recursion) will be covered using MATLAB. C will be briefly covered so the students understand that the algorithms and programming concepts apply in both. Prerequisite: Math 132. (Taught F11, S12, F12, F13)

#### CSE260 - Introduction to Digital Logic and Computer Design

Introduction to design methods for digital logic and fundamentals of computer architecture. Students learn to use hardware description languages and computer-aided design tools (simulation, circuit synthesis) and apply them to the design of a variety of digital circuits. Coverage includes both combinational and sequential circuits, ranging in complexity from basic arithmetic circuits to a simple processor. Students learn about the underlying causes of circuit delays and timing issues in sequential circuits (setup and hold times, minimum clock period analysis, metastability). They also study how logic minimization is done, learn to make basic design trade-offs (complexity vs. performance), and how look ahead techniques can be used to speed circuit operation. Coverage also includes the operation of a programmable processor, common methods for enhancing processor performance and the design of memory systems. Prerequisites: CSE 131 or comparable programming experience. (Taught F12)

#### CSE566S - High Performance Computer Systems

Many applications make substantial performance demands upon the computer systems upon which those applications are deployed. In this context, performance is frequently multidimensional, including resource efficiency, power, execution speed (which can be quantified via elapsed run time, data throughput, or latency), etc. Modern computing platforms exploit parallelism and architectural diversity (e.g., co-processors such as graphics engines and/or reconfigurable logic) to achieve the desired performance goals. This course addresses the practical aspects of achieving high performance on modern computing platforms. This includes questions ranging from how the computing platform is designed to how are applications and algorithms expressed to exploit the platformÂ´s properties. Particular attention is given to the role of application development tools. Prerequisite: graduate standing or permission of instructor. (Taught S13)

#### CSE431 - Translation of Computer Languages

The theory of language recognition and translation is introduced in support of compiler construction for modern programming languages. Topics include syntactic and semantic analysis, symbol table management, code generation, and runtime libraries. A variety of parsing methods is covered, including top-down and bottom-up. Machine problems culminate in the course project, for which students construct a working compiler. (Taught S14)