Academic Calendar 2007 (old)» UNDERGRADUATE COURSE INFORMATION» Software Engineering
print preview

Software Engineering

Software Engineering Courses
 
203a/b204a/b205a/b250a/b251a/b310a/b311a/b
312a/b313a/b314a/b350y351a/b352a/b353a/b
410a/b411a/b450452a/b453a/b454a/b455a/b
456a/b466a/b470a/b471a/b472a/b

All Engineering Science courses are available only to students registered in the Faculty of Engineering unless indicated otherwise.

SE 203a/b, Object Oriented Design for Software Engineers
Description: Object Oriented Design (OOD) using the Unified Modeling Language. Importance of the design process in the Software Life Cycle. Review of traditional software design methods leading into fundamental OOD principles and practices. Reusability, use of tool sets and standards are stressed. Brief coverage of user-interface design, real-time and distributed systems
Prerequisite(s): Computer Science 026a/b or Engineering Science 036a/b or the former Computer Science 036a/b, Computer Science 027a/b or Computer Science 037a/b
Corequisite(s): SE 205a/b, SE 250a/b
2 lecture hours, 3 laboratory hours, 1 tutorial hour, 0.5 course.
back to top

SE 204a/b, Science for Information Technology
Description: To cover the principles of basic science (physics, chemistry, biology, earth science) as they relate to Information Technology and Software Engineering.
Prerequisite(s): Registration in a Software or Integrated Engineering program.
3 lecture hours, 1 tutorial hour, 0.5 course.
back to top

SE 205a/b, Algorithms and Data Structures for Object-Oriented Design
Description: Survey of important computer algorithms and related data structures used in object-oriented software engineering. Design, performance analysis and implementation of such algorithms, stressing their practical use and performance certification of large software applications. Understand how to "seal" designs to guarantee performance goals and insure that all error conditions are caught.
Antirequisite(s): Computer Science 210a/b.
Prerequisite(s): Computer Science 026a/b or Engineering Science 036a/b or the former Computer Science 036a/b, Computer Science 027a/b or Computer Science 037a/b, or permission of the Department
3 lecture hours, 1 laboratory hour, 0.5 course.
back to top

SE 250a/b, Introduction to C and UNIX
Description: Introduction of UNIX as a platform for software engineering. Comprehensive study of C language through a series of projects. Basic software engineering life cycle and the UNIX tools that support this. Examining advanced C programming techniques and UNIX kernel syscalls.
Prerequisite(s): Computer Science 026a/b or Engineering Science 036a/b or the former Computer Science 036a/b
2 lecture hours, 2 laboratory hours, 0.5 course.
back to top

SE 251a/b, Discrete Structures for Software Engineers
Description: Logic, sets and functions, algorithms, mathematical reasoning, counting, relations, graphs, trees, Boolean Algebra, computation, modeling.
Antirequisite(s): Math 222a/b
Prerequisite(s): Computer Science 026a/b or Engineering Science 036a/b or the former Computer Science 036a/b
Corequisite(s): Computer Science 027a/b or Computer Science 037a/b.
3 lecture hours, 0.5 course.
back to top

SE 310a/b, Theoretical Foundations of Software Engineering
Description: An investigation into the theoretical foundations of Software Engineering including automata theory, computability, analysis of algorithms and the application of formal specification methods to software specification.
Antirequisite(s): Computer Science 331a/b, Computer Science 340a/b
Prerequisite(s): Registration in Year 3 of Software Engineering
3 lecture hours, 2 tutorial hours, 0.5 course.
back to top

SE 311a/b, Signals, Systems and Software Processes
Description: To introduce the fundamentals of discrete-time signals, systems, and statistical control of software processes in modern systems.
Antirequisite(s): ECE 331a/b.
Prerequisite(s): ECE 238a/b and ECE 239a/b, Registration in Year 3 of Software Engineering or Year 4 of Integrated Engineering.
3 lecture hours, 2 laboratory hours, 0.5 course.
back to top

