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