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.

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

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