Link to the University of Waterloo home page
2009-2010

The Undergraduate Calendar

 

 

Bachelor of Applied Science and Bachelor of Software Engineering Specific Degree Requirements

Faculty Options

Option in Software Engineering
Faculty of Mathematics and Faculty of Engineering

There have been growing and increasingly visible demands from industry and governments for graduates with stronger software engineering qualifications. These demands include better appreciation for all aspects of the software engineering life cycle, better appreciation of software process, better use of methodologies and tools.

However, these demands have not been all technical. Industry is also asking for graduates who have facility across several disciplines. Our software engineering option graduates need to have substantial communications, business, and reasoning skills. Our graduates should be able to make presentations to technical and non-technical audiences, write coherent well-reasoned reports, work in groups, and assess the social, technical, legal, and commercial implications of the technology they help to create.

Thus, the Software Engineering Option has been designed jointly by the Department of Electrical and Computer Engineering and the David R. Cheriton School of Computer Science to meet these demands.

The Option is meant to be part of either a BASc or BCS degree, and is offered jointly by the Faculties of Engineering and Mathematics. Given that the Option involves two faculties, it has slightly different realizations in those faculties. This option description is found in the calendar chapters for each faculty (the Faculty of Engineering and the Faculty of Mathematics). The interested reader is directed to the appropriate portion of the calendar.

It should be noted that this description is for an option in addition to a degree. This option does not replace any of the normal degree requirements. Engineering students must satisfy the BASc degree requirements as specified in the Faculty of Engineering chapter, and Mathematics students must satisfy the BCS requirements specified in the Faculty of Mathematics chapter. In most cases, courses which satisfy the Software Engineering Option requirements can be selected to also satisfy some component of the degree.

Software Engineering Components

Software engineering is comprised of several related components. These components involve both the technical aspect of the discipline as well as aspects that link the practitioner to the environment of software development.

The technical component consists of three sub categories: the central concepts of the discipline, the foundations of software engineering, and the applications for which software engineering techniques are to be used. The table below summarizes the technical aspects of software engineering as they relate to Engineering and Mathematics students.

The second component of this discipline is linkage. It is clearly important for the software professional to be able to adapt to the environment often associated with software engineering. As a result of this need, four areas of study have been included in the requirements: Societal Issues, Business Issues, Reasoning Methodologies, and Communications. The first three areas of study can be satisfied by taking courses from the lists of courses in the Linkage Summary. Communication skills, both written and verbal, are very important aspects of software engineering, and are a significant component of the foundation technical courses as well as some of the linkage courses. Each student will have different needs in this area, and students are encouraged to consider taking courses from the suggested list of Communications courses below.

Technical Summary

The technical component of this option consists of courses in three categories: Central Concepts, Foundations, and Applications. It should be noted that the degree requirements must be met. In many cases the Software Engineering Option courses may satisfy some portion of the degree requirements.

The courses in each category applicable to the two degrees are listed below.

Central Concepts

All of the following courses are required for students enrolled in a BASc degree.

ECE 103 Discrete Mathematics for Engineers
ECE 222 Digital Computers
ECE 223 Digital Circuits and Systems
ECE 250 Algorithms and Data Structures
ECE 251 Programming Languages and Translators
ECE 204 Numerical Methods
ECE 324 Microprocessor Systems and Interfacing
ECE 354 Real-Time Operating Systems
ECE 380 Analog Control Systems
ECE 456 Database Systems

All of the following courses are required for students enrolled in a BCS degree.

CS 240 Data Structures and Data Management
CS 241 Foundations of Sequential Programs
CS 246 Software Abstraction and Specification
CS 251 Computer Organization and Design
CS 341 Algorithms
CS 350 Operating Systems
CS 448 Introduction to Database Management

Foundation Courses

The following courses are required for both degrees.

ECE 451/CS 445 Software Requirements Specification and Analysis
ECE 452/CS 446 Software Design and Architecture
ECE 453/CS 447 Software Testing, Quality Assurance and Maintenance

Applications

Two of the following courses are required for the option.
ECE 428 Computer Networks and Security
ECE 429 Computer Structures
ECE 454 Distributed and Network Computing
ECE 457 Applied Artificial Intelligence
ECE 484 Digital Control Applications
CS 444 Compiler Construction
CS 452 Real-Time Programming
CS 454 Distributed Systems
CS 457 System Performance Evaluation
CS 466 Algorithm Design and Analysis
CS 486 Introduction to Artificial Intelligence
CS 488 Introduction to Computer Graphics

Linkage Summary

The student must take four courses from the following lists, with at least one course selected from each list. If a student wishes to improve his or her communication skills by taking a course from the Suggested Communication Courses List (or some other communications course that has been approved by the student's undergraduate advisor), then only three linkage courses (one from each list) are required.
Linkage Area Courses
Business Issues BUS 111W, 121W, HRM 200, MSCI 211, 311, 454, MTHEL 400
Societal Issues CS 492, ME 401, GENE 411, PHIL 215, 315, STV 100, 202, 302, 400
Reasoning Methodologies PHIL 145, 200J, 243, PMATH 330

Suggested Communications Courses

Given that the Foundations courses require a high level of proficiency in both written and oral communication skills, students should consider how they can upgrade these skills. The following list of courses is intended for students wishing to improve their communication skills. If one of these courses is taken, then only three of the linkage courses listed above (one from each list) is required. Students interested in pursuing this alternative should discuss their selection with their student advisor. Suggested communications courses: ENGL 109, 140R, 209, 210E, 210F, 210G, 219, 309E, 376R, 392A, 392B, SPCOM 223, 224, 225, 323, 324. Students should be aware that these courses may have enrollment limits, or may not fit their schedules.


Office of the Registrar
University of Waterloo
2nd Floor, Needles Hall
200 University Avenue West
Waterloo, Ontario, Canada N2L 3G1
519 888 4567
 Campaign Waterloo