Computer Science and Engineering

Baskin School of Engineering
(831) 459-2158

http://www.soe.ucsc.edu

Programs Offered

Computer Engineering B.S.

Computer Science B.S.

Computer Science B.A.

Network and Digital Technology B.A.

Technology and Information Management B.S.

Computer Engineering Minor

Computer Science Minor

Technology and Information Management Minor

Computer Engineering Bachelor’s/Master’s Contiguous Pathway

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

Computer Engineering M.S.

Computer Science and Engineering M.S.

Natural Language Processing M.S.

Computer Engineering Ph.D.

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.

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 January 2019,, the three largest companies worldwide by market capitalization are all information technology companies. The rapid and targeted communication afforded by these systems have 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 the Baskin School of 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 building 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 five specialized concentrations for completing the program: systems programming, computer systems, robotics and control, 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 design or 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. 

The bachelor of science (B.S.) in technology and information management is a rigorous, challenging major for those students wanting to pursue careers in the management of information and technology. Students will receive a thorough grounding in the fundamental principles and practices of technology (in particular, computer science and computer engineering) and management, and the scientific, mathematics, and economics principles upon which they are built. In particular, they will become proficient in the following areas: strategy, planning, innovation, entrepreneurship, information technology, software design, product development, and supply-chain management.

At UCSC, 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 and CSE 12L, 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 and CSE 12L. 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 combined B.S./M.S. pathways in both computer engineering and computer science and engineering that enable 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 & CSE 12L, 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 two master of science (M.S.) degree programs. 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 normative time for the Ph.D. program is five years for a full-time student.

Students admitted to the 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 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.

This 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.