DEPARTMENT OF CS and E&CE

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

CS 445 CS 446 CS 447 CS 448

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

This page was last updated 07/08/2000.
Contact Us Resources @ SOSE Members @ SOSE Home Contact Us Archives @ SOSE Events @ SOSE SE courses Members @ SOSE Home