The undergraduate degree requirements allow for some flexibility in which courses you choose to take to satisfy your Computer Science Core and Electives. The following suggested plans of study are optional*, and are provided to help you select courses that will help you focus on one area of interest while working toward your degree requirements. You should check your degree audit to determine how each course counts toward degree requirements.

Students in both the BS and BA may choose to follow all suggestions in a particular plan, part or none of these. These plans are meant to be a helpful planning tool.

*If you entered the Computer Science BS degree prior to fall 2015, you should consult with your academic advisor and your degree audit regarding classes that meet your Track requirements.

Computational Science and Engineering is a multidisciplinary area within computer science drawing from traditional computer science, mathematics, the physical and biological sciences, and engineering. It integrates knowledge and techniques from all of these disciplines to create computational technologies for a wide range of important applications in science and engineering.

  • Our understanding of the natural world is now based on computation as well as on traditional theory and experiment.
  • Numerical simulations permit investigations that would be too time-consuming, expensive, dangerous or even impossible to do experimentally.
  • Problems considered by computational scientists include climate and weather prediction, spacecraft design, video game construction and the discovery of new medicines and treatments among many others.

The Computational Science and Engineering plan emphasizes courses in numerical computation, high-performance scientific computing, and supporting areas of science and computer science. You will gain exposure to leading-edge computing systems that will allow you to contribute to a variety of professional opportunities including:

  • Scientific research efforts at universities and national laboratories
  • Mathematical and software support for simulations in aerospace, automotive and other industries
  • The design and development of animations and computer games
  • The processing of information and large data sets for companies like Google.

Recommended Courses

  • CSCI 3287-3 Design & Analysis of Data Systems
  • CSCI 3656-3 Numerical Computation*
  • CSCI 3753-4 Design & Analysis of Operating Systems
  • CSCI 4229-3 Computer Graphics
  • CSCI 4446-3 Chaotic Dynamics
  • CSCI 4448-3 Object-Oriented Analysis and Design
  • CSCI 4576-4 High-Performance Scientific Computing*
  • CSCI 4753-3 Computer Performance Modeling
  • CSCI 4809-3 Computer Animation
  • Other topics courses, availability varies by semester

*highly recommended

Computing is changing our lives. The transformation is shaped not only by technology but also by how people express themselves, how they think and how they interact in groups. The Human-Centered Computing (HCC) plan will prepare you to contribute to this accelerating global process.

HCC integrates the command of technology with insight into the individual mind, the interactions of groups and organizations, and society. You will learn how to design, build and evaluate the systems of the future. These socio-technical systems will tie together technology with communication, collaboration, and other social processes to address the challenges and opportunities of our world.

The learning opportunities in HCC draw on and integrate research in human computer interaction, design of interactive systems, computer supported cooperative work, computer supported collaborative learning, educational technology, tools that support creativity, user-developed knowledge collections and gaming.

HCC projects address applications in health care, urban planning, emergency management, inclusive design, creativity, digital libraries, and learning. HCC provides opportunities for connections with other programs at CU including the:

Recommended Courses

  • CSCI 3002-4 Fundamentals of Human Computer Interaction*
  • CSCI 3112-1 Human-Centered Computing Professional Development*
  • CSCI 3202-3 Introduction to Artificial Intelligence
  • CSCI 3287-3 Design & Analysis of Data Systems
  • CSCI 3702-3 Cognitive Science*
  • CSCI 4448-3 Object-Oriented Analysis and Design
  • CSCI 4753-3 Computer Performance Modeling
  • Other topics courses, availability varies by semester

*highly recommended

The use of technology is escalating in everyday tasks for communication and collaboration. As we become increasingly dependent on services such as email and cell phones, the demand for interconnection of communication devices and systems grows. It is the role of networked systems professionals to select, design, deploy, integrate, evaluate and administer network and communication infrastructures. The Networked Devices and Systems plan emphasizes courses in:

  • Deployment of networks with specific design and protocol requirements
  • Applying networking to deploy services in multimedia, information storage and distribution, security and services on the Internet such as the World Wide Web and email
  • Operating systems analysis and management.

