Document Sample
					                 PROPOSAL FOR A JOINT

                         October 25, 1999

       Joint Software Engineering Program Steering Committee
Joint SE Degree Program Proposal                                                      Page 2/17


This document is a result of considerable effort by faculty members from the Computer Science
and Electrical & Computer Engineering departments, including J. Atlee, B. W. Becker, P.
Dasiewicz, R. Holt, M. Godfrey, K. Kontogiannis, S. Leue, F. Mavaddat, N. Cercone, A.
Pidduck, B. Preiss, P. Ragde, R. Seviora, A. Singh, D. Taylor, T. Vannelli, G. Weddell, and B.
Wilson. The willingness of other colleagues both within and outside the CS and E&CE depart-
ments to share views and opinions also helped shape the proposed program.
Joint SE Degree Program Proposal                                                    Page 3/17


Software has become the key implementation technology of many of today's high tech-
nology products. Progress in computer science and accumulated experience with indus-
trial production of software have led to the emergence of software engineering as a sepa-
rate discipline. This new discipline has been defined as "the application of systematic,
disciplined, quantifiable approaches to the development, operation and maintenance of
software; that is, the application of engineering to software" (IEEE Computer Society).

The discipline of software engineering is beginning to be recognized as a professional
discipline. To accelerate this process, the two principal technical societies in the field of
computing, the Association for Computing Machinery and the IEEE Computer Society,
set up a joint steering committee for the establishment of software engineering as a pro-
fession in 1994. This committee has organized a number of task forces, including one ad-
dressing the education of software engineers.

There has been a surge in demand for software professionals, in particular software engi-
neers, as a consequence of the rapid growth in computing power and in the application of
computers. In Canada, this has been further amplified by strategic shifts in emphasis of
Canadian high-technology companies to software as a means of competitive advantage.
Various studies highlight critical shortages of software professionals in Canada (see, e.g.,
the surveys of the Software Human Resource Council, one of the sectoral councils of the
Government of Canada). Industry leaders express concerns about the impact of such
shortage on their ability to compete and to expand in Canada. This growth in demand is
likely to accelerate, given the forecast increases in capabilities of semiconductor and
communication technologies.

Canadian post-secondary institutions have begun to respond to this academic develop-
ment and societal need by starting software engineering options or specializations, and by
introducing new undergraduate and postgraduate degree programs in software engineer-
ing. In particular, the University of Waterloo started offering a joint CS-E&CE option in
Software Engineering in 1995.

It is now evident that the academic compass of the discipline of software engineering has
become larger than what can be accommodated through an option added to an allied en-
gineering or science curriculum.

As one of the leading institutions in the field of computing education, the University of
Waterloo must respond to this academic development and societal need. This document
proposes a response. It describes a joint CS-E&CE undergraduate degree program in
Joint SE Degree Program Proposal                                                  Page 4/17

software engineering. The program is four years long, co-op only. Its graduates will be
awarded the degree of Bachelor of Software Engineering. The program is designed to be
accreditable by the Canadian Engineering Accreditation Board and by the Computer Sci-
ence Accreditation Council.


2.1. Curriculum Design

2.1.1. Goals
The design of the curriculum was shaped by a number of goals that correspond to those
of similar professionally-oriented programs at the University. These goals mandate that:

a) the curriculum be a true software engineering curriculum;
b) the curriculum prepare its graduates for entry in the profession of software engineer-
c) the curriculum cover scientific and mathematical foundations of the discipline;
d) the curriculum include both engineering science and engineering design;
e) the curriculum expose students to the ethical and societal issues associated with the
f) the curriculum leave some room for elective courses (both technical and general); and
g) the graduates of the program be able to apply their knowledge to specific problems
   and produce solutions.
2.1.2. Sources of Guidance:
The main sources of guidance in the design of the curriculum included:
1) Recommendations/guidelines of the major technical societies (ACM and IEEE CS)
    a) Draft Accreditation Criteria for Software Engineering:
        These criteria allot approximately one year to institutional requirements/electives,
        and three years, in approximately equal segments, to:
        i) software engineering (software requirements, architectures, performance, test-
             ing & quality assurance, management of software processes, computer-human
             interaction, tools & documentation)
        ii) computer science and engineering (algorithms, programming languages, op-
             erating systems, databases, computer architectures)
        iii) supporting areas (mathematics, human communication)
        iv) advanced (depth, breadth, one or more significant application areas)
