• Course topics range from computer hardware design and embedded systems to software design and construction of real-time systems, virtual systems, and enterprise software.
  • The program integrates concepts and hands-on practice using the latest developments in emerging technologies, design, verification, implementation, and computer systems applications to provide students with hardware and software skills.
  • Students will have the ability to apply knowledge of mathematics, science, and engineering and to design and conduct experiments, as well as analyze and interpret data.
  • The undergraduate degree requires 120 credits . This means, to stay on track to graduate in 4 years, you should be taking on average 15 units per semester that count towards your degree.
  • Program Learning Outcomes:

    • Apply computing and math knowledge an ability to apply knowledge of computing and mathematics to solve problems.
    • Analyze a problem an ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
    • Design, implement, evaluate system, process, component, or program An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
    • Teamwork An ability to function effectively on teams to accomplish a common goal.
    • Professional, ethical, legal, security, social issues An understanding of professional, ethical, legal, security and social issues and responsibilities.
    • Communicate effectively An ability to communicate effectively with a range of audiences.
    • Analyze local and global impact An ability to analyze the local and global impact of computing on individuals, organizations, and society.
    • Continuing professional development Recognition of the need for and an ability to engage in continuing professional development.
    • Current techniques, skills, tools for computing An ability to use current techniques, skills, and tools necessary for computing practice.
    • Tradeoffs in design choices 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.
    • Apply design and development principles An ability to apply design and development principles in the construction of software systems of varying complexity.

    Note: A grade of “C-” or better is required for courses being used to meet any requirement in any minor or major offered by the Department of Computer Science, including Major Preparation courses. The Major Preparation and Major Requirements must include at least 37 units of upper division mathematics and computer science course work, excluding CS 100W.