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 |
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 |
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.