2) Computing Curricula '91
    These Curricula list nine subject areas and indicate minimum coverage in terms of
    lecture hours. The main areas (>36 lecture hours) are Algorithms and Data Structures,
    Computer Architecture, Programming Languages, Operating Systems, and Software
    Methodology and Engineering. The Curricula highlight the importance of coverage of
    the three fundamental processes, namely theory, abstraction (modeling), and design.
    They also stress ethical issues and social impact.
Joint SE Degree Program Proposal                                                  Page 5/17

3) SEI Undergraduate Curriculum in Software Engineering
   The Software Engineering Institute is a US government-funded organization. One of
   its goals is to advance the state of software engineering education. Its undergraduate
   curriculum contains:
   a) mathematics and basic sciences           9 courses (6 math, 3 science)
   b) software engineering science & design
        i) software analysis                   3 courses
        ii) software architectures             4 courses (includes data structures)
        iii) computer systems                  3 courses
        iv) software process                   4 courses
        v) humanities, social science          10 courses
        vi) electives                          6 courses
4) Accreditation criteria [program content]:
   a) Canadian Engineering Accreditation Board (Canadian Council of Professional
        CEAB accreditation forms a base for subsequent licensing of program graduates
        as professional engineers.
        i) mathematics:                        min 195 AU*
             * 1 AU (Accreditation Unit) = 1 lecture hour, or 2 tutorial/lab/project hours
        ii) basic (natural) sciences:          min 225 AU
        iii) engrg science, engrg design:      min 900 AU (total; each min 225 AU)
        iv) complementary studies:             min 225 AU
             (must include engrg economics, communications, impact)
             total:                            min 1800 AU.
   b) Computer Science Accreditation Council (Canadian Information Processing Soci-
        CSAC accreditation facilitates certification of program graduates as Information
        System Professionals (I.S.P.).
        i) CS, engineering:                    min 1.5 years of study
        ii) mathematics/statistics:            min 0.5 years
        iii) other (than above)                min 1.0 years
        CSAC imposes a distribution requirement of at least one course in each of soft-
        ware engineering, algorithms and data structures, programming languages and us-
        er interfaces, systems software, computer elements and architecture, theory and
        scientific computation, with at least one-third of the courses at upper-year levels
        in at least two of the areas.
2.1.3. Course Development Effort
In creating a new program, it makes sense from a resource standpoint to reuse courses
from existing programs where those courses meet the needs of the new program. Howev-
er, there is typically a need for some courses in the core curricula of professional pro-
grams which are tailored to the needs of the program. Such tailoring has occurred, for
example, in the Faculty of Engineering, where several departments offer their own ver-
sion of a course on a common engineering topic. Creating an "SE" designation will give
this new program the scope to develop its own distinctive identity.
Joint SE Degree Program Proposal                                                 Page 6/17

The SE program curriculum as described here includes ten courses with the SE designa-
tion. Of these, three (SE 463/4/5) are existing CS/E&CE courses which currently form
the core of the Software Engineering Option; one (SE 112) is a discrete mathematics
course which is specialized enough (it deals with program correctness) that it would not
make sense to give it a C&O designation or ask that department to develop it; two (SE
141, SE 240) are obsolete courses in CS and E&CE which are being resurrected because
they fit this curriculum; one (SE 382) is a new course which could well be of interest to
CS and E&CE; and three (SE 101, SE 362, SE 380) are new courses which are specific to
SE, the first of these being a quarter-credit introduction to the program.


3.1. Structure
Co-op/regular: co-op only.
Duration: 4 years, 8 months (8 study terms, 6 work terms)
Normal admission term: Fall (1A)
Streaming: Stream-8 (i.e. 1A and 1B are consecutive terms; subsequent terms alternate
between work and study). Depending on demand in future years, another stream, stream-
4 may be added.
Year 1 intake: 100 students (CS and E&CE ATOP allotments each decrease by 50).

Promotion Rules: Term by term promotion according to the new engineering promotion
rules (UW calendar 99/00, 10:15). These rules allow students to proceed to the next term
provided they achieve an average of 60% or greater, and they carry no more than two
failed courses that have not been cleared. They must clear all failed courses before grad-

