Mission Statement for the Department of Computer Science
The Department of Computer Science is dedicated to preparing undergraduate and graduate students for productive careers in industry, academia and government by providing an outstanding environment for education and research regarding the theory and applications of computing. The department places a high priority on nurturing innovative research programs that enhance its educational component and make it an important regional, national and international resource center discovering, integrating and applying new knowledge and technologies.
Undergraduate Education Goals
The undergraduate computer science and software engineering programs are committed to providing students with a high-quality education and preparing them for long and successful careers in industry and government. While eminently prepared for immediate employment, our graduates are also fully ready for focused training as required for specific positions in computer science, software engineering and closely related areas. Our students will “learn to learn” so that they can readily adapt themselves as the field of computing and their work environment changes. Graduates interested in highly technical careers, research and/or academia will be fully prepared to continue their education in graduate school. Our graduates also have good oral and written communication skills as well as a solid understanding of the ethical issues related to the computing profession.
Educational Objectives for the Undergraduate Program in Computer Science
The educational objectives of the Undergraduate Program in Computer Science are:
- To prepare students so that they can apply their knowledge to the solution of practical and useful problems.
- To prepare students to communicate effectively and work collaboratively.
- To prepare students to become successful in industry, government and graduate studies.
- To help students recognize the need for lifelong learning and be able to adapt to rapid technological changes.
- To prepare students to understand and deal with the ethical, societal and global issues associated with the computing profession.
Specific computer science-related objectives are to provide our graduates with:
- An ability to theoretically formulate and analyze problems in computing and information processing.
- An ability to solve problems using efficient algorithms and data structures.
- An ability to understand computer architecture, organization and programming languages (i.e., hardware, operating systems, networks and concepts of programming languages).
- Proficiency in programming languages (e.g., Java, C/C++ and assembly language).
Software Engineering Program Objectives
Our software engineering degrees are designed to provide world-class education in modern software engineering. The overall goals of the undergraduate software engineering program are:
- To prepare students for software engineering positions in industry and government.
- To prepare students for graduate study in software engineering.
- To provide a solid foundation in computer science and software engineering principles that will enable graduates to adapt effectively in a quickly changing field.
Specific software engineering degree objectives are to enable our graduates to:
- Effectively apply knowledge of programming, algorithms, data structures and software engineering to the development of complex software systems.
- Communicate technical concepts effectively in both written documents and oral presentations.
- Design and analyze software at the component, subsystem and software architecture levels and make sound, informed software design tradeoffs.
- Understand the social and ethical issues that arise in their work and deal with those professionally.
- Understand the importance of all phases of the software life cycle, with an emphasis on the need to plan for change and continually work to improve the software process.
- Work effectively in a software development team and with other engineering professionals.
- Appreciate the need for lifelong learning and adapt to rapid technological changes.
Undergraduate Program Outcomes
Upon completion of the undergraduate degree in computer science or software engineering, we expect our graduates to have:
- An ability to apply knowledge of mathematics, science and engineering.
- An ability to design and conduct experiments and to analyze and interpret data.
- An ability to design a system, component or process to meet desired needs.
- An ability to function on multidisciplinary teams.
- An ability to identify, formulate and solve engineering problems.
- An understanding of professional and ethical responsibility.
- An ability to communicate effectively.
- The broad education necessary to understand the impact of engineering solutions in a global/societal context.
- A recognition of the need for and ability to engage in lifelong learning.
- A knowledge of contemporary issues.
- An ability to use the techniques, skills and modern engineering tools necessary for engineering practice.
Students with a bachelor’s degree in computer science should also possess:
- An ability to theoretically formulate and analyze problems in computing and information processing.
- An ability to solve problems using efficient algorithms and data structures.
- An ability to understand computer architecture, organization and programming languages (i.e., hardware, operating systems, networks and concepts of programming languages).
- Proficiency in programming languages (e.g., Java, C/C++ and assembly language).
Similarly, upon completion of the undergraduate degree in software engineering, students should possess:
- An ability to analyze software systems.
- An ability to design software systems.
- An ability to verify software systems.
- An ability to validate software systems.
- An ability to implement software systems.
- An ability to apply software systems.
- An ability to maintain software systems.
- An ability to appropriately apply discrete mathematics to complex software systems.
- An ability to appropriately apply probability and statistics to complex software systems.
- An ability to appropriately apply relevant topics in computer science and supporting disciplines to complex software systems.
- An ability to work in one or more significant application domains.

