Program-Level Indicators

CEAB Graduate Attributes (GAs)

GA abbreviations indicated in brackets.

“The institution must demonstrate that the graduates of a program possess the attributes under the following headings.

Knowledge base (KB):

Demonstrated competence in university level mathematics, natural sciences, engineering fundamentals, and specialized engineering knowledge appropriate to the program.

Problem analysis (PA):

An ability to use appropriate knowledge and skills to identify, formulate, analyze, and solve complex engineering problems in order to reach substantiated conclusions.

Investigation (Inv.):

An ability to conduct investigations of complex problems by methods that include appropriate experiments, analysis and interpretation of data, and synthesis of information in order to reach valid conclusions.

Design (Des.):

An ability to design solutions for complex, open-ended engineering problems and to design systems, components or processes that meet specified needs with appropriate attention to health and safety risks, applicable standards, and economic, environmental, cultural and societal considerations.

Use of engineering tools (Tools):

An ability to create, select, apply, adapt, and extend appropriate techniques, resources, and modern engineering tools to a range of engineering activities, from simple to complex, with an understanding of the associated limitations.

Professionalism (Prof.):

An understanding of the roles and responsibilities of the professional engineer in society, especially the primary role of protection of the public and the public interest.

Communication skills (Comm.):

An ability to communicate complex engineering concepts within the profession and with society at large.  Such ability includes reading, writing, speaking and listening, and the ability to comprehend and write effective reports and design documentation, and to give and effectively respond to clear instructions.

Individual and team work (Team):

An ability to work effectively as a member and leader in teams, preferably in a multi-disciplinary setting.

Impact of engineering on society and the environment (Impacts):

An ability to analyze social and environmental aspects of engineering activities. Such ability includes an understanding of the interactions that engineering has with the economic, social, health, safety, legal, and cultural aspects of society, the uncertainties in the prediction of such interactions; and the concepts of sustainable design and development and environmental stewardship.

Ethics and equity (Ethics):

An ability to apply professional ethics, accountability, and equity.

Economics and project management (Econ.):

An ability to appropriately incorporate economics and business practices including project, risk, and change management into the practice of engineering and to understand their limitations.

Life-long learning (LL):

An ability to identify and to address their own educational needs in a changing world in ways sufficient to maintain their competence and to allow them to contribute to the advancement of knowledge.

Program-Level Indicators (PIs)

The following PIs are harmonized across the Faculty of Engineering (FoE). Differentiation occurs in the details highlighted in the footnotes and the appendices. These PIs were voted into effect for CE and EE by the USC on Nov. 9th, 2017. Note that SE has defined their own set of 19 GAs and from which they have defined a set of corresponding PIs. This approach allows them to meet both CEAB and CSAC accreditation criteria.

GA#

Attribute

Attribute Definition

PI

Program-Level Indicator
("CE/EE/SE graduates from UWaterloo should be able to…")

1

Knowledge Base[1]

Demonstrated competence in university level mathematics, natural sciences, engineering fundamentals, and specialized engineering knowledge appropriate to the program.

1a

Demonstrate understanding of concepts in mathematics

1b

Demonstrate understanding of concepts in natural science

1c

Demonstrate understanding of engineering fundamentals

1d

Demonstrate understanding of specialized engineering knowledge

2

Problem analysis

An ability to use appropriate knowledge and skills to identify, formulate, analyze, and solve complex engineering problems in order to reach substantiated conclusions.

2a

Formulate a problem statement

2b

Develop models to solve engineering problems including identifying approximations, assumptions, and constraints

2c

Critically evaluate solutions of engineering problems

3

Investigation

An ability to conduct investigations of complex problems by methods that include appropriate experiments, analysis and interpretation of data, and synthesis of information in order to reach valid conclusions.

3a

Design experiments to investigate complex engineering problems[2]

3b

Gather information from relevant sources[3] to address complex engineering problems

3c

Synthesize information from multiple sources to reach valid conclusions

4

Design