Term Course                  Title
1A      MATH 115             Linear Algebra
        MATH 137             Calculus I
        PHYS 115             Mechanics
        SE 101               Introduction to Methods of Software Engineering
        C&O 203              Discrete Math
        CS 130               Developing Programming Principles
1B      MATH 138             Calculus 2
        E&CE 126             Electricity and Magnetism
        SE 112               Logic and Computation
        CS 134               Principles of Computer Science
        SE 141               Digital Circuits and Systems
2A      STAT 2xy             Probability and Statistics
        CS 241               Foundations of Sequential Programs
        E&CE 222             Digital Computers
        MSCI 261             Managerial and Engineering Economics
        GE                   General Elective
Joint SE Degree Program Proposal                                                 Page 7/17

2B      SE 240               Algorithms and Data Structures
        CS 246               Software Abstraction and Specification
        SE 380               Dynamic Systems Analysis
        LE                   Linkage Elective
        GE                   General Elective
3A      SE 362               Software Project Management
        CS 342               Control Structures
        SE 382               Human-Computer Interaction
        LE                   Linkage Elective
        GE                   General Elective
3B      SE 463               Software Requirement Analysis and Specification
        CS 457               System Performance Evaluation
        E&CE 354/CS 354      Real-Time Operating Systems
        ATE                  Advanced Technical Elective
        LE                   Linkage Elective
4A      SE 464               Software Design and Architectures
        E&CE 428             Computer Networks and Security
        E&CE 456/CS 448      Database Systems
        ATE                  Advanced Technical Elective
        LE                   Linkage Elective
4B      SE 465               Software Testing and Quality Assurance
        ATE                  Advanced Technical Elective
        ATE                  Advanced Technical Elective
        ATE                  Advanced Technical Elective
        LE                   Linkage Elective

Calendar descriptions of the SE designated courses are in Appendix A. Although the pro-
gram specifies the terms in which the various flavours of electives can be taken, students
can alter this sequence with the consent of SE program advisors. Note that where two
versions of a course are specified (e.g. E&CE 354/CS354), the SE board will specify
which version is to be taken by a given class, allowing for resource constraints and other

Course lists

Advanced Technical Electives (ATE):
A minimum of two from the following list:
CS 444              Compiler Construction
CS 452              Real-Time Programming
CS 472              Numerical Linear Algebra
CS 476              Numeric Computation for Dynamic Simulation
CS 480              Information System Management
CS 488              Introduction to Computer Graphics
E&CE 454/CS 454 Distributed Systems and Networks
E&CE 457 /CS 486 Applied Artificial Intelligence

Three additional courses chosen from third- and fourth-year offerings in CS and E&CE
that do not overlap significantly with SE core courses.
Joint SE Degree Program Proposal                                                   Page 8/17

Linkage Electives (LE):
One each in the areas of Business Issues, Societal Issues, Reasoning Methodologies, and
Communication as specified for the current Software Engineering Options. (UW calen-
dar 99/00, 10:13 or 13:13), with the addition of ENGL 109M to the Communication list.
One additional Breadth elective (exposure to Humanities and Social Sciences) chosen
from the "C" list for Engineering complementary studies electives (Calendar, 10:7).

General Electives (GE):
Any University of Waterloo course which does not significantly overlap with the SE core
courses. These courses may be required to be in the natural sciences in order to satisfy
current CEAB accreditation requirements, or they may be constrained to be outside of
CS/CE/Math in order to meet CSAC accreditation requirements.

3.1 Curriculum Rationales

In addition to drawing on the sources listed above for curriculum design in software en-
gineering, the program here was influenced by the practices and philosophies of the two
home departments (CS and E&CE), which must approve this program and nurture it to
3.1.1 Mathematics content
The SE program specifies six mathematics courses: one linear algebra, two calculus, two
discrete mathematics (one, SE 112, tailored to this program), and one in probability and
statistics. E&CE currently requires one linear algebra and no statistics; both departments
require only one discrete mathematics course. E&CE requires one more calculus course
and CS one more linear algebra course, as well as a foundational course on number theo-
ry. The second discrete mathematics course is aimed at strengthening the student's ability
to reason about programs, something that may be of interest to both home departments.
3.1.2 Natural Science content
The SE program specifies two courses in the natural sciences (mechanics and electrici-
ty/magnetism), as compared to zero in CS (though in practice many if not most students
take first-year Physics and Chemistry). Current CEAB accreditation requirements would
indicate that four or five courses are needed, and all other UW engineering programs
meet this requirement; however, we hope that the argument that software engineering is
unique among engineering disciplines in not creating physical artifacts will permit a re-
laxation of this requirement for SE. If this does not occur, an appropriate number of Gen-
eral Electives can be converted to science courses.

