More detailed description of each track will be forthcoming ...

Computer Science Undergraduate Program Tracks


Computer Science is becoming increasingly broad, with many different sub-disciplines and inter-disciplinary relationships with other fields. To help students navigate our rich offerings, we have defined a number of tracks, each of which provides guidelines for students to see how different elective courses can fit together into a coherent theme. Specifically, each track constrains the elective choices, typically requiring students following that track to take specific courses for their electives. A track may also recommend certain electives that are deemed important but not critical to the track.

Note that tracks are not mutually exclusive; that is, it is possible to choose a set of elective courses that satisfy more than one track.

Computing Concepts and Themes

This track studies the theoretical foundations underlying computing and explores a variety of computing disciplines (e.g., vision, data management, and artificial intelligence)

Computer and Software Systems

This track studies the major components that comprise today's computing platform (i.e., the components that together present the current programming interface seen by most application developers). These include computer architecture, operating systems, languages and compilers, and database.

Computer Security

This track studies the principles behind and the design, implementation, and maintenance of secure computing systems.

Software Engineering and Information Management

This track studies the principles, tools, and techniques used in specifying, designing and implementing modern application software, including ones for managing and processing information.

Graphics and Vision

This track studies the mathematical foundations and practical implementations of computer graphics and computer vision technologies and applications.

Artificial Intelligence and Cognitive Science