An ability to design solutions for complex, open-ended engineering problems and to design systems, components or processes that meet specified needs with appropriate attention to health and safety risks, applicable standards, and economic, environmental, cultural and societal considerations.

4a

Define design requirements and specifications for complex, open-ended engineering problems[4]

4b

Generate and refine potential solutions to complex, open-ended design problems[5]

4c

Critically evaluate and compare design choices[6]

5

Use of Engineering Tools

An ability to create, select, apply, adapt, and extend appropriate techniques, resources, and modern engineering tools to a range of engineering activities, from simple to complex, with an understanding of the associated limitations.

5a

Select appropriate engineering tools4, considering their limitations[7]

5b

Create and/or modify appropriate engineering tools, identifying their limitations[8]

5c

Use engineering tools appropriately[9]

6

Individual and team work

An ability to work effectively as a member and leader in teams, preferably in a multi-disciplinary setting.

6a

Contribute as an active team member or leader to complete individual tasks

6b

Collaborate with others to complete tasks effectively as a team

7

Communication skills

An ability to communicate complex engineering concepts within the profession and with society at large.  Such ability includes reading, writing, speaking and listening, and the ability to comprehend and write effective reports and design documentation, and to give and effectively respond to clear instructions.

7a

Generate appropriate documentation to communicate within the profession and to society at large

7b

Orally present information within the profession and to society at large

7c

Interpret information, including instructions

8

Professionalism

An understanding of the roles and responsibilities of the professional engineer in society, especially the primary role of protection of the public and the public interest.

8a

Articulate the roles and responsibilities of the professional engineer in society with reference to the protection of the public and its interest

8b

Describe the importance of codes, standards, best practices, laws, and regulations within engineering

9

Impact of engineering

An ability to analyze social and environmental aspects of engineering activities. Such ability includes an understanding of the interactions that engineering has with the economic, social, health, safety, legal, and cultural aspects of society, the uncertainties in the prediction of such interactions; and the concepts of sustainable design and development and environmental stewardship.

9a

Identify the relevance of and uncertainty associated with the different aspects (social, cultural, economic, health, safety, legal, environmental) of an engineering project

9b

Analyze the social, health, safety, and environmental aspects of an engineering project, incorporating sustainability considerations in making decisions

10

Ethics and equity

An ability to apply professional ethics, accountability, and equity.

10a

Identify ethical and unethical behaviour in professional situations

10b

Identify how an engineer is accountable to multiple stakeholders in engineering practice

10c

Identify equitable and inequitable situations or behaviours

11

Economics and project management

An ability to appropriately incorporate economics and business practices including project, risk, and change management into the practice of engineering and to understand their limitations.

11a

Apply project management techniques in engineering projects, with attention to risk, and change

11b

Perform economic analyses of engineering projects with attention to uncertainty and limitations

12

Lifelong learning

An ability to identify and to address their own educational needs in a changing world in ways sufficient to maintain their competence and to allow them to contribute to the advancement of knowledge.

12a

Identify gaps in their knowledge, skills and abilities

12b

Obtain and evaluate information or training from appropriate sources

12c

Reflect on the use of information or training obtained

Appendix A – Program-Level Indicator Details

Computer and Electrical Engineering

The math (1a), natural science (1b), and engineering fundamentals (1c) necessary for the CE, EE, and SE programs are specified in Table 1. Specialized engineering knowledge (1d) is specified in Table 2. Examples of design problems (4c) are specified in Table 3. Tools (5c) are included in Table 4. The SE-specific PIs contain further information for the SE program.

Table 1: Topics corresponding to math (1a), natural science (1b), and engineering fundamentals (1c)

PI

Topic

Key concept, algorithm, or subtopic

1a

Calculus and related

Functions, inverse functions, limits, continuity, derivatives,  max-min problems, Mean Value Theorem, antiderivatives, the Riemann definite integral, Fundamental Theorems, methods of integration, approximation, applications, improper integrals