It seems to be difficult to use existing electricity and magnetism courses offered by either
Physics or E&CE; E&CE 126 (which was offered before much of its material moved into
the double-weight E&CE 100) can be revived for this purpose.
Joint SE Degree Program Proposal                                                  Page 9/17

3.1.3 CS foundational content
The SE program shares the four-course sequence 130-134-241-246 with CS; this se-
quence puts in place the fundamentals of object-oriented programming, abstract data
types, elementary data structures, parsing and compilation, and programming in the me-
dium. This is done in two courses in CE. The SE program covers algorithms and ad-
vanced data structures in one course, as is the current practice in CE and as was the case
in CS until recently (CS now covers these topics in two courses). The course design for
the former CS 340 can be revived for the SE course.
3.1.4 E&CE foundational content
The SE program covers circuits and computer organization in two courses, one more than
CS but two less than CE. CS has no course in control systems; the SE course on dynamic
systems analysis will be similar to a required course in CE, but tailored for SE.
3.1.5 SE content
Existing courses that could be considered foundational for SE include the three-term se-
quence SE 463-4-5 (currently part of the CS and E&CE software engineering options),
CS 362 (software project management), CS 342 (concurrency), CS 457 (system perfor-
mance evaluation), E&CE 428 (networks), E&CE 354/CS 354 (operating systems),
E&CE 456/CS 448 (databases). The new foundational SE courses are 101 (introduction
to software engineering) and 382 (human-computer interaction); we expect that the latter
will be of considerable interest to both home departments.

Note that several of the foundational courses are offered in similar versions in both de-
partments (networks, operating systems, databases). We have chosen the E&CE versions
of these courses (and of certain advanced technical electives, discussed below) so as to
equalize the impact of the SE program on the two home departments, as discussed in the
section titled Resource Implications.
3.1.6 Elective structure
We have specified three kinds of electives: advanced technical, linkage, and general. Stu-
dents will choose two of the advanced technical electives from a short list, in order to
meet the requirement for exposure to one or more significant application areas. The re-
maining three will be chosen from a much wider list which includes virtually all third-
and fourth-year courses in CS and E&CE. The question "How many ATEs are appropri-
ate?" is a difficult one to answer, and we have chosen a number which appears reasonable
without opening the program to charges of weakness or overspecialization.

The spirit of the requirements of the various accreditation bodies and SE curriculum de-
signers listed above seems to point to a minimum of half a year exposure to humanities
and social sciences (SEI and the US-based CSAB recommend a full year). CEAB only
requires half a year of "complementary studies", which includes such things as engineer-
ing economics. We decided to specify five Linkage electives; four of these are in the are-
as of Business Issues, Societal Issues, Reasoning Methodologies, and Communication, as
currently specified in the elective lists for the Software Engineering Options in both
home departments. These lists seemed a bit constrained to us, and we would like to rec-
ommend to the body ultimately charged with maintaining the SE curriculum that these
Joint SE Degree Program Proposal                                                Page 10/17

lists be reviewed and expanded at the earliest opportunity. The four areas derive from the
description of the CSAB complementary studies requirement.

The fifth Linkage Elective is in the general category of Breadth, and can be chosen from
the "C" list of complementary studies electives for Engineering. Again, we consider this
an initial position, to be revisited upon approval; the current list is quite broad, but
somewhat out of date.

The three General Electives are currently unspecified, but can be converted to science
courses if CEAB holds to its current requirement of natural sciences. If the CEAB ac-
cepts the argument that software engineering can be accredited with a reduced natural
science component, we would like to see one or two of these electives combined with the
Breadth elective to provide in-depth exposure to the humanities and social sciences (for
instance, by requiring a two- or three-course sequence in an area of concentration outside
Mathematics, Science, or Engineering). The guiding principle should be to allow the stu-
dents flexibility without allowing their exposure to become too broad and shallow.