SE 312a/b, Introduction to Computer Networks
Description: OSI reference model layers, path determination techniques, configuration and operation of routers, IP routing/addressing and subnetting techniques. The topics covered, along with laboratory exercises, help the student in constructing efficient networks and understanding new technologies.
Antirequisite(s): Computer Science 357a/b
Prerequisite(s): Registration in Year 3 or Year 4 Engineering
3 lecture hours, 2 laboratory hours, 0.5 course.
back to top

SE 313a/b, Operating Systems for Software Engineering
Description: Theory and construction of operating systems, including real-time and embedded systems aspect from an engineering point of view, stressing performance measurement and metrics. Quality of Service issues leading to certification that an operating system will satisfy hard real-time constraints.
Antirequisite(s): Computer Science 305a, ECE 460a/b or the former ECE 360a/b.
Prerequisite(s): SE 203a/b, SE 205a/b, SE 250a/b.
3 lecture hours, 2 laboratory hours, 0.5 course.
back to top

SE 314a/b, Design and Implementation of Computer Networks
Description: Design, configuration, and maintenance of switches, LANs, and VLANs leading to a thorough understanding of the real-world internetworking. At the completion of this, the student is well-prepared to write the Cisco CCNA Certification Examination.
Prerequisite(s): SE 312a/b
3 lecture hours, 2 laboratory hours, 0.5 course.
back to top

SE 350y, Software Engineering Design I
Description: Design and implementation of a large group project illustrating the design concepts being taught and promoting team interaction in a professional setting.
Prerequisite(s): SE 203a/b.
Corequisite(s): SE 351a/b, SE 352a/b, SE 353a/b.
1 lecture hour, 3 tutorial/laboratory hours, both terms, 0.5 course.
back to top

SE 351a/b, Software Project and Process Management
Description: Project Management and Software Process life cycles. Includes detailed analysis of components of each process. Metrics, tools and related standards associated with those components. Integration into a complete software plan.
Antirequisite(s): Computer Science 377a/b
Prerequisite(s): SE 203a/b, SE 250a or ECE 230y or ECE 241b, SE 251a/b or Mathematics 222a/b, SE 205a/b or Computer Science 210a/b.
Corequisite(s): SE 350y.
3 lecture hours, one tutorial hour, 0.5 course.
back to top

SE 352a/b, Software Engineering Design Tools
Description: System tools (loaders, debuggers, libraries, archivers), survey of programming languages, run-time systems, introduction to parsing (yacc and lex), survey of database technology, Object Oriented languages, special topics.
Antirequisite(s): CS 307a/b, CS 319a/b, CS 342a/b
Prerequisite(s): SE313a/b, SE 351a/b
Corequisite(s): SE 350y, SE310a/b.
2 lecture hours, 2 tutorial hours, 0.5 course.
back to top

SE 353a/b, Human-Computer Interaction
Description: Design and testing of user interfaces for the supervisory control of complex systems. Interfaces for human input and methods for displaying complex data using advanced graphics, interactive visualization methods. Advanced UI development software.
Antirequisite(s): Computer Science 474a/b
Corequisite(s): SE 313a/b
2 lecture hours, 2 tutorial hours, 0.5 course.
back to top

SE 410a/b, Wireless LANs and WANs
Description: This course concentrates on advanced aspects of switching and routing of complex, diverse LAN, MAN and WAN networks, including the design and provisioning of global intranets. Included is a detailed examination of remote access, including various wireless protocols.
Prerequisite(s): SE 312a/b, SE 314a/b
3 lecture hours, 2 laboratory hours, 0.5 course.
back to top

SE 411a/b, Internet Engineering
Description: Technologies, protocols and architectures of the Internet. Engineering and business implications of each protocol and their effect on end-user application design will be stressed. The course will contain several case studies from industry.
Antirequisite(s): Computer Science 457a/b
Prerequisite(s): SE 312a/b or Computer Science 357a/b
3 lecture hours, 2 laboratory hours, 0.5 course.
back to top