Approximation methods (interpolation, Taylor polynomials, Newton's method), Landau order symbol, infinite series, Taylor series, geometric series, convergence test, power series, functions of several variables, partial derivatives, linear approximation and differential, gradient and directional derivative, optimization and Lagrange multipliers, vector-valued functions, parametric representation of curves, tangent and normal vectors, line integrals, polar, cylindrical, other coordinate systems, double and triple integrals

(a) Fourier series, ordinary differential equations, Laplace transform, intro to partial differential equations

(b) Related numerical methods: solving initial-value problems, the fixed-point theorem and convergence, numeric differentiation, numeric integration, Heun's method, 4th-order Runge-Kutta and the Dormand-Prince method, Systems of IVPs and higher-order IVPs, Boundary-value problems and divided differences

(a) Triple integrals, cylindrical and spherical polar coordinates, divergence and curl, surface integrals, Green's, Gauss' and Stokes' theorems, complex functions, analytic functions, contour integrals, Cauchy's integral formula, Laurent series, residues

(b) Related numerical methods:  finite difference methods for solving boundary value problems, numerical solutions to the heat-conduction/diffusion equation, Crank-Nicolson method for solving the heat-conduction/diffusion equation and insulated boundaries, numerically solving the wave equation, Laplace's equation in two dimensions, heat-conduction/diffusion and wave equations in two and three dimensions

Complex variables

Basic complex number algebra, polar form, Euler’s formula, DeMoivre’s formula, sines and cosines of complex numbers

Discrete math

propositional logic, predicate logic, set theory, finite automata, temporal logic, combinatorics, graph theory, relations

Linear algebra

(a) Systems of linear equations and their representation with matrices and vectors; their generalization to abstract vector spaces, determinant, characteristic polynomial, eigenvalues and eigenvectors, rank, and singular values

(b) Related numerical methods (Interpolating polynomials, Newton Interpolation and Horner's rule, Iterative methods for solving systems of linear equations, Finding the maximum eigenvalue, PLU Decomposition, Least squares,  Root finding, Newton's method in n dimensions)

Probability, uncertainty, random processes

Ensemble model of randomness, conditional probability, independence, Bayes' theorem, random variables, probability distribution functions, expected values, collections of random variables, joint and marginal probability distributions, correlation, confidence intervals,  random processes, stationarity, power spectral density

Statistics

Measurements, basic statistics (mean, median, mode, standard deviation, variance), error propagation, statistical packages, need for ethics in animal and human studies, data collection

1b

Dynamics

Forces in nature, Newton's, dynamics, circular motion, work, energy, conservation of energy, linear momentum, linear impulse, rotational dynamics, oscillations, simple harmonic motion, wave motion, travelling waves, standing waves

EM fundamentals

Electrostatics; electric field, flux, Gauss's Law, potential and potential energy, capacitors, dielectric, capacitance, electric energy storage, charging/discharging, resistors, charge flow, current, resistance, KVL, KCL, LR/LC/RC circuits, magnetostatics, magnetic force, magnetic fields, Ampere's Law, inductors, magnetic flux, inductance, magnetic materials, magnetic energy storage, time-Varying fields, Faraday's Law, mutual inductance, simple motors and generators, wave propagation, electrostatic and magnetostatic boundary conditions

Thermal processes

Thermal physics, temperature, thermal energy, specific heat, ideal gas heat engines, refrigerators

1c

Semiconductor physics

Wave-particle duality, basic quantum mechanics, Schrodinger equation, energy bands in crystals, basic properties of semiconductors, intrinsic and doped semiconductor, electrons and holes, metals and alloys, superconductivity, phonons and heat capacity, dielectric materials, optical properties, dielectric properties and magnetic properties of materials

Signals and systems

Discrete, continuous and periodic signals, time-domain and frequency-domain analysis of continuous-time and discrete-time linear systems, periodic signals and Fourier series, non-periodic signals, Fourier transforms, Laplace transform

Table 2: Topics corresponding to specialized engineering knowledge (1d)

Subfield

Topic

Key concepts

Circuits

(a) Linear circuits

Analysis of linear circuits, voltage, current, resistance, capacitance, inductance, voltage source, current source, dependent sources, Ohm's Law, Kirchoff's Law, nodal analysis, mesh analysis, circuit transformations, operational amplifier circuits, time response, sinusoidal steady-state response

(b) Electronics

Electronic signal processing; operational amplifier circuits, diode devices and circuits, MOS and bipolar amplifier biasing networks, load-line analysis, diode, MOS and bipolar small-signal equivalent circuits, single-stage small-signal MOS and bipolar amplifiers, transistor switches, electronic circuits and their limitations, including differential pairs, biasing, the cascode configuration and active loads, differential and multistage amplifiers, feedback, stability and compensation, CMOS logic circuits, frequency response

Communications

Communications

Spectral density of deterministic and random analog signals, thermal noise, white noise model, amplitude and angle modulation, generation and detection schemes, effects of noise, techniques for handling digital signals including sampling and reconstruction, quantization, waveform coding, and time-division multiplexing, overview of digital communications

Controls

Analog controls

Control systems, closed-loop feedback systems (handling uncertainty, stabilization, disturbance rejection), system mathematical models, block diagrams, signal flow graphs, control system design, stability, Routh-Hurwitz stability test, frequency response analysis techniques (Nyquist stability test), root-locus analysis, elementary lead-lag compensation

Devices

Devices

Band theory and doped semiconductors in thermal equilibrium, charge neutrality, mass action law, recombination and transport mechanisms, Boltzmann relations, p-n junction diodes, charge storage effects, MOSFETs (threshold voltage, DC characteristics, small signal models), bipolar junction transistors (terminal characteristics and equivalent circuits)

Digital hardware

(a) Digital circuits

Number systems, Boolean arithmetic, Boolean algebra, simplification of Boolean functions, combinational circuits, sequential circuits; hardware description languages, timing analysis, implementation technologies

(b) Digital computers

Computer organization, memory units, control units, I/O operations, assembly language programming, translation and loading, arithmetic logic units, microprocessor system architecture, bus systems, memory systems, peripherals, parallel interfaces, serial interfaces, analog interfaces, data transfer, synchronization, arbitration, error detection/correction, testing and debugging

(c) Digital systems

Design and modelling of digital hardware systems using a hardware description language, implementation technologies, performance analysis and optimization, functional verification, timing analysis, power analysis and optimization, faults and testability, reliability and fault tolerance

Power

Power systems and components

Basic modelling and analysis techniques in electricity generation, transmission and distribution, including basic concepts in nonlinear system analysis. Functional descriptions and modelling of generators, transformers, transmission lines, motors and other loads. Power flow analysis techniques, from the basic equations to their use in power networks. Fault analysis and basic protection concepts.

RF & photonics

EM fields and waves

Maxwell's equations; plane waves; time-harmonic fields; waves at planar boundaries; boundary conditions; reflection and transmission; transmission lines; electric fields in matter; magnetic fields in matter.

Software

(a) Procedural programming in the small

Software design process in a high-level programming environment. Programming fundamentals, language syntax, simple data types, control constructs, functions, parameter passing, recursion, classes, arrays and lists, list traversals, introduction to searching and sorting algorithms, basic object-oriented design, polymorphism and inheritance, simple testing and debugging strategies, pointers and references, basic memory management.  Introduction to embedded systems, review of engineering design and analysis principles, software development life cycle, integrated development environments, use of software requirements and specifications, unified modelling language and documentation, event handling, simulation, project management, project scheduling, testing, verification, and maintenance considerations.

(b) Algorithms and data structures

Data structures, abstract data types, recursive algorithms, algorithm analysis, NP-completeness, sorting and searching, problem-solving strategies.

(c) Operating systems and systems programming

Concepts of operating systems and systems programming; utility programs, subsystems, multiple-program systems; processes, interprocess communication, synchronization, and concurrency; memory management, segmentation, and paging; loading and linking, libraries; resource allocation, scheduling, performance evaluation; I/O systems, storage devices, file systems; protection, security, and privacy.

(d) Compilers

Programming paradigms, compilation, interpretation, virtual machines. Lexical analysis, regular expressions and finite automata. Parsing, context-free grammars and push-down automata. Semantic analysis, scope and name analysis, type checking. Intermediate representations. Control flow. Data types and storage management. Data flow.  Code generation.  Optimization.

(e) Database systems

Introduction, data models, file systems, database system architectures, query languages, integrity and security, database design.

(f) Networks

Concepts, protocols, and fundamental design principles that have contributed to the success of the Internet. Topics include a history of the Internet, transmission media and technologies, switching and multiplexing, protocols and layering, LAN (wired and wireless), congestion/flow/error control, routing, addressing, internetworking (Internet) including TCP.

Table 3: Examples of Design problems for the Error! Reference source not found. program (4c)

Design category

Subcategory

Examples

Hardware

2.1.3        to construct (including troubleshooting) dc and ac analog circuits, including circuits involving RCL components, op-amps, other transistor circuits, motors, transformers, and power electronics

Power supplies, function generators, oscilloscopes, multimeters, and computer data acquisition systems

2.1.4        to construct (including troubleshooting) digital circuits

Spectrum analyzers, logic analyzers, semiconductor parameter analyzers, network analyzers

2.1.5        to interface (including troubleshooting) digital and analog circuits

Software

2.2.4        to program at a high level, including the use of standard libraries and the ability to use previously unknown libraries

Circuit simulator, VHDL/Verilog tools

2.2.5        to program at a low level, including data handling & memory operations, arithmetic, control flow, interrupts, external I/O

Maple, Mathematica

2.2.7        to use standard operating system tools

Matlab, R

2.2.8        to use standard database engines

Text editors, build systems, source code controls, debugging and testing tools, integrated development environments, and cross-platform development tools

Table 4: Tools for the Error! Reference source not found. program (5c)

Tool category

Subcategory

Examples

Hardware-oriented tools

Standard instrumentation for analog and digital measurements

Power supplies, function generators, oscilloscopes, multimeters, and computer data acquisition systems

Specialized instrumentation for analog and digital measurements

Spectrum analyzers, logic analyzers, semiconductor parameter analyzers, network analyzers

Software-oriented tools

Standard simulation and design tools in various electrical and computer engineering domains

Circuit simulator, VHDL/Verilog tools

General-purpose symbolically-focused software

Maple, Mathematica

General-purpose numerically-focused software

Matlab, R

Standard programming tools and libraries

Text editors, build systems, source code controls, debugging and testing tools, integrated development environments, and cross-platform development tools

Software Engineering

SE has defined their own set of 19 GAs from which they have defined a set of corresponding PIs. This approach allows them to meet both CEAB and CSAC accreditation criteria. These are then mapped to the ECE PIs to harmonize reporting for accreditation.

SE GA#

SE Attribute

SE PI

Mapped PI

Program-Level Indicators
("SE graduates from UWaterloo should be able to…")

1

Knowledge Base[10]

1.1

1d

Analyze non-trivial data organization and manipulation via: a) data structures, b) algorithms, c) time and space complexity analysis, d) limits of complexity.