4.1 SE Program Director
The SE Program Director is a faculty member from CS or E&CE. He/she is responsible
for the academic issues arising in the day-to-day operation of the Program, including stu-
dent contact. Preferably, the Director should hold a joint CS-E&CE appointment, or be
cross-appointed. The Program Director is assisted by an Undergraduate Advi-
sor/Coordinator (a full time staff position, shared between the two sponsoring depart-
4.2 Software Engineering Program Board
a) Chair of the Board (a faculty member from CS or E&CE, alternating, chosen by de-
   partment chairs of CS and E&CE)
b) Ex-Officio Members: Dean of Engineering, Dean of Math, Chair of CS, Chair of
   E&CE, SE Program Director
c) Faculty members: six (three from CS, three from E&CE, including the E&CE Asso-
   ciate Chair, Undergraduate, and the CS Associate Chair, Undergraduate Operations)
Term of service (non ex-officio): 2 years, with possibility of renewal.
Function: Oversees the operation and evolution of the program.
1. The Board is an inter-faculty board. It reports to the two faculty councils. It is ex-
   pected that the Board will consult with the two home departments.
2. Excepting the ex-officio members, the CS and E&CE members of the Board are nom-
   inated by the Departments.
3. Since the SE program is to be accredited as a professional engineering program, a
   reasonable number of the board members should have professional engineering sta-
Joint SE Degree Program Proposal                                                 Page 11/17

4.3 SE Program Curriculum Committee
a) The SE Program Director, as chair of the SE Program Curriculum Committee
b) Faculty Members: six (three from CS, three from E&CE, including the appropriate
   E&CE Theme Area Chair, and the CS Associate Chair, Curricula)
Function: Maintenance and evolution of program curriculum.
1. The membership may be drawn from outside of the Board.
2. The SE Program Curriculum Committee reports to the Software Engineering Program
   Board. It is expected that this committee will consult with the CS Curriculum Com-
   mittee and the E&CE Program Committee.

4.4 SE Program Faculty Pool
Membership: at least eight faculty members (initially), four from CS and four from
Function: the primary undergraduate teaching responsibility of these faculty members
will be towards the SE program courses. The program courses may also be taught by oth-
er faculty members. Pool members are nominated by the CS and E&CE departments.
Rationale: The Software Engineering program is a joint CS-E&CE program. Each of the
two sponsoring departments offers other programs, whose enrolment is much larger. It is
imperative that there be a set of faculty members who feel primary responsibility for the
SE program so that the program is started and evolves in a way that matches and further
enhances the reputation of the University of Waterloo in the field of computing. The need
for such a dedicated group is further underscored by the relative youth of the discipline of
software engineering and its ongoing rapid evolution.
4.5 Supporting Technologist Pool
Membership: two technologists (CS or E&CE)
Function: SE tool tutorials, student assistance, problem resolution. SE course project/lab
development and evolution. SE tool selection, introduction and support.
Rationale: Given the professional nature of the Program, the education of the Program
students must include exposure to common tools involved in the specification, design,
implementation, testing, maintenance, and operation of products implemented with soft-
ware technologies as well as the tools for management of the software development pro-
cesses. There is a need for staff who would have sufficient familiarity with these tools to
support their use in the education process, their maintenance and updating, and provide

1) SE Year 1 intake: 100 students/year; one stream;
2) total post-ATOP Year 1 intake: CS - 550 students/year; E&CE - 305 students/year
   (enrollment targets reduced by 50 in each department due to the student intake in SE);
Joint SE Degree Program Proposal                                                  Page 12/17

3) CS target average 'optimal' core class size = 85; E&CE average core class size = 85-
4) SE program attrition rate not significantly different from the average for the two
   home departments.
5.1 Teaching Load
Calculation of the precise impact of a new program is necessarily imprecise, due to un-
certainty over available resources, ability to meet enrollment targets, section sizes, attri-
tion rates, and other factors. It is clear, however, that the SE program will affect the
home departments in different ways. Broadly speaking, we can rank the three programs
in decreasing order by the number of home credits required as follows: CE, SE, CS. This
means that bringing the SE program into existence may result in a decrease in the number
of teaching tasks in E&CE and an increase in CS. We can partially compensate for this
by using E&CE versions of courses in cases where similar versions exist in both depart-
ments; this will be the case in the initial implementation of the program, and we will as-
sume such load balancing in the analyses below.

