Many of the greatest challenges facing our world today are increasingly reliant on computing their solutions — from conquering disease to eliminating hunger, from improving education to protecting the climate and environment. Information is key to all of these efforts, and computer scientists make it possible to visualize, secure, explore, transmit, and transform this information in ways never before thought possible. Solving problems through computation means teamwork, collaboration, and gaining the interdisciplinary skills that modern careers demand. Our goal with the Computer Science curriculum at UCSB is to impart to students the knowledge and experience required for them to participate in this exciting and high-impact discipline.
The Computer Science department seeks to prepare undergraduate and graduate students for productive careers in industry, academia, and government, by providing an outstanding environment for teaching and research in the core and emerging areas of the discipline. The department places high priority on establishing and maintaining innovative research programs that enhance educational opportunity.
The Department of Computer Science offers programs leading to the degrees of Bachelor of Science in computer science, and the M.S. and Ph.D. in computer science. The B.A. in the College of Letters and Science is closed effective Fall 2013. The B.S. degree program in computer science is accredited by the Computing Accreditation Commission of ABET, http://www.abet.org.
One of the most important aspects of the Computer Science program at UCSB is the wealth of “hands-on” opportunities for students. UCSB has excellent computer facilities. Campus Instructional Computing makes accounts available to all students. Computer science majors and premajors use the workstations in several computing facilities on campus. Students doing special projects can gain remote access to machines at the NSF Supercomputing Centers. Additional computing facilities are available for graduate students in the Graduate Student Laboratory. Students working with faculty have access to the specialized research facilities within the Department of Computer Science.
The undergraduate major in computer science has a dual purpose: to prepare students for advanced studies and research and to provide training for a variety of careers in business, industry, and government. Under the direction of the Associate Dean for Undergraduate Studies, academic advising services are jointly provided by advisors in the College of Engineering, as well as advisors in the department. A faculty advisor is also available to help with academic program planning.
Computer Engineering Major
This major is offered jointly by the Department of Computer Science and the Department of Electrical and Computer Engineering. For information about this major, please refer to the section on Computer Engineering.
Program Goals for Undergraduate Programs
The goal of the computer science undergraduate program is to prepare future generations of computer professionals for long-term careers in research, technical development, and applications. Graduates of the B.S. program that wish to seek immediate employment are prepared for a wide range of computer science positions in industry and government. Outstanding graduates interested in highly technical careers, research, and/or academia, might consider furthering their education in graduate school.
The primary computer science departmental emphasis is on problem solving using computer program design, analysis and implementation, with both a theoretical foundation and a practical component.
Program Outcomes for Undergraduate Programs
The program enables students to achieve, by the time of graduation:
- An ability to apply knowledge of computing and mathematics appropriate to computer science.
- 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 a common goal.
- An understanding of professional, ethical, and social responsibilities.
- An ability to communicate effectively.
- An ability to analyze the impact of computing on individuals, organizations, and society, including ethical, legal, security, and global policy issue.
- Recognition of the need for and an 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, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the trade-offs involved in design choices.
- An ability to apply design and development principles in the construction of software systems of varying complexity.
Admission to the Major
Students interested in computer science who apply to UCSB should declare the computer science major when they apply. UCSB students in majors other than computer science major can petition to the Department of Computer Science for consideration for admission via change-of-major once they complete the minimum requirements (specified
on the departmental web pages) for doing so. Computer Science majors have priority when registering for all Computer Science courses. Students admitted to the computer science major are responsible for satisfying major requirements in effect when they declare their major. Upper and lower division courses required for the major that are offered by the Department of Computer Science or any other department must be taken for letter grades.