Skip to main content

Compilers For Algorithmic Languages

The techniques of processing, specifying, and translating high level computer languages are studied. Topics include finite state machines and lexical analysis, context-free grammars for language specification, attributed translation grammars, language parsing, and automatic generation of compilers by SLR, LALR, and other methods of analyzing context-free grammars. Other topics may include code optimization, semantics of programming languages and top-down parsing.

Algorithm Design

The design and analysis of efficient algorithms and data structures for problems in sorting, searching, graph theory, combinatorial optimization, computational geometry, and algebraic computation. Algorithm design techniques: divide-and-conquer, dynamic programming, greedy method, and randomization, approximation algorithms.

Matrix Theory And Numerical Linear Algebra I

Review of basic linear algebra from a constructive and geometric point of view. Factorizations of Gauss, Cholesky and Gram-Schmidt. Determinants. Linear least squares problems. Rounding error analysis. Stable methods for updating matrix factorizations and for linear programming. Introduction to Hermitian eigenvalue problems and the singular value decomposition via the QR algorithm and the Lanczos process. Method of conjugate gradients.

Computer Networks

Principles of computer networks using current Internet technologies and protocols as examples. Routing algorithms and protocols; end-to-end transport; flow control; congestion avoidance and control; mail, web, and file transfer protocols; designing and implementing applications using common network APIs. Advanced topics, included as time permits, include network security, multicast, and quality of service.

Computer Vision

This course covers digital image processing as well as advanced topics in computer vision. Initial topics include image formation, digital filtering, sensor modeling and feature detection techniques. The course will discuss how these algorithms are used to address general computer vision problems including three-dimensional reconstruction, scene understanding, object recognition, and motion analysis.

Programming Languages

Overview of programming-language styles: imperative, functional, declarative, object-oriented, concurrent, simulation, glue. Non-local referencing environments, combinatorial control structures lazy/eager evaluation. This course looks at features, not complete languages, touching on such languages as Ada, CLU, FP, Haskell, Icon, Lisp, ML, Modula-2, Modula-3, Pascal, Post, Prolog, Russell, CSim, Simula-67, and Smalltalk-80. Students will not become proficient in any of these languages, but rather will learn what contributions each has made to the state of the art in language design.

Cryptography

The study of security in communications and electronic computing. The encryption of data using public key systems, block ciphers, and stream ciphers. The basic tools for the design and analysis of such systems. Topics may include information theory, authentication, digital signatures, secret sharing schemes, complexity theoretic issues, probabilistic encryption, electronic commerce and others.

Subscribe to