Computer Science (CS)
The SMA Computer Science program enables its graduates to contribute to the research and practice of cutting-edge computer science. The program aims to produce technology leaders who have a solid grounding in fundamentals, as well as experience and appreciation for advanced research. Coursework includes artificial intelligence and machine learning, languages and compilers, algorithms, grid and parallel computing, graphics, database technology, computer systems engineering, pervasive computing, theory of parallel systems, and research methodology. The coursework is integrated with hands-on research and industrial internship projects.
The research theme in the SMA Computer Science Program centers on adaptive computing technologies – how can we design and build computer systems that respond intelligently to a changing world, operating under serious resource constraints when only limited and unreliable information is available? One application deals with helping the elderly to live independently at home. Students in the Computer Science program can alternatively pursue innovative research on other topics of economic and technological importance, from computer graphics to Internet technology.
Recent Submissions
-
Finite Energy Survey Propagation for Constraint Satisfaction Problems
(2007-01)The Survey Propagation (SP) algorithm [1] has recently been shown to work well in the hard region for random K-SAT problems. SP has its origins in sophisticated arguments in statistical physics, and can be derived from an ... -
Provably Efficient Adaptive Scheduling for Parallel Jobs
(2007-01)Scheduling competing jobs on multiprocessors has always been an important issue for parallel and distributed systems. The challenge is to ensure global, system-wide efficiency while offering a level of fairness to user ... -
How to Do a Million Watchpoints: Efficient Debugging Using Dynamic Instrumentation
(2007-01)Application debugging is a tedious but inevitable chore in any software development project. An effective debugger can make programmers more productive by allowing them to pause execution and inspect the state of the ...