SE 450, Software Engineering Design II
Description: Design and implementation of a large software engineering project. Design, coding, testing and implementation are carried out by individual students or project groups under the supervision of a faculty member. Progress reports and a final engineering report are prepared; each student must deliver a public lecture on the work performed.
Antirequisite(s): CBE 415, CEE 440, ECE 416, MME 419, MME 499.
Prerequisite(s): Completion of the third year of the Software Engineering Program
Corequisite(s): SE 452a/b, SE 453a/b.
6 laboratory hours, both terms, 1.0 course.
back to top

SE 452a/b, Software Requirements, Testing and Risk Assessment
Description: Engineering requirements (including life cycle, process, elicitation, analysis, validation and management), inspections (life cycle, reviews, walkthroughs, metrics) and testing (techniques, classes of testing, metrics).
Antirequisite(s): CS 473a/b
Prerequisite(s): SE 351a/b
3 lecture hours, 0.5 course.
back to top

SE 453a/b, Software Quality, Reliability and Maintenance
Description: Software quality issues, defect detection and prevention, reliability engineering, examination of maintenance issues, configuration management. Software evolution issues, planning for evolution.
Antirequisite(s): CS 470y, CS 472a/b.
Prerequisite(s): SE 452a/b.
3 lecture hours, 0.5 course.
back to top

SE 454a/b, Software Law and Social Responsibility
Description: Legal, social and ethical issues that Software Engineers must face when building large systems. Legislation relating to software (existing and proposed) Y2K scenarios, protection of privacy rights, public well-being, computers and law enforcement, and the role of the Software Engineer as governed by the Professional Engineer's Act.
Antirequisite(s): Engineering Science 498F/G
Prerequisite(s): Completion of third year in the Software Engineering Program
3 lecture hours, 0.5 course.
back to top

SE 455a/b, Performance Analysis of Computer Systems
Description: Queuing and sampling theory, design of experiments, basic measurement theory, hardware tools, network tools, special problems in software measurement.
Prerequisite(s): Completion of third year of the Software Engineering program.
3 lecture hours, 0.5 course.
back to top

SE 456a/b, Software for Communications Systems
Description: Fundamental communications concepts; information, entropy, channel capacity, codes, data compression, modulation/demodulation of signals, use of signal processing, special problems of wireless transmission, characteristics of embedded communications software.
Prerequisite(s): SE 314a/b, SE 352a/b, ECE 331a/b.
3 lecture hours, 1 laboratory hour, 0.5 course.
back to top

SE 466a/b, Distributed and Parallel Systems
Description: Issues arising in distributed and parallel systems and applications; related architectures such as connection machines, networked machines, shared memory computers.
Antirequisite(s): CS 402a/b.
Prerequisite(s): SE 313a/b, ECE 375a/b.
3 lecture hours, 1 laboratory hour, 0.5 course.
back to top

SE 470a/b, Selected Topics in Software Engineering I
Description: The course deals with topics of current interest in Software Engineering. Topics and course outline will be available at the time of registration.
Prerequisite(s): Completion of third year of the Software Engineering program or permission of the Department
3 lecture hours, 1 lab hour, 0.5 course.
back to top

SE 471a/b, Selected Topics in Software Engineering II
Description: The course deals with topics of current interest in Software Engineering. Topics and course outline will be available at the time of registration.
Prerequisite(s): Completion of third year of the Software Engineering program or permission of the Department
3 lecture hours, 1 lab hour, 0.5 course.
back to top

SE 472a/b, Information Security
Description: This course provides an introduction to the topic of security in the context of computer networks. The goals are to provide students with a foundation allowing them to identify, analyze, and solve network-related security problems in information systems with the emphasis on the engineering aspects of information security.
Prerequisite(s): SE 312a/b or Computer Science 357a/b, SE 313a/b or Computer Science 305a/b
3 lecture hours, 2 tutorial/laboratory hours, 0.5 course.
back to top
Academic Calendar 2007 (old)» UNDERGRADUATE COURSE INFORMATION» Software Engineering