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 | |
---|---|
(a) | Use of formal methods, use of finite state machines, software quality measurement and analysis, applications of CS theory, requirements gathering, software system design. |
(b) | Design and analysis of usability tests, system debugging, testing and analysis, performance testing and analysis, project metric tracking. |
(c) | Design to constraints and requirements; scope management for time constraints; addressing non-functional "ilities", such as, maintainability, testability, or evolvability; software security. |
(d) | Working on teams, working in project domain areas where you have little or no experience. |
(e) | Identifying project constraints and solutions, problem decomposition, requirements elicitation, design trade-off analysis. |
(f) | 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. |
(g) | 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. |
(h) | Feasibility analysis, environmental impact analysis, support for different languages, and usability analysis for people with impairments. |
(i) | Using a new development tool, software framework, or programming language; discussion of careers and professional activity; working on problems requiring outside of class research. |
(j) | Discussions of the profession, use of new technology or methodologies, effects of new methods to collaborate and communicate. |
(k) | 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.