Honours Computer Science
/ Software Engineering Option
The term ``software crisis'' has been used since the late 1960s to describe
the recurring software development problems that cause products to be
- late,
- over budget,
- unacceptable (with respect to customer's needs),
- full of errors,
- full of errors,
- difficult to maintain and/or enhance.
In response to these problems, there has been an on-going attempt to
turn software development into an engineering discipline. This discipline
is called Software Engineering -- an apparent contradiction in terms,
but the name has endured because it succinctly expresses the desired goal.
More formally, software engineering is defined to be ``the application
of a systematic, disciplined, quantifiable approach to the development,
operation, and maintenance of software; that is, the application of engineering
to software.'' [IEEE, 1993]. There has been a growing and increasingly
visible demand from industry and governments for graduates with stronger
software engineering qualifications. Furthermore, in the last couple of
years, it has become evident that there is a sufficiently rich and stable
body of knowledge to form the foundation of a specialized undergraduate
option.
In Fall 1996, the Department of Computer Science and the Department of
Electrical and Computer Engineering starting a jointly-offered undergraduate
Option in Software Engineering. The option curriculum is designed to cover
a range of important software engineering concepts and skills:
- Requirements analysis, specification, design, construction, verification,
testing, maintenance and modification of programs, program components,
and software systems;
- Algorithm design and complexity analysis;
- Database design, administration, and maintenance;
- Knowledge of more specialized application domains, such as human-computer
interaction systems, compilers, real-time systems, embedded systems,
etc;
- Management of projects that accomplish the above tasks, including
estimating and controlling their cost and duration, organizing teams,
and monitoring quality;
- Selection and use of tools and components;
- Appreciation of commercial, financial, legal, and ethical issues arising
in software engineering projects;
- Non-technical skills, such as critical reasoning, technical writing,
and presentation skills.
The option is designed to appeal to students who are interested in specializing
in the principles, models, methods, and techniques for developing large
software systems.
Option Curriculum
Below is an unofficial list of requirements for the Software Engineering
Option. It is intended to give a flavour of the course work involved.
Please see the Computer Science Undergraduate Handbook for an official
list.
Faculty Core
Math 135 |
Math 137 |
CS 130 |
Stat 230 |
Math 136 |
Math 138 |
CS 134 |
Stat 231 |
Math 235 |
Math 237 |
|
|
Computer Science Honours Core
CS 246 |
CS 340 |
CS 354 |
CS 241 |
CS 342 |
CS 360 |
CS 370 |
CS 351 |
|
Software Engineering Core
Software Intensive Courses (2 of)
CS 444 |
CS 444 Compiler Construction |
CS 452/E&CE 485 |
Real-time Programming |
CS 454/ E&CE 428 |
Distributed Systems |
CS 457 |
System Performance Evaluation |
CS 486/E&CE 457 |
Introduction to Artificial Intelligence |
CS 488 |
Introduction to Computer Graphics |
E&CE 429 |
Computer Structures |
Societal Issues (1 of)
CS 492 |
Social Implications of Computers |
CS 494/ME 401/GenE 411 |
Law and Technology |
GenE 411 |
Engineering Law |
ME 401 |
Law for the Professional Engineer |
Phil 207 |
Science, Technology & Society |
Phil 215 |
Professional and Business Ethics |
Phil 315 |
Ethics & the Engineering Profession |
STV 100 |
Society, Technology & Values: Intro |
STV 202 |
Design & Society |
STV 402 |
Technology & Canadian Society |
Business Issues (1 of)
Bus 111 |
Intro to Business Organization |
Bus 121 |
Functional Areas of the Organization |
GenE 452 |
Technical Entrepreneurship |
HRM 200 |
Basic Human Resources Management |
MSci 211 |
Organizational Behaviour |
MSci 311 |
Organizational Design & Technology |
Reasoning Methodologies (1 of)
Phil 145 |
Critical Thinking |
Phil 200J |
Intentional Logic |
Phil 241 |
Intermediate Logic |
Phil 242 |
Extensions/Applications of Logic |
Phil 243 |
Creative Thinking, Problem Solving, ... |
Phil 245 |
Critical Thinking 2 |
PMath 330 |
Intro to Mathematical Logic 1 |
Communications (1 of)
Engl 109 |
Intro. to Academic Writing |
Engl 140R |
The Use of English 1 |
Engl 209 |
Writing Strategies |
Engl 210E |
Technical writing |
Engl 210F |
Business writing |
Engl 219 |
Contemporary Usage |
Engl 309E/DRAMA 323 |
Speech Writing |
Engl 335 |
Creative Writing 1 |
Engl 376R |
Applied English Grammar |
Engl 392A |
Theories and Practices of Documentation |
Engl 392B |
The Rhetoric of Text and Image |
Drama 223 |
Public speaking |
Drama 224 |
Interpersonal Communication |
Drama 225 |
Interviewing |
Drama 324 |
Small Group Communication |
|