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:
- Establish a productive Computer Science career in industry, government, or attend graduate school;
- Promote the development of innovative computing systems and solutions through a balance of good design and effective implementation;
- 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:
- 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 issues;
- 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 tradeoffs involved in design choices;
- An ability to apply design and development principles in the construction of software systems of varying complexity.