Curriculum
Courses
Research
Projects

 

     

"I'm not smart, but I like to observe. Millions saw the apple fall, but Newton was the one who asked why."
- Baruch, Bernard Mannes

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.

 

Page Maintained by: Catharine Tan
Last Modified on: Wednesday, February 4, 2004

Home | Introduction | Curriculum | Degree | Admissions | People | Events | Contact | Useful Links | Sitemap
© Singapore - MIT Alliance Computer Science 2003