1.2

1d

Understand software systems: a) operating systems, b) software security, c) networking, d) distributed systems, e) database design and use, f) human factors.

1.3

1d

Apply theory and practice of software programs: a) procedural, object-oriented and functional coding, b) translation, c) machine execution, d) exception control flow, e) concurrent control flow.

1.4

1a

Apply discrete mathematics to software development: a) set theory, b) combinatorics, c) graphs and trees, d) discrete probability, e) prepositional and predicate logic, f) direct, contradiction, and inductive proofs, g) boolean logic, h) grammars, i)

1.5

1c

Understand digital circuits and systems: a) boolean circuits, b) integer and real number representation, c) instruction-set processor design, d) computer organization.

1.6

1b

Remember rudiments of related disciplines: a) natural sciences, b) electronics and linear circuits, c) control systems.

1.7

1a

Understand relevant fundamental continuous mathematics: a) functions, b) series, c) approximation methods, d) limits, e) differentiation, e) integration, f) statistical analysis.

2

Investigation

2.1

3a

Conduct (Create) investigations of complex computing problems by methods that include: (a) problem identification, conceptualization, and abstraction; (b) background research; (c) appropriate experiments; (d) data

2.2

3b

Analyze succinct, non-obvious task specifications to interpret goals and identify relevant research materials.