In addition, we will make the following assumptions:

    1.   all SE courses are taught in a single section of 100 students, with the exception
         of the project courses (SE 463-4-5), which will be in sections of 50;
    2.   one TA unit is allotted for every 30 students in a course;
    3.   due to the growing popularity of software engineering, no decrease in the num-
         ber of students pursuing the SE option in either department

5.1.1 Impact on CS department
To simplify logistics and give a sense of community to the SE program, the CS depart-
ment will try to put on sections comprised solely of SE students (maximum size 100 stu-
dents, slightly less in upper years due to attrition). This will exceed current CS section
sizes slightly in third year (where 75 is the norm) and fourth year (where 50 is the norm).
The affected courses are CS 342 and CS 457. The SE project courses (SE 463, 464, 465)
will be taught in two sections of 50. We assume here that on average two out of the five
ATEs are CS courses (this is probably somewhat pessimistic, as many of the ATE offer-
ings will be able to tolerate some increase in enrollment without necessitating additional

The main impact is from the 50 SE students that would have been in the E&CE post-
ATOP allotment. There is also some impact from the 50 students that would have been in
CS. We will assume that the latter would have been straight honours CS students without
the SE option (since we assumed above that demand for the option would not decrease)
and so we must add the effect of their taking SE 463, SE 464, and SE 465. We also as-
sume that half the SE courses are taught by CS faculty and half the TA units for those
courses are given to CS grad students (though, given the relative sizes of the graduate
programs of the two departments, this last point may be debatable). This leads to the fol-
lowing table.
Joint SE Degree Program Proposal                                                 Page 13/17

Term    # Sections # TAs           Courses (Average added sections+TA)
1A                1      3         CS 130 (.5+.1.5), SE 101 (.5+1.5)
1B              1.5    4.5         SE 112(.5+1.5), CS 134 (.5+1.5), SE 141(.5+1.5)
2A               .5    1.5         CS 241(.5+1.5)
2B              1.5    4.5         SE 240(.5+1.5), CS 246(.5+1.5),CS 342(.5+1.5)
3A                1      3         SE 362(.5+1.5), SE 381(.5+1.5)
3B              2.5    4.5         SE 463(1+1.5), CS 457(.5+1.5), SE 382(.5+1.5)
4A                2      3         SE 464(1+1.5), ATE (1+1.5)
4B                2      3         SE 465(1+1.5), ATEs (1+1.5)

This leads to a total average increase of 12 sections or teaching tasks and 27 TA units for
one cohort over five years. Since four cohorts overlap at steady state, 80% of these fig-
ures (10 teaching tasks, 21.6 TA units) represent the average yearly increase.
5.1.2 Impact on E&CE department
To examine the teaching load impact on the Electrical and Computer Engineering de-
partment, first consider the overall teaching task cost for the whole Software Engineering
Program. The following assumptions are used in this analysis.
   1. All of the SE courses, except SE 463, 464, 465, will be taught with a class size of
      100 students. SE 463,464, 465 will have class sizes of 50 due to the heavy design
      work required.
   2. All of the E&CE courses will be taught with a class size of 100.

In the core program there are 10 SE courses (SE 101, 112, 141, 240, 262, 380, 382, 463,
464, 465) which require a total of 13 teaching tasks. There are 6 CS courses (CS 130,
241, 457, 134, 246, 342) which require a total of 6 teaching tasks. If E&CE 354 and 456
are used instead of CS 354 and 448, there will be 5 E&CE courses, which require a total
of 5 teaching tasks. It is difficult to determine the number of teaching tasks required for
the Advanced Technical Electives since this will depend on the potential increase in sec-
tion numbers of existing courses in CS and E&CE due to the students from the SE pro-
gram. Since there are 5 ATEs required in the program, a total of 5 teaching tasks for the
ATEs is a conservative estimate.

The remainder of the program is taught by other departments and we assume that the
teaching load for the 100 students in SE will be no greater than the external teaching load
for the same number of students in the CS and E&CE departments. Therefore, there is no
significant increase in teaching load for external departments.

The result is that the SE program requires a total of 29 teaching tasks in the CS and
E&CE departments. Assuming these tasks are equally shared between CS and E&CE,
approximately 15 teaching tasks per department are required.

With the Software Engineering Program, there will be 305 students per year entering the
Electrical and Computer Engineering programs. These will be taught in three streams,
two Computer Engineering and one Electrical Engineering. Without the Software Engi-
neering Program there would be 355 students in the Electrical and Computer Engineering
Joint SE Degree Program Proposal                                                   Page 14/17

programs, which would require four streams. The teaching task requirements to mount
the fourth stream are greater than 15 teaching tasks required by E&CE for the Software
Engineering program. Therefore, participation in the Software Engineering has a benefi-
cial effect on the teaching load for the E&CE department.
5.2 Support Staff
Technologists: There should be no need to increase the number of technologists beyond
the planned post-ATOP level. However, the distribution of qualifications of the technolo-
gists to be hired under ATOP would have to reflect the change in support needs arising
out of the introduction of the SE program (in particular, software tool support).

Administrative Staff: One full-time Undergraduate Advisor/Coordinator. Duties: interface
with students, record keeping, assistance to Program Director.
5.3 Computing Infrastructure [hardware, software]
Computing platforms: The primary impact of the SE program would be on main memory
and CPU performance of the computing platforms. The more sophisticated software tools
used in some SE program courses will require at least 64 Mb of RAM, and Pentium
II/AMD K2-6 performance levels.

Software tools: The introduction of the SE program will require several additional CASE
tools and more licenses for the tools already used in the joint Software Engineering op-
tion. The additions will have to be acquired over the space of four years. Given the wide
and unpredictable fluctuations in educational pricing policies of software tools vendors,
the additional cost is difficult to estimate. Based on the cost of acquisition of specialized
CASE tools for the Software Engineering option, a rough estimate of the total initial ac-
quisition cost is $50,000.
5.4 Specialized Laboratories
The SE core curriculum includes two courses that requires laboratories: the electricity
and magnetism course, and the digital circuits course. The E&CE department has labora-
tories supporting similar courses. E&CE plans to expand these labs under ATOP.
The total number of students using these laboratories will increase slightly. The 50 stu-
dents in the SE degree program that would have been in CS represent a 15% increase on
an annual throughput basis. However, considering the difference in the academic terms
the SE students will use these labs (W and F, as opposed F and S) and the already
planned expansion under ATOP, there does not appear to be need for additional expan-
sion of these laboratories.
5.5 Office Space
Office space will be needed for the SE Program Director and for the SE Program Under-
graduate Advisor/ Coordinator.

6 Issues to be Resolved
The following issues will be resolved by Deans and Associate Deans of the two Faculties.
Joint SE Degree Program Proposal                                                  Page 15/17

6.1 Year 1 admission

6.1.1    Entrance requirement

The Faculty of Mathematics requires Algebra and Geometry, Calculus, and English, and
requires the Descartes Mathematics Contest. The Faculty of Engineering requires Alge-
bra and Geometry, Calculus, Chemistry, Physics, and English 1, and mentions the Des-
cartes contest as a factor in admissions. We suggest that the SE program require Algebra
and Geometry, Calculus, Chemistry, Physics, and English, and require the Descartes con-

6.1.2   Admission committee

We suggest that admissions be handled by the Engineering committee, with a mechanism
to also deflect candidates to the Mathematics process for equal consideration in Computer
Science and Engineering. This will require considerable cooperation between the two
admission committees at a difficult time, but it is clearly in the best interest of the stu-
6.1.3   Student societies

It is important that SE students not feel isolated and that they feel at home in both of the
Faculties. To that end, they should be full members of both the Mathematics and Engi-
neering student societies, and they should participate in a selected subset of both orienta-
tion programs, as determined by the SE Program Director in conjunction with the Orien-
tation Directors.
6.2 Ongoing students
Promotion will be on a term-by-term basis, handled by the Engineering Examinations and
Promotions Committee, with the new Engineering rules (UW calendar 99/00, 10:14). The
SE Program Director will attend the Engineering Examinations and Promotions Commit-
tee at the end of each term to help deal with any problematic cases.
6.3 Inter-faculty differences
A host of hopefully minor matters need to be settled: a schedule of fees, eligibility for
scholarships and bursaries, responsibility for computing needs, ELPE requirements (we
suggest the stronger of the two), Faculty of Mathematics withdrawals (we suggest they be
Joint SE Degree Program Proposal                                                             Page 16/17


SE 101 Introduction to Methods of Software Engineering
1C 1T 1L F 0 .25
An introduction to some of the basic methods and principles used by software engineers, includ-
ing fundamentals of technical communication, measurement, analysis, and design. Some aspects
of the software engineering profession, including standards, safety and intellectual property.

C&O 203 Discrete Mathematics
3C 2T F 0.5
Basic propositional logic. Set theory. Mathematical reasoning. Relations. Combinatorics. Boolean
algebra. Graph theory.

E&CE 126 Electricity and Magnetism
3C 1T 2L W 0.5
Electrostatics, electric field, electric flux, electric potential and potential energy. Dielectrics, ca-
pacitors and capacitance. Flow of electric charge, electric current, current density and resistance.
Ohm's law, Kirchoff's voltage and current laws, electric circuits. Magnetism, Ampere's circuital
law, magnetic materials, magnetic circuits. Faraday's law, inductance.

SE 112 Logic and Computation
3C 2T W 0.5
Formal logic. Proof systems and styles. Rudimentary model theory. Formal models of computa-
tion. Logic-based specification. Correctness proofs. Applications in software engineering.
Prereq: C&O 203

SE 141 Digital Systems
3C 1T 1.5L W 0.5
Number systems and information representation. Boolean algebra. Analysis and design of com-
binational and sequential circuits. Programmable logic devices and memory. Asynchronous se-
quential circuits. Introduction to hardware description languages. Case study: central processing
Coreq: SE 112, E&CE 126

STAT 2xy Probability and Statistics
3C 1T F 0.5
Axiomatic development of probability. Conditional probability and independence. Discrete and
continuous random variables, distribution functions, expectations, correlations. The Poisson pro-
cess. Statistical models, estimation, hypothesis testing.
Prereq: C&O 203, MATH 137

SE 240 Algorithms and Data Structures
3C 1T 1.5L S 0.5
Foundational data structures: arrays and linked lists. Abstract data types: search trees and tree
balancing, hash and scatter tables, priority queues and heaps, and graphs. Algorithmic patterns:
brute force and greedy algorithms, divide and conquer algorithms, backtracking algorithms,
branch and bound algorithms. Overview of NP-completeness.
Prereq: SE 112, STAT 2xy
Joint SE Degree Program Proposal                                                         Page 17/17

SE 362 Software Project Management
3C 1T W 0.5
Overview; software process models; capability maturity model; metrics; cost estimation; software
project planning, organizing, resourcing, directing and controlling; risk management; software
configuration management; reuse management; role of standards; management tools; case stud-
Prereq: CS 246, MATH 138

SE 380 Dynamic Systems Analysis
3C 1T 1P W 0.5
Dynamic models of continuous systems, transfer functions and block diagrams. Characteristics
of feedback control systems, system response characteristics and performance specifications.
Stability analysis, the characteristic equation, root locus analysis, frequency response analysis.
Review of z-transforms, sample data systems and digital control systems. Digital system stability,
discrete root locus and s-plane to z-plane mapping. PID controllers for continuous and discrete
control systems.
Prereq: MATH 115, MATH 138, PHYS 115

SE 382 Human-Computer Interaction
3C 1T 1.5L F 0.5
The purpose of this course is to introduce students to the design, implementation, and evaluation
of contemporary human-computer interfaces. Topics to include user-centered design, psycholog-
ical considerations, and usability. Emphasis is on practical systems, such as PC-based win-
dow/mouse/keyboard systems.
Prereq: SE 240, CS 246

SE 463 Software Requirement Specification and Analysis                  current CS 445/E&CE 451
3C 1T 3L F 0.5
This course is intended to introduce students to the requirements definition phase of software de-
velopment. It will discuss models, notations, and processes for software requirements identifica-
tion, representation, validation, and analysis. An important component of the course is a group
project: software requirements specification of a large software system. permission of the instruc-
Prereq: CS 342, SE 362

SE 464 Software Design and Architectures                               current CS 446/E&CE 452
3C 1T 3L S 0.5
Software design process and its models, representations of design/architecture, software architec-
tures and design plans, design methods, design state assessment, design quality assurance, design
Prereq: SE 463

SE 465 Software Testing and Quality Assurance                          current CS 447/E&CE 453
3C 1T 3L W 0.5
Systematic testing of software systems; unit, integration and system level testing; software verifi-
cation; code inspections; use of metrics; quality assurance; measurement and prediction of soft-
ware reliability; software maintenance; software reuse and reverse engineering.
Prereq: SE 464

Shared By:
wang nianwu wang nianwu http://
About wangnianwu