CS Focus Areas

Networking and Distributed Systems

The Internet has become an indispensable part of modern life. Whether we are checking the latest news, communicating with friends, or entertaining ourselves with music and videos, we cannot get away from accessing and interacting with information and applications over…

Parallel Computing

Almost all computing devices are armed by multiple processors or multiple cores, pushing the availability of parallel computing to even devices such as smartphones or smart watches. This focus area equips students with core knowledge of parallel computing systems, algorithms,…

Programming Languages

The abstractions and expressive powers of programming languages deeply impact programmers’ productivity and the way programmers think. The features of a programming language also directly affect the design and power of programming tools (such as compiler, debugger, linter) associated with…

Software Engineering

Software Engineering is about the craft and science of software development so that the resulting software is correct, reliable, secure, extensible, and maintainable. In this focus area, students will learn about the systematic, disciplined, principled, and economic way to the…

Database Systems

A huge amount of digital data is generated daily by both humans and machines and the amount is expected to reach hundreds of exabytes in 2025. A large subset of these data have to be processed, stored, managed, updated, and…

Computer Security

As computing systems become increasingly interconnected and more data are available online, the job of securing computer systems and protecting data becomes increasingly challenging. Computer security is growing into the cornerstone of almost every industry, which heavily relies on networked…

Computer Graphics and Games

Computer-generated images and videos now permeate our daily life. From the entertainment industry (e.g., movies and video games) to the healthcare industry (e.g., 3D ultrasound imaging); from your computing desktop (e.g., displaying a window) to graphing calculator (e.g., plotting a…

Artificial Intelligence

The field of Artificial Intelligence (AI) aims to build intelligent machines that can mimic human cognitive functions, such as seeing, learning, and problem-solving. Advances in the field of machine learning over the last ten years have made AI one of…

Algorithms & Theory

Every single computing device, software, and bits of information is governed by some fundamental laws that remain unchanged regardless of how technology evolves. For instance, regardless of how fast a CPU can get, it cannot take fewer than some number…