This plan emphasizes a significant understanding of the computer from low-level machine architecture to user-level application and service management. Examples of everyday services managed by networked systems professionals are:

  • Router and smart switch management for deploying and securing networks
  • Server configuration, management, analysis, modeling and evaluation
  • Intrusion prevention and detection, system auditing and forensics.

Network and systems administrators find employment in companies and organizations of every type, from banks to law firms, from universities to the government; each of these institutions needs someone to run their network and email services and to protect private data from outside intruders.

If you are interested in this plan, you may also be interested in the BS/MS concurrent degree option between Computer Science and the Interdisciplinary Telecommunications Program.

Recommended Courses

  • CSCI 3287-3 Design & Analysis of Data Systems
  • CSCI 3434-3 Theory of Computation
  • CSCI 3753-4 Design & Analysis of Operating Systems*
  • CSCI 4113-3 (or TLEN 5842) Linux System Administration*
  • CSCI 4273-3 Network Systems*
  • CSCI 4413-3 Computer Security and Ethical Hacking*
  • CSCI 4448-3 Object-Oriented Analysis and Design
  • CSCI 4593-3 Computer Organization
  • CSCI 4753-3 Computer Performance Modeling
  • TLEN 5310-3 Telecomm Systems
  • Other topics courses, availability varies by semester

*highly recommended

Software permeates the very fabric of modern society. Entire industries such as transportation, shipping, banking, government and medicine would be unable to function without software infrastructure. Software engineers work in teams to create and maintain this software, ensuring that the resulting systems are reliable, efficient and safe.

The Software Engineering plan emphasizes courses in:

  • Core software engineering concepts, methods and tools
  • The understanding of user requirements and user interface design
  • The ability to design programming languages and software tools that support software development
  • Working in teams to achieve complex objectives

Software Engineering is an exciting domain with significant potential for lifelong employment. The position of software engineer was recently ranked as the "best job" in America. High salaries and opportunities for creativity were key to this No. 1 rating. Furthermore, the demand for software engineers is projected only to increase for the foreseeable future. Indeed, the field of software engineering leads many published lists of fastest-growing occupations in the country.

Recommended Courses

  • CSCI 3002-4 Fundamentals of Human Computer Interaction
  • CSCI 3287-3 Design & Analysis of Data Systems
  • CSCI 3753-4 Design & Analysis of Operating Systems
  • CSCI 4113-3 (or TLEN 5842) Linux System Administration
  • CSCI 4229-3 Computer Graphics
  • CSCI 4273-3 Network Systems
  • CSCI 4413-3 Computer Security and Ethical Hacking
  • CSCI 4448-3 Object-Oriented Analysis and Design*
  • CSCI 4555-3 Compiler Construction
  • Other topics courses, availability varies by semester

*highly recommended

Computers benefit almost every part of our lives -- from entertainment to cars to phones to medical devices. Computer systems engineers work with hardware and software to help application developers make these devices a reality.

The Systems plan emphasizes courses in:

  • Direct control of hardware through low-level software
  • The design and implementation of operating systems and programming languages
  • Networking and performance analysis
  • Embedded system design

Some of these courses are cross-listed with the courses from the Department of Electrical, Computer and Energy Engineering (ECEN). The plan, however, focuses on software design, while ECEN has greater emphasis on circuits and electronics.

Computer systems engineers work in teams to develop the software for embedded devices and to interface computers with physical systems. Examples of artifacts that computer systems engineers create include:

  • Novel user interfaces such as the Nintendo Wii remote
  • Software for smartphones
  • Operating and file systems for Digital Video Recorders, like the TiVo
  • Navigation systems such as OnStar maps;
  • Supercomputers that are used to predict weather, design drugs and simulate earthquakes and tidal waves
  • Robots that explore space, handle hazardous materials and accidents, and vacuum floors.

Recommended Courses

  • CSCI 3753-4 Design & Analysis of Operating Systems*
  • CSCI 4229-3 Computer Graphics
  • CSCI 4273-3 Network Systems*
  • CSCI 4555-3 Compiler Construction
  • CSCI 4593-3 Computer Organization
  • CSCI 4753-3 Computer Performance Modeling
  • ECEN 2350-3 Digital Logic*
  • ECEN 4613-3 Embedded System Design
  • Other topics courses, availability varies by semester

*highly recommended