Skip to main content

Numerical Analysis

Floating point arithmetic. Direct methods for the solution of systems of linear algebraic equations. Polynomial and piecewise polynomial approximation, orthogonal polynomials. Numerical integration: Newton Cotes formulas and Gaussian quadrature. Basic methods for initial value problems for ordinary differential equations. The emphasis throughout is on the under- standing and use of software packages for the solution of commonly occurring problems in science and engineering.

Compiler Design

Intermediate aspects of a compilation process with an emphasis on front-end issues. Practical issues in using compiler writing tools. Code generation for expressions, control statements and procedures runtime organization for simple and structured variables. Using compilers and translators for automation (filters, programs writing programs).

Modern Operating Systems

Brief review of classical operating systems concepts device drivers, file systems, starvtion/deadlock). Modern topics of file systems (log-structured file systems, distributed file systems, memory-based file systems), operating system design (monolithic, communication-kernel, extensible/adaptable, distributed shared memory), multiprocessor issues attacks, encryption, defenses). Inspection and modification of actual operating system code (Linus).

Models Of Computation

The formal study of computation, including computability and computation with limited resources. Church's thesis and models of computation. Formal languages and machines as recognizers of languages. The Chomsky Hierarchy of language types. Topics may include Turing machines or other basic models of computation; decidability and undecidability; basic complexity theory; finite automata and regular languages; pushdown automata and context-free languages. The course will cover primarily theory, including assignments that utilize concepts covered in lectures.

Advanced Embedded Systems

An advanced course in the design of embedded systems using state-of-the- art microcontroller hardware and software development tools. Topics include architectural support for real-time operating systems, language support for embedded and real-time processing, embedded and wireless networking.

Software Engineering

This course provides an overview of the software engineering discipline: software requirements, software design, software construction, software management, and software quality. Testing and validation techniques will be emphasized throughout the course. Programs and program fragments will be developed and studied throughout the course to illustrate specific problems encountered in the lifecycle development of software systems.

Subscribe to