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.

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.