You are here
Computer Science
Computer science is an exciting and challenging field that has impact on many parts of our lives. Computer scientists craft the technologies that enable the digital devices we use every day. They develop the large-scale software that powers business and industry, and advance the computational techniques and write the software that supports scientists in their study of the world around us. Many new applications of computing technology 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 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 have founded.
Program Objectives
Within three to five years after graduation, computer science graduates:
- are valued individual contributors in a software-oriented organization, are programmers, are designers in an entrepreneurial pursuit, are leading small projects and generally beginning preparation for a management career, or to succeed in rigorous postgraduate programs.
- 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).
Program Outcomes
Students completing the undergraduate degree in computer science will possess:
- 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 professional development
- an ability to use current techniques, skills and tools necessary for computing practice
- 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
Department Computing Facility
The Department of Computer Science supports its own domain, www.cs.colorado.edu, and a modern computing infrastructure that supports its research and educational missions. The department has a variety of computing facilities for use by faculty, staff and students. These include general purpose computing labs provided by the university, additional instructional labs and administrative computing resources provided by the department and specialized labs dedicated to the work of individual research groups. A wide variety of computing resources are available so that students have the opportunity to learn about and use cutting-edge equipment and software.
Course code for this program is CSCI.
Minor Program
The department offers a minor in computer science that is available to undergraduates on the Boulder campus. The minor offers a basic introduction to the field of computer science; requirements may be found at www.colorado.edu/cs/bsms-degree/minor.
Bachelor's Degree Program(s)
Bachelor’s Degree in Computer Science
Requirements
Requirements for the BS degree in computer science include course work in computer science, mathematics, natural science and the humanities and social sciences, as well as free elective course work. 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. A student may not earn both the BS in computer science and the BA in computer science degrees from CU-Boulder. A student may not earn both the bachelor's degree in computer science and the minor in computer science from CU-Boulder.
The department’s goal is to prepare students for an intriguing and satisfying career in computer science either in industry, research or academia. The huge number of technical jobs and the continuing shortage of people to fill them mean that opportunities are great for today’s computer science graduates when seeking career options or to continue on to graduate school.
Suggested Plans of Study for BS in Computer Science Curriculum
Suggested plans of study are geared toward a variety of specializations. These plans of study reflect the fact that computer science is transforming such disciplines as medicine, the sciences and social science. The plans also illustrate various software and hardware themes within the field of computer science. In addition to the more general degree requirements for all computer science majors, majors should choose one of the following plans of study to guide them to completing additional degree requirements:
Self-Directed. The self-directed plan 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 plan prepares students for careers in many different areas of computer science.
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 plan 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 plan 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 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 Web and email and operating systems analysis and management.
Software Engineering. Software permeates the very fabric of modern society. This 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 and working in teams to achieve complex objectives. The position of software engineer is consistently ranked as one of the "best jobs" in the USA.
Systems. 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 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, as well as embedded system design.
Additional information about the department’s programs is available at www.cs.colorado.edu or by contacting the department at 303-492-7514.
Curriculum for BS
Required Courses and Semester Credit Hours
First Year
Fall Semester
- CSCI 1000 Computer Science as a Field of Work and Study—1
- CSCI 1300 or 1310 Computer Science 1—4
- APPM 1350 Calculus 1 for Engineers—4
- Natural science—4
- Humanities and social sciences—3
Semester credit hours—16
Spring Semester
- CSCI 2270 Computer Science 2: Data Structures—4
- APPM 1360 Calculus 2 for Engineers—4
- Natural science—5
- Humanities and social sciences—3
Semester credit hours—16
Second Year
Fall Semester
- CSCI 2400 Computer Systems—4
- CSCI 2824 Discrete Structures—3
- CSCI 3308 Software Development Methods and Tools—3
- CSCI —— Upper division Computer Science—3
- Free Elective — 3
Semester credit hours —16
Spring Semester
- CSCI 3104 Algorithms—4
- CSCI 2830 Linear Algebra with Computer Science Applications—3
- CSCI —— Track Foundation/Core or Computer Science Elective—4
- Humanities and social sciences—3
Semester credit hours—14
Third Year
Fall Semester
- CSCI 3155 Principles of Programming Languages—4
- CSCI —— Upper-division Computer Science—4
- Probability or statistics—3
- Humanities and social sciences—3
- College-approved writing course—3
Semester credit hours—17
Spring Semester
- CSCI —— Upper division Computer Science—3
- CSCI —— Upper division Computer Science—3
- CSCI —— Upper division Computer Science—3
- Free elective—3
- Natural science—4
Semester credit hours—16
Fourth Year
Fall Semester
- CSCI —— Capstone—4
- CSCI —— Upper division Computer Science—3
- Natural science—4
- Humanities and social sciences—3
- Free elective—3
Semester credit hours—17
Spring Semester
- CSCI —— Capstone—4
- CSCI —— Upper Computer Science Elective—3
- Upper-division humanities and social sciences—3
- Humanities and social sciences—3
- Free elective—3
Semester credit hours—16
Total credit hours—128
Graduate Degree Program(s)
Graduate Study in Computer Science
General Admission Requirements
Graduate students should consider a major in computer science if they are primarily interested in the general aspects of computational processes, both theoretical and practical, e.g., methods by which algorithms are implemented on a computer, techniques for using computers accurately and efficiently, design of computer systems and languages and interfaces. A student who is primarily interested in the results of a computer process and its relation to a particular area of application should major in another field and consider a minor in computer science.
Applicants are considered for graduate study in computer science if they hold at least a bachelor’s degree or its equivalent from an institution comparable to the University of Colorado. They should have considerable programming experience, sufficient mathematical maturity to understand pure mathematics courses at the upper-division level and a number of academic computer science courses.
Applicants should satisfy the following requirements for mathematics courses: at least three semesters of mathematics at the level of sophistication of calculus or above, courses such as: differential equations, linear algebra, probability, statistics and abstract algebra. These courses need not be in a mathematics department; however, they should require mathematical maturity expected of a junior or senior mathematics undergraduate.
In computer science, applicants should have the equivalent of the following University of Colorado courses: CSCI 1300 Computer Science 1: Programming; CSCI 2400 Computer Systems; one course out of CSCI 3155 Programming Languages or CSCI 3753 Operating Systems; CSCI 2270 Computer Science 2: Data Structures; and either CSCI 3104 Algorithms or CSCI 3434 Theory of Computation; and one other upper-division computer science course. Upper-division courses in areas such as artificial intelligence, databases, numerical computation, operating systems, parallel processing, software engineering and others can be substituted for courses on the above list. However, courses on the list are prerequisites to many of the graduate-level offerings and admitted students lacking their equivalent are usually required to make them up, without graduate credit. Students who lack this computer science background but who have exceptionally strong credentials in another field should contact the department for individual consideration.
Applicants should have a GPA of at least 3.00 (on a scale of 4.00). Applicants having the listed qualifications are, if accepted, classified as regular degree students. Applicants with an average below 3.00 and above 2.75 and/or lacking certain of the prerequisites listed above are sometimes considered for admission as provisional students.
These requirements apply to both the master’s and PhD programs. Applicants should be aware that admission to both programs is very competitive, and meeting the requirements does not ensure admission. Admission to the PhD program is especially competitive, and successful applicants, in general, have records considerably stronger in breadth and quality than these minimum standards suggest.
PhD applicants are required to submit scores from the aptitude portion of the Graduate Record Examination (GRE). GRE scores are optional for master’s applicants but are required if the undergraduate GPA is less than 3.00 (but above a 2.75). These scores are encouraged if previous study was at an institution lacking a strong national reputation.
Financial aid is available to PhD students in the form of teaching and research assistantships and fellowships. Aid is sometimes available for master’s students as teaching assistants or graders, but positions are assigned only at the beginning of a semester.
Admission to the graduate programs (both MS and PhD) is offered only for fall semester. Applications from both domestic and U.S. students and international students should be received by December 15.
Master’s Degree
Admission requirements for this program are given above under General Admission Requirements. Plan I (thesis) or Plan II (no thesis) may be followed. In either plan, students must complete 30 credit hours of course or thesis work. The requirements for Plan I are as stated under the general requirements of the Graduate School section in this catalog. Students in Plan I receive 6 credit hours for thesis work and are examined orally on their thesis. Under either plan a student may take 6 hours in a minor field. Students are expected to work out an acceptable program of course work with their advisor. Specific courses depend on the student’s background and field of specialization, but four of the courses must satisfy a breadth requirement.
Doctor of Philosophy Degree
Admission requirements for this program are listed under General Admission Requirements. Students in this program must pass a preliminary examination in one subarea of computer science to be eligible for admission to PhD candidacy. A minimum of 30 semester hours in courses numbered 5000 or above is required for the degree, but the number of hours in formal courses are ordinarily greater than that total. Specific courses depend on the student’s background and field of specialization.
Following the formal course work, a student must pass a comprehensive examination aimed primarily at determining whether the student is adequately prepared to begin doctoral thesis work.
Finally, students who have completed a minimum of 30 semester hours are expected to prepare a doctoral thesis based on original research in the field of computer science. After the thesis has been completed, an oral final examination on the thesis and related topics is conducted by a committee of at least five graduate faculty members.
Further details on either the master or doctoral degree programs are available at www.colorado.edu/cs/current-students/graduates.
- Arts & Sciences
- Business
- Education
- Engineering & Applied Science
- Engineering Degrees Overview
- Policies & Requirements
- Programs of Special Interest
- Alliance for Technology, Learning and Society (ATLAS)
- Engineering Anywhere
- Programs of Study
- Aerospace Engineering Sciences
- Applied Mathematics
- Architectural Engineering
- Chemical and Biological Engineering
- Civil Engineering
- Computer Science
- Electrical, Computer and Energy Engineering
- Engineering Management
- Engineering Physics
- Environmental Engineering
- General Engineering Plus
- Materials Science and Engineering
- Mechanical Engineering
- Telecommunications
- Certificate Programs
- Faculty: Engineering & Applied Science
- Environmental Design
- Law
- Media, Communication and Information
- Music
- Graduate School
- Other Academic Programs