Our computer science degree programs are based on an undergraduate curriculum that provides students with a durable foundation and a comprehensive set of electives. The department offers a Bachelor of Science from the College of Engineering. The degree path emphasizes problem solving using computer program design, analysis and implementation, and includes a theoretical foundation as well as "hands-on" experience. Additionally, the department offers advanced degrees and opportunities for research experience through our 5-year B.S./M.S./M.A. programs. For additional information on any of our programs, please contact the Undergraduate Advisor.

For information about requirements for College of Engineering majors, including Computer Science, and other program information, see the GEAR (General Engineering Academic Requirements) catalog associated with a student's year of entrance to UCSB.

Program Educational Objectives for Undergraduate Programs

The Computer Science BS program prepares graduates so that, 3-5 years after graduation, they:

  1. Establish a productive Computer Science career in industry, government, or attend graduate school;
  2. Promote the development of innovative computing systems and solutions through a balance of good design and effective implementation;
  3. Contribute successfully to team efforts, employing strong communication skills and demonstrating societal and ethical responsibility in decision-making.

Program Outcomes for Undergraduate Programs

The program enables students to achieve, by the time of graduation:

  1. An ability to apply knowledge of computing and mathematics appropriate to computer science;
  2. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution;
  3. An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs;
  4. An ability to function effectively on teams to accomplish a common goal;
  5. An understanding of professional, ethical, and social responsibilities;
  6. An ability to communicate effectively;
  7. An ability to analyze the impact of computing on individuals, organizations, and society, including ethical, legal, security, and global policy issues;
  8. Recognition of the need for and an ability to engage in continuing professional development;
  9. An ability to use current techniques, skills, and tools necessary for computing practice;
  10. 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 tradeoffs involved in design choices;
  11. An ability to apply design and development principles in the construction of software systems of varying complexity.