SMA
CS Courses
The SMA CS program offers the following courses
as part of its program:
SMA5502
Computer Language Engineering
Analyzes issues associated with the implementation of higher-level
programming languages. Fundamental concepts, functions, and structures
of compilers. The interaction of theory and practice. Using tools
in building software. Includes a multi-person project on compiler
design and implementation.
SMA5503
Analysis and Design of Algorithms
Techniques for the design and analysis of efficient algorithms,
emphasizing methods useful in practice. Topics: sorting; search
trees, heaps, hashing; divide-and-conquer; dynamic programming;
amortized analysis; graph algorithms; shortest paths; network flow;
computational geometry; number-theoretic algorithms; polynomial
and matrix calculations; caching; parallel computing.
SMA5504
Artificial Intelligence
Investigates the application of the methods and tools of artificial
intelligence via problems in the use and implementation of intelligent
Web services. Emphasis on mastery and application of programs embodying
many basic representations and problem-solving methods in artificial
intelligence, including search, constraint propagation, rule-chaining,
planning, deduction, and machine learning. Includes an individual
and a multi-person project on real problems drawn from the milieu
of the World Wide Web.
SMA5505
Applied Parallel Computing
Advanced interdisciplinary introduction to applied parallel computing
on modern supercomputers. Numerical topics include dense and sparse
linear algebra, N-body problems, multigrid, fast-multipole, wavelets
and Fourier transforms. Geometrical topics include partitioning
and mesh generation. Other topics include applications oriented
architecture, software systems, MPI, cilk, DATA Parallel systems,
Parallel MATLAB, caches and vector processors with hands-on emphasis
on understanding the realities and myths of what is possible on
the world's fastest machines.
SMA5506
Database Technology
Studies the concepts and implementation related to database management
systems. Topics include the relational data model, SQL, storage
management, access methods, query processing and optimization, concurrency
control and recovery, security and authorization, and advanced database
topics such as data warehousing, data mining and multimedia databases.
Includes a project on implementing components of a mini-DBMS.
SMA5507 Advanced Graphics
Introduction to computer graphics hardware, algorithms, and software.
Topics include: line generators, affine transformations, line and
polygon clipping, splines, interactive techniques, perspective projection,
solid modeling, hidden surface algorithms, lighting models, shading,
and animation. Substantial programming experience required.
SMA
5508 Pervasive Computing
This course will cover many of the maturing technologies in input/output,
networking, information infrastructure, and ease-of-use that will
become necessary as computers become small, pervasive, and in constant
connection with each other. In particular, the course will cover
handheld GUI, speech, vision, gesture, and location based input
methods as well as several output mechanisms. Middleware systems
that permit rapid integration of digital devices in the environment
will also be studied in depth. Finally, several case-studies of
other pervasive and ubiquitous systems will be analyzed.
SMA
5509 Theory of Parallel Systems
Theoretical foundations of parallel computing systems. Algorithms
and analysis of fixed-connection networks, message routing, VLSI
layout, shared-memory consistency, load balancing, dynamic multithreading,
synchronization. Focus on problem solving and term project.

|