| B.Sw.Eng. @ UWaterloo : B.Sw.Eng. @ UWaterloo An undergraduate degree program
in Software Engineering at the University of Waterloo,
jointly sponsored by the depts of CS and E&CE. |
| Ad Hoc Committee Members : Ad Hoc Committee Members Rudy Seviora [E&CE]
Bruno Preiss (him)
Paul Dasiewicz
Kostas Kontogiannis
Stefan Leue
Ajit Singh Jo Atlee [CS]
Ric Holt
Anne Pidduck
Mike Godfrey (me)
Grant Weddell
Farhad Mavaddat |
| Background and Motivation : Background and Motivation Software runs the world, for better or worse.
Software systems comprise major assets of large corporations.
Software is become even more pervasive!
Industry is crying out for more, better help. |
| Why not ... : Why not ... B.Eng./B.A.Sc. in E&CE
not nearly enough “software content”
B.Sc./B.Math. in CS
no “engineering” mindset
not enough coverage of some engineering topics |
| Why not ... : Why not ... B.Eng. + B.Sc.
Not enough coverage of “software engineering”
HCI? Project management? |
| Program Design Goals : Program Design Goals A true software engineering curriculum!
Graduate emerge prepared for life as a software professional.
Curriculum covers the scientific and mathematical foundations.
Curriculum includes engineering science and engineering design.
|
| Program Design Goals : Program Design Goals Curriculum exposes students to ethical and societal issues of SE.
Curriculum permits electives (technical and general).
Graduates should be able to apply their knowledge to specific problems and produce solutions. |
| Curriculum Design : Curriculum Design Proposed curriculum is based on many sources:
ACM
IEEE
SEI
CSAC
CEAB
plus interactions with CS and E&CE curriculum committees. |
| Curriculum Outline : Curriculum Outline Core
mathematics
natural sciences
digital systems
computer science & engineering
software engineering
complementary studies Electives
general
linkage
advanced
technical |
| Core Mathematics : Core Mathematics |
| Core Natural Sciences : Core Natural Sciences |
| Core Digital Systems : Core Digital Systems |
| Core Computer Sci. & Eng. : Core Computer Sci. & Eng. |
| Core Software Engineering : Core Software Engineering |
| General Electives : General Electives 3 courses
Ideally unconstrained to allow student to customize the degree to an application area of interest to the student
Initially constrained to satisfy CEAB natural sciences criteria |
| Linkage Electives : Linkage Electives 5 courses
Communication
Societal issues
Business issues
Reasoning methodologies
Humanities & social sciences
plus Engineering economics (core) |
| Advanced Electives : Advanced Electives 2 courses
Fourth-year CS or E&CE courses
Chosen to expose students to one or more significant application areas |
| Advanced Electives : Advanced Electives Compiler construction
Information system management
Introduction to AI or Applied AI
Introduction to computer graphics
Distributed and network-centric computing
Embedded software systems
Numerical Linear Algebra
Numeric Computation for Dynamic Simulation
|
| Technical Electives : Technical Electives 3 courses
Selected third- and fourth-year technical courses, or
Advanced electives
Offered by CS or E&CE
No overlap with SE program courses |
| Program Skeleton : Program Skeleton |
| Program Sequence - Year 1 : Program Sequence - Year 1 Calculus 1
Linear algebra
Mechanics
Discrete mathematics
Developing programming principles Calculus 2
Electricity & magnetism
Logic & computation
Principles of computer science
Digital circuits & systems |
| Program Sequence - Year 2 : Program Sequence - Year 2 Probability & statistics
Foundations of Sequential programs
Digital computers
Managerial & engineering economics
General elective Algorithms & data structures
Software abstraction & specification
Dynamic systems analysis
Linkage elective
General elective |
| Program Sequence - Year 3 : Program Sequence - Year 3 Software project management
Control structures
Human-computer interaction
Linkage elective
General elective Software requirement analysis & spec
Real-time operating systems
System performance evaluation
Technical elective
Linkage elective |
| Program Sequence - Year 4 : Program Sequence - Year 4 Software design & architectures
Computer networks & security
Database systems
Technical elective
Linkage elective Software testing & quality assurance
Technical elective
Technical elective
Technical elective
Linkage elective |
| CEAB Accreditation Units : CEAB Accreditation Units |
| Social Issues of Curriculum Design : Social Issues of Curriculum Design Initially, some resistance from within CS and E&CE, but good will has won the day
Some fine tuning still needed.
Issues:
How much of topic XXX vs. YYY?
New courses or re-used courses?
Instructors, TAs, lab space, ... |
| Broader Social Issues : Broader Social Issues “Something old, something new, …”
“You’re stealing our courses.”
“It’s an insidious plot by engineering to take over computer science.”
“You’re creating a new department.”
“Software engineering is just a trendy catch phrase, like neural networks.”
|
| Broader Social Issues : Broader Social Issues “Those computer scientists don’t understand engineering!”
“Those engineers don’t understand software!”
“The students won’t learn enough theory / numerical / AI / hardware / embedded / circuits …” |
| Issues to be Resolved : Issues to be Resolved Teaching load, hiring, promotion and tenure
Support staff, office space
Techies, lab space
Fees, BIU levels, low-level academic policies |
| Where do we go from here? : Where do we go from here? Objective: Admit students into the SE program in Sept. 2001
The hurdles:
departmental curriculum committees
departments (June 1999)
faculty undergraduate studies committees
faculty councils (Sept. 1999)
senate undergraduate studies committee
senate (Oct. 1999) |