By graduation, students in the Bachelor of Science in Software Engineering program will have demonstrated:
- an ability to apply knowledge of mathematics, science, and engineering
- an ability to design and conduct experiments, as well as to analyze and interpret data
- an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability
- 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, economic, environmental, and societal context
- a recognition of the need for, and an ability to engage in life-long learning
- a knowledge of contemporary issues
- an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.
The following table provides a basis for these student outcomes in the context of software engineering activities.
Student Outcomes in the context of software engineering activities
Use of formal methods, use of finite state machines, software quality measurement and analysis, applications of CS theory, requirements gathering, software system design.
Design and analysis of usability tests, system debugging, testing and analysis, performance testing and analysis, project metric tracking.
Design to constraints and requirements; scope management for time constraints; addressing non-functional "ilities", such as, maintainability, testability, or evolvability; software security.
Working on teams, working in project domain areas where you have little or no experience.
Identifying project constraints and solutions, problem decomposition, requirements elicitation, design trade-off analysis.
Working with assignments in critical domains requiring consideration of safety and security, consideration of professional ethics and behavior, discussion of code of ethics, being a member of a team and participating in a professional manner, professional responsibility to provide fair and honest peer evaluations.
Preparation of documentation and presentations; making presentations; participating in team meetings, brainstorming session, code reviews and walkthroughs, or artifact reviews; customer or project sponsor interactions; use of discussion forums, such as, online discussions, blog, wikis.
Feasibility analysis, environmental impact analysis, support for different languages, and usability analysis for people with impairments.
Using a new development tool, software framework, or programming language; discussion of careers and professional activity; working on problems requiring outside of class research.
Discussions of the profession, use of new technology or methodologies, effects of new methods to collaborate and communicate.
Using process methodologies, design methodologies, development tools, software frameworks, programming languages, middleware.
While we believe these program educational objectives and student learning outcomes are appropriate, we realize that they must be continuously reevaluated in terms of feedback from our primary constituencies: students and employers. In the case of students, cooperative education reports provide immediate but short-term evaluation of the curriculum. The program's Industrial Advisory Board (IAB) supplies a more strategic perspective - the IAB meets once a year to review the current status and to both initiate and evaluate changes to the curriculum.