Computer Science and Engineering

Baskin Engineering
(831) 459-2158
engineering.ucsc.edu

Programs Offered

Computer Engineering B.S.

Computer Science B.S.

Computer Science B.A.

Network and Digital Technology B.A.

Computer Engineering Minor

Computer Science Minor

Computer Science and Engineering Bachelor’s/Master’s Contiguous Pathway

Computer Science and Engineering M.S.

Natural Language Processing M.S.

Computer Science and Engineering Ph.D.

Human Language Media and Modeling Designated Emphasis

Other Programs of Interest

Computer Science: Computer Game Design B.S.

Robotics Engineering B.S.

Technology and Information Management B.S.

Technology and Information Management Minor

Computer scientists and engineers study the design and architecture of digital systems, their properties, and their application. The science and engineering of computing systems includes a variety of disciplines from the mathematical study of computation to the design of architectures leveraging advanced technologies, as well as expertise in the many different levels of abstraction in between, and the realization of a vast array of applications and information technologies. These systems are now present in almost every human endeavor, in the form of embedded systems to cloud-scale computation, from personal devices to society-scale networks and systems, from data science to the everyday systems they automate.

Computing is the field that is most strongly influencing the societal, industrial, and technological advances of this century, bringing a revolution spanning from what humans can do (via information technology, data science, e-commerce, and more) to how they communicate (the web, social networks, mobile devices, and virtual/augmented reality). Indeed, as of April 2021, three of the four largest companies worldwide by market capitalization are all information technology companies. The rapid and targeted communication afforded by these systems has affected our culture and politics. Computing, from hardware to algorithms and networking, is responsible for an increasing share of the value even of products that once were purely mechanical systems, such as automobiles. 

Computing spans multiple areas that are continually evolving, spurred by both technological and theoretical advances; the current areas can be roughly categorized as follows: 

  • Design and architecture, or how computing systems are built: from VLSI/CAD, to architectures and parallel systems.
  • Systems, or how the architectures can be organized: operating systems, storage, networking, and databases, the languages used to program them, and the techniques used to ensure their secure operation.
  • Theory, concerning the abstract properties of computing systems, spanning from the theory of computation to algorithms, from the foundations of programming languages and concurrency to the theory of databases and distributed systems.
  • Data science, or how to computationally understand information about the world, including artificial intelligence and machine learning, natural language processing and vision.
  • Applications, or how computing systems can be used and what the implications of their use are, from web to mobile systems, from vision to assistive technologies, from fairness and privacy issues to the societal implications of computing, to the incentive structures that make collaboration and communication possible.

Computing at UC Santa Cruz has already attained a very high level of international recognition. The Computer Science and Engineering Department’s organization, as a single cohesive department, facilitates new projects and courses that span multiple areas.  As a broad department, it benefits from a wider and more prepared graduate student cohort, and the close coordination of degrees with course offerings that provide engineering majors with more streamlined and cutting-edge degree programs. With its proximity to Silicon Valley and its outstanding research, UCSC is a leader in computing research and education.

The Computer Science and Engineering Department offers five undergraduate degree programs, three undergraduate minors, and graduate master’s and doctoral degree programs.

Two additional programs in Baskin Engineering share the same introductory programming courses as the Computer Science and Engineering Department’s computing majors. The Computational Media Department offers a degree that focuses on computer game design by providing students with artistic, systems, and management perspectives for developing computer games. The Electrical and Computer Engineering Department offers a degree in robotics that builds on courses in computer engineering and electrical engineering, combined with mechanical engineering, that focuses on constructing and controlling robotic devices.

Undergraduate Program

The Computer Science and Engineering Department at UC Santa Cruz offers five undergraduate degrees and three related minors:

The bachelor of science (B.S.) in computer engineering prepares graduates for a rewarding career in engineering. UCSC computer engineering graduates will gain a thorough grounding in the principles and practices of computer engineering and the scientific and mathematical principles upon which they are built; they will be prepared for further education (both formal and informal) and for productive employment in industry. Because computer engineering is so broad, the B.S. in computer engineering offers four specialized concentrations for completing the program: systems programming, computer systems, networks, and digital hardware.

The bachelor of science (B.S.) in computer science is appropriate for students desiring a strong concentration in the core areas of computer science—algorithms, programming languages, and systems—with more courses in computer science, computer engineering, and computational media; this program also allows for a few electives outside of science and engineering.

The bachelor of arts (B.A.) in computer science is designed to give students a solid grounding in both theoretical and practical topics in computer science, computer engineering, and mathematics while leaving flexibility for a broad program of study, including some courses outside of science and engineering, or even for a double major in another discipline.

The bachelor of arts (B.A.) in network and digital technology provides students with in-depth knowledge of the underlying structure and function of network and computer technology and the design processes that make those technologies function. The program is tailored to students who wish to combine technology with other fields or have a general focus on digital-computer networks. The B.A. in network and digital technology is not an engineering degree, but B.A. graduates will be prepared to work with technology development in other capacities, or join the computer network workforce.

At UC Santa Cruz, students in computing majors are first introduced to programming using the Python programming language in CSE 20, Beginning Programming in Python. The core programming sequence, courses CSE 13S, Computer Systems and C Programming, (or CSE 13E Embedded Systems and C Programming), and CSE 30, Programming Abstractions: Python, expose students to more advanced concepts in C and Python. CSE 12, Computer Systems and Assembly Language & Laboratory, is taken prior to CSE 13S or CSE 13E to provide the underpinnings of computer organization necessary for mastering the C programming language. Students with a prior programming course, AP credit, or clearing the “Test-out” bar will start with CSE 30 and CSE 12. Note that CSE 30 assumes some Python experience, students trained in a different language should self-study Python to prepare for CSE 30.  See the CSE 20 Testout Exam website for resources and further information.

Many computer engineering and computer science students continue their education through the M.S. degree. The Department of Computer Science and Engineering offers a combined B.S./M.S. pathway in computer science and engineering  that enables eligible undergraduates to move without interruption to the graduate program. Interested students should contact their adviser for more details.

Courses for Non-majors

The Department of Computer Science and Engineering offers course CSE 3, Personal Computer Concepts: Software and Hardware, providing students an introductory course on the design and use of computers from an engineering viewpoint. Other courses of interest to non-majors include CSE 20, Beginning Programming in Python and CSE 12, Computing Systems and Assembly Language & Laboratory an introductory course on computer systems, system software, and machine-level programming; CSE 80N, Introduction to Networking and the Internet, an introduction to technological services of the Internet; and CSE 80A, Universal Access: Disability, Technology, and Society. 

Graduate Program

The Department of Computer Science and Engineering offers a doctorate (Ph.D.) and a master of science (M.S.) degree program. Graduate students in these programs establish a solid foundation in algorithms, architectures, programming languages, and then proceed to a thorough study of recent developments in their selected area of specialization. The department offers the M.S. in the Natural Language Processing professional degree program.

The normative time for the CSE Ph.D. program is five years for a full-time student.

Students admitted to the CSE Ph.D. program are generally supported in the form of a combination of fellowships, teaching assistantships, and/or graduate research assistantships.

The normative time for CSE M.S. thesis track programs is two years for a full-time student and from one year to four quarters for the M.S. project track programs.

The CSE M.S. thesis track is for students interested in advanced studies and carrying out independent research as well as those contemplating pursuit of a Ph.D. degree.

The M.S. in Natural Language Processing program is a five-quarter program offered through the UCSC campus location in Silicon Valley.