2.3

3c

Apply independent research to complement course materials.

3

Problem analysis

3.1

2a

Determine (Analyze) the problem to be solved.

3.2

4a

Elicit (Create) or invent behavioural and non-behavioural requirements of complex problems.

3.3

4a

Identify and eliminate by negotiation (Evaluate) conflicts among requirements.

3.4

4a

Rank (Evaluate) requirements by priority.

3.5

2c

Evaluate risks, i.e., identify requirements for detecting, avoiding, and mitigating hazards.

3.6

4b

Determine (Create) appropriate algorithms and data structures to solve the problem at hand according to the elicited or invented requirements.

3.7

4c

Evaluate correctness, consistency, completeness, reliability, and availability of requirements.

3.8

11b

Evaluate project duration and costs from requirements.

3.9

2c

Create test cases and test harnesses from requirements.

3.10

4b

Analyze and create user interfaces that adhere to sound human-computer interface principles.

4

Specification

4.1

7a

Document (Apply) behavioural and non-behavioural requirements using formal and informal notations, including natural language prose, to produce a requirements specification.

4.2

4c

Evaluate correctness, consistency, and completeness of requirements specifications.

4.3

11b

Evaluate project duration and costs from requirements specifications.

5

Design

5.1

4c

Define design requirements and specifications for complex, open-ended engineering problems[11]

