Computer Science is an exciting and challenging field that has
impact on many parts of our lives. As computer scientists, we craft the
technologies that keep our cell phones and iPods working. We develop the large
scale software that powers business and industry. We advance the computational
techniques and write the software that supports scientists in their study of
the world around us. Many new computer applications remain to be discovered.
Indeed, computing will be at the heart of future revolutions in business,
science, and society. Students who study computer science now will be at the
forefront of those important advances.
Computer Science is concerned with how computers are constructed, how they
store and process data, how they are used in problem-solving, and how the
quality of those solutions is assessed. It is about the science of creating
software for a variety of users. It is about understanding how that software
interacts with the hardware on which it is run. Computer Science goes well
beyond the machine to the study of how people interact with the technologies
around them. Applications of Computer Science reach far and wide.
Computer Science graduates from the University of Colorado Boulder are
engaged in a wide variety of jobs with many different companies in locations
all over the world. They produce the software and systems that touch our lives
every day in fields ranging from communications to finance to publishing.
They are, of course, software developers, but also have become teachers,
writers, doctors, lawyers, scientists, military leaders, and entrepreneurs.
They work at some of the largest, most influential companies in the world,
at research institutions, non-profits, and at the smallest start-ups of every
type imaginable. And many lead highly successful companies that they themselves
The BS degree program in Computer Science is designed to prepare students for
careers as computer specialists and for graduate study in computer science. It
culminates in a course in which students carry out year-long software
engineering projects for industry.
This degree emphasizes knowledge and awareness of
computing at all levels, from circuits and computer architecture through operating systems and programming languages to large application systems;
the theoretical and mathematical aspects of computing;
the interdependence of hardware and software;
and the challenge of large-scale software production and the engineering principles used to meet that challenge.
In addition, students successfully completing the degree acquire the
ability and skills to
communicate effectively with users as well as fellow computer professionals about computing issues;
adapt techniques drawn from a large standard repertoire to new problems;
and understand, assess, and use new and existing technologies.
These high-level goals are captured in the program's outcomes and objectives.
The BS degree program aims to produce students that
at the time of graduation have
an ability to apply knowledge of computing and mathematics appropriate
to the discipline
an ability to analyze a problem, and identify and define the computing
requirements appropriate to its solution
an ability to design, implement, and evaluate a computer-based system,
process, component, or program to meet desired needs
an ability to function effectively on teams to accomplish shared
computing design, evaluation or implementation goals
an understanding of professional, ethical, legal, security and social
issues and responsibilities for the computing profession
an ability to communicate effectively about computing topics with a
range of audiences
an ability to analyze impacts of computing on individuals,
organizations, and society
a recognition of the need for and ability to engage in continuing
an ability to use current techniques, skills, and tools necessary for
an ability to apply mathematical foundations, algorithm principles, and
computer science theory in the modeling and design of computer-based
systems in a way that demonstrates comprehension of the tradeoffs
involved in design choices
an ability to apply design and development principles in the
construction of software systems of varying complexity
The BS degree program aims to produce alumni that within
three to five years after graduation
are prepared to be valued individual contributors in a
software-oriented organization, to be programmers and designers in an
entrepreneurial pursuit, to lead small projects and generally begin
preparation for a management career, or to succeed in rigorous
are able to focus their careers on pure computer science technology or
to bring computer science expertise to a companion discipline
are prepared, where appropriate, to specialize in a broad spectrum of
computer science sub-disciplines, ranging across formal computer
science (e.g., computational science, bioinformatics, and theory),
cognitive science (e.g., human/machine learning, human-computer
interaction, collaborative work, and human language technologies),
and core computing (e.g., systems, networks and software engineering).
The Bachelor of Computer Science degree program is accredited by the
Accreditation Board for Engineering and Technology (ABET).
ABET accreditation is assurance that the program meets the quality standards
established by the computing profession.
ABET accreditation is important for many reasons:
Accreditation helps students and their parents choose quality college programs.
Accreditation enables employers to recruit graduates they know are well-prepared.
Accreditation is used by registration, licensure, and certification boards to screen applicants.
Accreditation gives colleges and universities a structured mechanism to assess, evaluate, and improve the quality of their programs.
The Bachelor of Computer Science degree program accreditation became effective
October 1, 2008. Current accreditation lasts until September 30, 2016.
for the BS Degree in Computer Science include coursework in computer science,
mathematics, natural science and the humanities and social sciences, as well
as free elective coursework. The degree provides considerable freedom in the
selection of specific courses to fulfill these requirements, allowing students
to tailor the degree to their individual needs and interests.
To begin your journey as a Computer Science major, you should give a little
thought as to what kinds of computer science appeal to you. To help you in this
task, we have identified tracks through our curriculum geared toward a variety
of specializations. These tracks reflect the fact that computer science is
transforming such disciplines as medicine, the sciences, and social science.
The tracks also illustrate various software and hardware themes within the
field of computer science. In addition to the more general
for all Computer Science majors, majors need to complete the course
requirements for one of the following tracks:
- General Computing
The General Computing track provides a broad-based background drawing from
the entire spectrum of computing. Depending on the courses selected,
students can be exposed to the design and architecture of computers, the
development of software, and the theory and techniques used in designing
efficient computer programs. Students can also learn about application of
computers to problems in science, in human-computer interaction, and in
data management. This track prepares students for careers in many different
areas of computer science.
- Computational Biology
Computer Science is rapidly becoming critical to many areas of biology
and medicine. This track's flexible requirements reflect the
diverse fields of computer science that are applied to problems in
biology or medicine, including database design and data mining,
algorithms, machine learning, and numerical computation.
Students graduating from this track will be ready to work in teams to
develop the software and systems for a variety of biomedical applications.
- Computational Science and Engineering
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. This track
emphasizes courses in numerical computation, high-performance scientific
computing, and supporting areas of science and computer science. It
provides exposure to leading-edge computing systems.
- Human-Centered Computing
Students in this track will learn how to design, build, and evaluate
socio-technical systems of the future that will tie together technology
with communication, collaboration, and other social processes
to address the challenges and opportunities of our world. The learning
opportunities in this track 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.
- Networked Devices and Systems
It is the role of networked systems professionals to select, design,
deploy, integrate, evaluate, and administer network and communication
infrastructures. This track 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, and operating systems analysis and management.
- Software Engineering
Software permeates the very fabric of modern society. This track 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, and working in teams to achieve complex objectives. The
position of software engineer was recently ranked as the "best job" in
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. This track 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 as well as embedded system design.
Our goal is to prepare students for an intriguing and satisfying career in
computer science. The huge number of technical jobs and the shortage of people
to fill them mean that opportunities are great for today's computer science
graduates. Following the curricular track of your choice will equip you with
the skills you need for your career of interest, the one in which you will help
shape the future.
There are several typical curricula a student might follow:
In addition, a curriculum with a junior year abroad at various universities,
University of East Anglia
in Great Britain, or the
University of Wollongong
in Australia can be arranged.
Active Learning Opportunities
Active learning involves enhancing knowledge, skills, and understanding through
practical experience. Students may participate in enrichment experiences and
partnerships with individual faculty in discovery, service and professional
In the course of completing an undergraduate degree a student may also obtain
a "certificate" in an approved certificate program. Although a certificate is
not equivalent to a major or minor, it does appear on the official transcript.
The certificate also demonstrates that the student has completed an academic
program beyond the major and demonstrates that the student has interdisciplinary
breadth in a special field.
A number of certificate programs are open to Computer Science majors.
These include certificates in
The following online advising information is available:
If you want to talk to a real person, the best place to start is with
Undergraduate Program Advisor Lesley McDowell:
University of Colorado Boulder
Department of Computer Science
She'll be happy to help you get answers to any questions you might have.