3. academic program - University of Waterloo

advertisement
PROPOSAL FOR A JOINT
CS - E&CE DEGREE PROGRAM IN SOFTWARE ENGINEERING
October 25, 1999
Joint Software Engineering Program Steering Committee
Joint SE Degree Program Proposal
Page 2/17
Acknowledgements
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 departments
to share views and opinions also helped shape the proposed program.
Joint SE Degree Program Proposal
Page 3/17
A JOINT CS - E&CE DEGREE PROGRAM IN SOFTWARE
ENGINEERING
1. RATIONALE
Software has become the key implementation technology of many of today's high technology products. Progress in computer science and accumulated experience with industrial production of software have led to the emergence of software engineering as a separate 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 profession in 1994. This committee has organized a number of task forces, including one addressing the education of software engineers.
There has been a surge in demand for software professionals, in particular software engineers, 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 development and societal need by starting software engineering options or specializations, and by
introducing new undergraduate and postgraduate degree programs in software engineering. 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 engineering 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 Science Accreditation Council.
2. PRINCIPLES OF PROGRAM DESIGN
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 engineering;
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
discipline;
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, testing & quality assurance, management of software processes, computer-human
interaction, tools & documentation)
ii) computer science and engineering (algorithms, programming languages, operating 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
Engineers)
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 Society)
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 software engineering, algorithms and data structures, programming languages and user 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. However, there is typically a need for some courses in the core curricula of professional programs 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 version 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 designation. 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. ACADEMIC 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, stream4 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 graduation.
Term Course
Title
1A
Linear Algebra
Calculus I
Mechanics
Introduction to Methods of Software Engineering
Discrete Math
Developing Programming Principles
Calculus 2
Electricity and Magnetism
Logic and Computation
Principles of Computer Science
Digital Circuits and Systems
Probability and Statistics
Foundations of Sequential Programs
Digital Computers
Managerial and Engineering Economics
General Elective
1B
2A
MATH 115
MATH 137
PHYS 115
SE 101
C&O 203
CS 130
MATH 138
E&CE 126
SE 112
CS 134
SE 141
STAT 2xy
CS 241
E&CE 222
MSCI 261
GE
Joint SE Degree Program Proposal
2B
3A
3B
4A
4B
SE 240
CS 246
SE 380
LE
GE
SE 362
CS 342
SE 382
LE
GE
SE 463
CS 457
E&CE 354/CS 354
ATE
LE
SE 464
E&CE 428
E&CE 456/CS 448
ATE
LE
SE 465
ATE
ATE
ATE
LE
Page 7/17
Algorithms and Data Structures
Software Abstraction and Specification
Dynamic Systems Analysis
Linkage Elective
General Elective
Software Project Management
Control Structures
Human-Computer Interaction
Linkage Elective
General Elective
Software Requirement Analysis and Specification
System Performance Evaluation
Real-Time Operating Systems
Advanced Technical Elective
Linkage Elective
Software Design and Architectures
Computer Networks and Security
Database Systems
Advanced Technical Elective
Linkage Elective
Software Testing and Quality Assurance
Advanced Technical Elective
Advanced Technical Elective
Advanced Technical Elective
Linkage Elective
Calendar descriptions of the SE designated courses are in Appendix A. Although the program 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
factors.
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 calendar 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 engineering, 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
maturity.
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 theory. 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 electricity/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 relaxation of this requirement for SE. If this does not occur, an appropriate number of General 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 sequence puts in place the fundamentals of object-oriented programming, abstract data
types, elementary data structures, parsing and compilation, and programming in the medium. This is done in two courses in CE. The SE program covers algorithms and advanced 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 sequence 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 performance 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 departments (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. Students 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 remaining three will be chosen from a much wider list which includes virtually all thirdand fourth-year courses in CS and E&CE. The question "How many ATEs are appropriate?" 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 designers 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 engineering economics. We decided to specify five Linkage electives; four of these are in the areas 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 recommend 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 accepts 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 students flexibility without allowing their exposure to become too broad and shallow.
4 ACADEMIC STRUCTURES
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 student contact. Preferably, the Director should hold a joint CS-E&CE appointment, or be
cross-appointed. The Program Director is assisted by an Undergraduate Advisor/Coordinator (a full time staff position, shared between the two sponsoring departments).
4.2 Software Engineering Program Board
Membership:
a) Chair of the Board (a faculty member from CS or E&CE, alternating, chosen by department 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 Associate 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.
Notes:
1. The Board is an inter-faculty board. It reports to the two faculty councils. It is expected 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 nominated 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 status.
Joint SE Degree Program Proposal
Page 11/17
4.3 SE Program Curriculum Committee
Membership:
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.
Notes:
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 Committee 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
E&CE.
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 other 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 software technologies as well as the tools for management of the software development processes. 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
continuity.
5 RESOURCE IMPLICATIONS
Assumptions:
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 = 8588;
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 uncertainty over available resources, ability to meet enrollment targets, section sizes, attrition 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 departments; this will be the case in the initial implementation of the program, and we will assume such load balancing in the analyses below.
In addition, we will make the following assumptions:
1.
2.
3.
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;
one TA unit is allotted for every 30 students in a course;
due to the growing popularity of software engineering, no decrease in the number 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 department will try to put on sections comprised solely of SE students (maximum size 100 students, 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 offerings will be able to tolerate some increase in enrollment without necessitating additional
sections).
The main impact is from the 50 SE students that would have been in the E&CE postATOP 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 assume 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 following table.
Joint SE Degree Program Proposal
Term
1A
1B
2A
2B
3A
3B
4A
4B
# Sections # TAs
1
3
1.5
4.5
.5
1.5
1.5
4.5
1
3
2.5
4.5
2
3
2
3
Page 13/17
Courses (Average added sections+TA)
CS 130 (.5+.1.5), SE 101 (.5+1.5)
SE 112(.5+1.5), CS 134 (.5+1.5), SE 141(.5+1.5)
CS 241(.5+1.5)
SE 240(.5+1.5), CS 246(.5+1.5),CS 342(.5+1.5)
SE 362(.5+1.5), SE 381(.5+1.5)
SE 463(1+1.5), CS 457(.5+1.5), SE 382(.5+1.5)
SE 464(1+1.5), ATE (1+1.5)
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 figures (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 department, 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 section numbers of existing courses in CS and E&CE due to the students from the SE program. 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 Engineering 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 beneficial 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 technologists 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 option. 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 acquisition 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 laboratories 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 students 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 expansion of these laboratories.
5.5 Office Space
Office space will be needed for the SE Program Director and for the SE Program Undergraduate 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 Algebra and Geometry, Calculus, Chemistry, Physics, and English 1, and mentions the Descartes 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 contest.
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 students.
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 Engineering student societies, and they should participate in a selected subset of both orientation programs, as determined by the SE Program Director in conjunction with the Orientation 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 Committee 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
disallowed).
Joint SE Degree Program Proposal
Page 16/17
APPENDIX A: CALENDAR DESCRIPTIONS OF NEW/MODIFIED COURSES
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, including 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, capacitors 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 computation. 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 combinational and sequential circuits. Programmable logic devices and memory. Asynchronous sequential circuits. Introduction to hardware description languages. Case study: central processing
unit.
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 process. 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 studies.
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, psychological considerations, and usability. Emphasis is on practical systems, such as PC-based window/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 development. It will discuss models, notations, and processes for software requirements identification, 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 instructor.
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 architectures and design plans, design methods, design state assessment, design quality assurance, design
verification.
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 verification; code inspections; use of metrics; quality assurance; measurement and prediction of software reliability; software maintenance; software reuse and reverse engineering.
Prereq: SE 464
Download