5.2

4b

Generate and refine potential solutions to complex, open-ended design problems[12]

5.3

4b

Critically evaluate and compare design choices[13]

5.4

4b

Determine (Create) appropriate algorithms to solve problems.

5.5

4b

Create (Create) alternatives that explore the design space.

5.6

9a

Evaluate designs for compliance with behavioural and non-behavioural requirements such as for health, safety, economic, environmental, ethical, legal, and social issues by applying tactics for dealing with non-functional

5.7

4c

Select (Evaluate) from alternatives by evaluating multiple objectives and trade-off analysis.

5.8

4b

Create experimental and evolutionary prototypes.

6

Programming Technology

6.1

5c

Understand several programming languages.

6.2

5c

Understand several scripting languages.

6.3

5c

Understand several shell languages.

6.4

5c

Apply at least one programming language through at least one compiler.

6.5

5c

Apply at least one a) scripting language, b) shell language, c) HTML.

6.6

5c

Apply at least one editor.

6.7

5c

Apply at least one debugging tool.

7

Implementation

7.1

1c

Understand programming in general.

7.2

1d

Analyze code in many programming languages for understanding.

7.3

3c

Analyze a specification to determine what must be implemented.

7.4

4b

Create algorithms expressed in some programming language.

7.5

2c

Evaluate code in many programming languages and actual output to determine correspondence and track defects.

8

Verification and Validation

8.1

3a

Create test cases and test harnesses from requirements specifications.

8.2

2c

Evaluate the extent to which programs satisfy their specifications.

8.3

2b

Investigate (Create) program behaviours to generate working hypotheses about defects.

8.4

3c

Confirm (Evaluate) hypotheses about root causes of defects.

8.5

4b

Resolve (Create) defects.

8.6

3c

Confirm (Analyze) validity of resolutions of defects.

8.7

4c

Evaluate correctness, consistency, completeness, reliability, and availability of requirements.

8.8

4c

Evaluate correctness, consistency, completeness, reliability, and availability of designs.

