Senate Agenda, May 21, 1999 - EXHIBIT III, Appendix 2
Proposed Curriculum for Software Engineering - 1999-2005
YEAR TWO (transition year 1998-1999)
AM276 - Applied Math for Electricals II
CS027a - Computer Science Fundamentals II
ES211F - Engineering Communications
ES205a - Electric Circuits I
ES230y - Electrical Laboratory
ES231a - Electronics I
AM276 - Applied Math for Electricals II
ES201b - (SE201b) - Systems Programming
ES215b - (SE202b) - Algorithms & Data Systems
ES217b - (SE203b) - Object Oriented Design
ES230y - Electrical Laboratory
ES235b - Electronics II
YEAR TWO (effective 1999-2000)
AM276 - Applied Math for Electricals II
ECE238a - Introduction to Electrical Engineering
SE251a - Discrete Structures for SWE
SE250y - Software Engineering Laboratory
ES211F - Engineering Communications
CS027a - Computer Science Fundamentals II
AM276 - Applied Math for Electricals II
ECE239b - Electrical and Electronic Circuits
SS241b - Applied Statistics for Engineers
SE250y - Software Engineering Laboratory
CS210b - Data Structures and Algorithms
SE203b - Object Oriented Design
YEAR THREE (transition year 1999-2000)
SE 251a - Discrete Structures for SWE
ECE331a - Signal Processing I
ECE339a - Digital Logic Systems
CS357a - Computer Networks I
SE350y - Software Engineering Design I
SE351a - Software Engineering I
CS340b - Analysis of Algorithms
SE353b - Human Computer Interaction
SE352b - Software Engineering Design Tools
CS305b - Operating Systems
SE350y - Software Engineering Design I
ECE375b - Microprocessors and Microcomputers
YEAR FOUR (transition year 2000-2001)
BUS299 - Business Organization
SE450 - Software Engineering Design II
SE452a - Software Engineering II
CS457a - Computer Networks II
CS331a - Foundations of Computer Science
Non Technical Elective
BUS299 - Business Organization
SE450 - Software Engineering Design II
SE453b - Software Engineering III
SE454b - Software Law and Social Responsibility
SS241b - Applied Statistics for Engineers
Technical Elective
YEAR THREE (effective 2000-2001)
CS331a - Foundations of Computer Science
ECE331a - Signal Processing I
ECE339a - Digital Logic Systems
CS357a - Computer Networks I
SE350y - Software Engineering Design I
SE351a - Software Engineering I
CS340b - Analysis of Algorithms
SE353b - Human Computer Interaction
SE352b - Software Engineering Design Tools
CS305b - Operating Systems
SE350y - Software Engineering Design I
ECE375b - Microprocessors and microcomputers
YEAR FOUR (effective 2001-2002)
BUS299 - Business Organization
SE450 - Software Engineering Design II
SE452a - Software Engineering II
CS457a - Computer Networks II
Technical Elective
Non Technical Elective
BUS299 - Business Organization
SE450 - Software Engineering Design II
SE453b - Software Engineering III
SE454b - Software Law and Social Responsibility
Technical Elective
Technical Elective
TECHNICAL ELECTIVES FOR THE SOFTWARE ENGINEERING PROGRAM
SE 455a/b - Performance Analysis of Computer Systems
SE 456a/b - Software for Communication Systems
SE 466a/b - Distributed Parallel Systems
CS 346a/b - Artificial Intelligence I
CS 388 a/b - Computer Graphics I
CS 402a/b - Distributed and Parallel Systems
CS 403a/b - MultiMedia Methodology
CS 442a/b - Artificial Intelligence II
CS488 a/b - Computer Graphics II
ECE 470a/b - Microcomputer Engineering
ECE 480a/b - VLSI and Microelectronics
ECE 489a/b - Computer Architectures
ECE 495a/b - Telecommunications Engineering
The following new courses are to be introduced and their course descriptions added to the Electrical and Computer Engineering courses on page 185 of the 1999 Academic Calendar.
ECE 238a/b Introduction to Electrical Engineering
DC circuit analysis, fundamentals of DC circuit analysis, Ohm's Law, KCL, KVL, Thevenin and
Norton Equivalent circuits, maximum power transfer; linear analog circuits, diodes, transistors,
operational amplifiers, biasing, gain - frequency response.
Antirequisite: ECE 205a/b, ECE 231a/b
Prerequisites: AM 026, Physics 026
Corequisites: AM 276
3 lecture hours, 1 tutorial hour, 1.5 lab hours, half course
Restricted to students enrolled in the Software Engineering Program.
ECE 239a/b Electrical and Electronic Circuits
Continuation of ECE238a/b: AC circuit analysis, complex numbers, AC circuit analysis
techniques, maximum power transfer; small signal amplifiers, differential amplifiers, op-amps,
frequency response, feedback, power amplifiers, Bode plots.
Antirequisite: ECE 233a/b, ECE 235a/b
Prerequisites: AM 026, ECE 238a/b, Physics 026
Corequisite: AM 276
3 lecture hours, 1 tutorial hour, 1.5 lab hours, half course
Restricted to students enrolled in the Software Engineering Program.
The following new courses are to be introduced and their course descriptions added to the Software Engineering courses on page 246 of the 1999 Academic Calendar.
(It is envisaged that many of the third and fourth year software engineering courses will be cross-listed between the Departments of Electrical and Computer Engineering and Computer Science, taught according to faculty availability.)
SE250y Software Engineering Laboratory
Software laboratory introducing experiments with basic software engineering tools, including:
Von Neumann computer architecture, C programming, regular expressions, UNIX utilities, UNIX
system programming. Software Engineering Life Cycle, relevant UNIX supporting tools. These
tools will be used in engineering a large, cooperative programming project (second term).
Prerequisites: CS 026a/b
Corequisites: SE 203a/b, CS027a/b, CS 210a/b
1 lecture hour, 2 laboratory hours, both terms, half course
SE251a/b Discrete Structures for Software Engineers (Offered by the Department of Mathematics)
Logic, sets and functions, algorithms, mathematical reasoning, counting, relations, graphs, trees,
Boolean Algebra, computation. modeling.
Antirequisites: Math 222a/b
Prerequisites: CS 026a/b
Corequisites: CS 027a/b
3 lecture hours, half course
SE350y Software Engineering Design I
Design and implementation of a large group project illustrating the design concepts being taught
and promoting team interaction in a professional setting.
Prerequisites: SE 203a/b or former ES 217a/b, SE 250y
Corequisites: SE 351a/b, SE 352a/b, SE 353a/b, CS 305a/b
1 lecture hours, 2 tutorial/laboratory hours, both terms, half course
SE351a/b Software Engineering I
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.
Antirequisites: CS 377a/b
Prerequisites: SE 203a/b or former ES 217a/b, SE 250y or ES 230y, SE 251a/b or former ES
201a/b, CS 210a/b or former CS 201
Corequisites: SE 350y
3 lecture hours, one tutorial hour, half course
SE352a/b Software Engineering Design Tools
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.
Antirequisites: CS 307a/b, CS 319a/b, CS 342a/b
Prerequisites: SE 351a/b
Corequisites: SE 350y, CS 305a/b, CS 340a/b
3 lecture hours, one tutorial hour, half course
SE353a/b Human-Computer Interaction
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.
Antirequisites: CS 474a/b
Prerequisites: SE 351a/b
Corequisites: CS 305a.
3 lecture hours, one tutorial hour, half course
SE450 Software Engineering Design II
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.
Antirequisites: CBE 415, CEE 440, CEE 441, ECE 416, MME 419
Prerequisites: Completion of Third Year in the Software Engineering Program
Corequisites: SE 452a/b, SE 453a/b
6 laboratory hours, both terms
SE452a/b Software Engineering II
Engineering requirements (including life cycle, process, elicitation, analysis, validation and
management), inspections (life cycle, reviews, walkthroughs, metrics) and testing (techniques,
classes of testing, metrics).
Antirequisites: CS 473a/b
Prerequisites: SE 351a/b
3 lecture hours, half course
SE453a/b Software Engineering III
Software quality issues, defect detection and prevention, reliability engineering, examination of
maintenance issues, configuration management. Software evolution issues, planning for evolution.
Antirequisites: CS 470y, CS 472a/b
Prerequisites: SE 452a/b
3 lecture hours, half course
SE454a/b Software Law and Social Responsibility
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.
Antirequisites: ECE 498a/b
Prerequisites: Completion of Third Year in the Software Engineering Program
3 lecture hours, half course
SE455a/b Performance Analysis of Computer Systems
Queuing and sampling theory, design of experiments, basic measurement theory, hardware tools,
network tools, special problems in software measurement
Prerequisites: Completion of Third Year in the Software Engineering Program or Computer
Science Program
3 lecture hours, half course
SE456a/b Software for Communications Systems
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.
Prerequisites: ECE 331a/b, SE 352a/b, CS 357a/b
3 lecture hours, 1 laboratory hour, half course
SE466a/b Distributed and Parallel Systems
Issues arising in distributed and parallel systems and applications; related architectures such as
connection machines, networked machines, shared memory computers.
Antirequisites: CS 402a/b
Prerequisites: ECE 375a/b or CS 350a/b, CS 305a/b
3 lecture hours, 1 laboratory hour, half course