8.9

4c

Evaluate correctness, consistency, completeness, reliability, and availability of code.

8.10

2c

Evaluate correctness, consistency, completeness, reliability, and availability of test cases.

8.11

1d

Understand a variety of test metrics, methods, and techniques.

8.12

5c

Apply state-of-the-art testing tools to complex systems.

9

Maintenance

9.1

5c

Apply common software maintenance processes and techniques.

9.2

2b

Analyze the current architecture of a legacy system.

9.3

5c

Report and correct (Analyze) defects in a system.

9.4

4b

Enhance (Create) functionality in a system.

10

Individual Work

10.1

6a

Know (Analyze) own productivity rates to be able to make accurate time estimates for own work.

10.2

6a

Manage (Apply) own time.

10.3

6a

Assume (Apply) responsibility for own work.

10.4

6a

Assimilate (Evaluate) constructive criticism.

10.5

7c

Actively listen (Evaluate) and seek expertise of others.

10.6

6b

Function (Evaluate) effectively as an individual in a team.

11

Teamwork

11.1

6b

Apply conflict resolution strategies.

11.2

7c

Actively listen (Evaluate) and seek expertise of others.

11.3

7b

Interact (Apply) with stakeholders.

11.4

7b

Interact (Apply) effectively with people in non-software disciplines.

12

Communication skills

12.1

7a

Apply grammar, spelling, and style appropriate to written technical communication.1

12.2

7b

Use (Apply) clear and logical organization in written or oral technical communication.

12.3

7a

Use (Apply) figures and tables effectively in written or oral technical communication.

12.4

7a

Use (Apply) rhetoric to inform and persuade in written or oral technical communication.

12.5

7b

Make (Create) effective oral technical presentations.

13

Economics

13.1

11b

Understand economics of software projects: a) time-value of money, b) technical debt, c) cost--benefit analysis, d) break-even analysis.

13.2

11b

Understand cost to fix defects as a function of development lifecycle stage.

13.3

11a

Understand when defects are introduced to systems under development.

13.4

11a

Understand Brooks's law of development team size.

13.5

11b

Understand cost-estimation techniques, function points and Cocomo to software development projects.

13.6

11b

Evaluate project duration and costs from requirements specification.

14

Project Management

14.1

11a

Apply management tools to software project schedules and deliverables.

14.2

11a

Apply configuration management tools to non-trivial software projects.

14.3

11b

Evaluate project duration and costs from requirements specification.

14.4

11a

Make decisions (Evaluate) under uncertainty, including project risks.

14.5

3b

Evaluate software reliability and availability.

14.6

-

Create effective business plans.

15

Tools

15.1

5a

Select (Apply) appropriate tools.

15.2

5b

Configure (Apply) and deploy tools.

15.3

3c

Analyze (Analyze) and interpret tool results for correctness and completeness.

15.4

5c

Apply configuration management tools for non-trivial software projects.

15.5

5c

Apply management tools to software project schedules and deliverables.

16

Professionalism

16.1

8a

Understand the role of professional licensing and regulation to protect the public good.

16.2

10c

Understand the relevance of diversity and equity in engineering practice.

16.3

8b

Remember professional societies relevant to software engineering.

16.4

8b

Remember software standards organizations.

16.5

8b

Understand intellectual property rights with regard to software, e.g., copyright, utility patents, design patents, trade marks, license agreements, trade secrets.

16.6

12b

Apply appropriate knowledge resources.

16.7

8b

Apply relevant software standards and best practices.

17

Impact of Engineering on Society and the Environment

17.1

8a

Remember the role of professional licensing and regulation to protect the public good.

17.2

8a

Understand environmentally sound computing practices.

17.3

9b

Evaluate cultural, economic, health, safety, and social implications of software.

17.4

8b

Understand privacy laws and their impact on software requirements and data collection.

17.5

8b

Understand software warranties and liabilities.

18

Ethics and Equity

18.1

10c

Understand the relevance of diversity and equity in engineering practice.

18.2

8b

Understand intellectual property rights with regard to software, e.g., copyright, utility patents, design patents, trademarks, license agreements, trade secrets.

18.3

8a

Apply PEO's Code of Ethics.

19

Life-Long Learning

19.1

8b

Remember professional and technical societies relevant to software engineering.

19.2

12b

Evaluate information for authority, currency, and objectivity.

19.3

12a

Evaluate knowledge gaps and learning needs.

19.4

12b

Find and apply (Apply) appropriate knowledge resources and best practice guidelines.

Appendix B – CSAC Graduate Attributes

The following is the default set of program-level objectives for all CSAC-accredited programs. Since these refer to what students should know and be able to do following graduation, they are referred to as Graduate Attributes. A graduate of a computer science or software engineering program must be able to

1. Demonstrate Knowledge:

Competently apply knowledge in a) software engineering, b) algorithms and data structures, c) systems software, d) computer elements and architectures, e) theoretical foundations of computing, f) discrete mathematics and g) probability and statistics.

2. Analyse and Solve Problems:

Use appropriate knowledge and skills, including background research and experimentation, to identify, investigate, abstract, conceptualize, analyse, and solve complex computing problems, in order to reach substantiated conclusions.

3. Design Software and Systems:

Design and evaluate solutions for complex open-ended computing problems, and design and evaluate systems, components, or processes that meet specified needs with appropriate consideration for public health and safety, as well as economic, cultural, societal, and environmental considerations.

4. Use Appropriate Resources:

Create, select, adapt and apply appropriate techniques, resources, and modern computing tools to complex computing activities, with an understanding of their strengths and limitations.

5. Work Individually and in a Team:

Function effectively as an individual and as a member or leader in diverse teams and in multi-disciplinary settings.

6. Communicate Effectively: 

Communicate with the computing community and with society at large about complex computing activities by being able to comprehend and write effective reports, design documentation, make effective presentations, and give and understand clear instructions.

7. Act Professionally: 

Act appropriately with respect to ethical, societal, environmental, health, safety, legal, and cultural issues within local and global contexts, and with regard to the consequential responsibilities relevant to professional computing practice.

8. Be Prepared for Life-Long Learning:

Learn new tools, computer languages, technologies, techniques, standards and practices, as well as be able to identify and address their own educational needs in a changing world in ways sufficient to maintain their competence and to allow them to contribute to the advancement of knowledge.

9. Demonstrate Breadth of Knowledge: 

Possess knowledge in areas other than computer science and mathematics so as to be able to communicate effectively with professionals in those fields.


[1] The math, natural science, engineering fundamentals, and specialized engineering knowledge necessary for the CE and EE programs are specified in Appendix A.

[2] Experimental design includes identifying factors that affect a system, and planning experiments to determine their relationships, see, e.g. https://www.itl.nist.gov/div898/handbook/pmd/section3/pmd3.htm.

[3] Such as experiments, field data, literature, and other sources.

[4] Including health and safety risks, applicable codes/standards, economic, environmental, cultural, and societal considerations as appropriate.

[5] The design process is iterative and may require going back and forth between any of the Design indicators.

[6] Examples of Design problems for CE and EE students are included in Appendix A.

[7] “Tools” is defined broadly, to include physical tools and to include software, hardware, techniques (e.g. factorial design, dimensional analysis), and/or resources (e.g. codes and standards) relevant and current to the discipline.

[8] Including configuration, operation, troubleshooting, and sanity checks, as appropriate.

[9] Examples of Tools for the CE and EE programs are included in Appendix A.

[10] The math, natural science, engineering fundamentals, and specialized engineering knowledge necessary for the SE program are specified in Appendix A.

[11] Including health and safety risks, applicable codes/standards, economic, environmental, cultural, and societal considerations as appropriate.

[12] The design process is iterative and may require going back and forth between any of the Design indicators.

[13] Examples of Design problems for SE students are included in Appendix A.