Session F4G -Computing Curricula: Computer Engineering : Session F4G - Computing Curricula: Computer Engineering Panel:
Pradip K. Srimani, Clemson University
David L. Soldan, Kansas State University
John Impagliazzo, Hoffstra University
Joseph L. A. Hughes, Georgia Inst. Of Technology
Victor P. Nelson, Auburn University IEEE Computer Society / ACM
Computing Curricula – Computer Engineering
Task Force Frontiers in Education, November 8, 2002
Presentation Outline : Presentation Outline 16:00 Pradip - Introductions and connection with CC2001 project (7 mins)
16:07 Dave - Importance of computer engineering and overview of report (9 mins)
16:16 John - Importance of professionalism and history (4 mins)
16:20 Joe - Breadth of topic areas in report (6 mins)
16:26 Vic - Focus on one area in detail (6 mins)
16:32 Questions (12 mins)
16:44 Our session ends
CC2001 Computer Engineering Committee : CC2001 Computer Engineering Committee Dave Soldan, Chair
Mitch Theys, Editor
Jim Aylor
Alan Clements
Gerald Engel
Joe Hughes
Ron Hoelzeman
Bob Klenke
Andrew McGettrick
Vic Nelson
Bob Sloan
Pradip Srimani
Murali Varanasi
CC2001 Computer Engineering : CC2001 Computer Engineering CpE vs. EE andamp; CS
Charge of the CpE Task Force
Define characteristics of CpE graduates
Define the CpE body of knowledge
Define the CpE core requirements
Identify sample implementations
What is Computer Engineering ? : What is Computer Engineering ?
What is Computer Engineering ? : What is Computer Engineering ? Computer engineering embodies the science and the technology of design, construction, implementation and maintenance of the hardware and the software components of modern computing systems and computer-controlled equipment. Computer engineers are solidly grounded in the theories and principles of computing, mathematics and engineering, and apply these theoretical principles to design hardware, software, networks, and computerized equipment and instruments to solve technical problems in diverse application domains.
Background: CC2001 : Background: CC2001 Computing Curricula 2001
Joint effort of IEEE – CS and ACM
Started in 1998
Revise and update 1991 model curricula
Address developments of past decade and endure through the next decade
Separate volumes for Computer Science, Computer Engineering, Software Engineering, Information Systems
Computer Science Volume completed in Dec. 2001 http://www.computer.org/education/cc2001/
Slide8 :
Background: CC2001 (2) : Background: CC2001 (2) Computer Engineering Task Force
Established 2001
17 members currently
Representation of diverse interests/institutions
Curricular Guidelines
Science andamp; math, engineering core
Intersections with EE and CS
Emphasize design and creativity
Laboratory experience
Industry-standard modern tools
Professionalism (1) : Professionalism (1) Computer engineers design and implement computing systems that affect the public
Computer engineers should hold a special sense of responsibility
Almost every aspect of their work can have a public consequence
Professionalism (2) : Professionalism (2) Consequences of professional practice should focus on the public good
Computer engineers must consider the professional, societal, and ethical context in which they practice
Practice and Conduct : Practice and Conduct Do the right thing
Foster best practices
Understand ethical practices
Understand legal issues
Codes of Ethics and Practices (1) : Codes of Ethics and Practices (1) National Society of Professional Engineers - NSPE Code of Ethics for Engineers
Institute of Electrical and Electronic Engineers (IEEE): IEEE Code of Ethics
Association for Computing Machinery (ACM): ACM Code of Ethics and Professional Conduct
Codes of Ethics and Practices (2) : Codes of Ethics and Practices (2) ACM/IEEE-Computer Society: Software Engineering Code of Ethics and Professional Practice
International Federation for Information Processing (IFIP): Harmonization of Professional Standards and also Ethics of Computing
Association of Information Technology Professionals (AITP): AITP Code of Ethics and the AITP Standards of Conduct
Industry Needs : Industry Needs National Association of Colleges and Employers (NACE)
Conducts annual survey to determine what qualities employers consider most important in applicants seeking employment.
What do you think employers want??
Top Ten Factors in 2001 : Top Ten Factors in 2001 1. Communication skills (verbal and written)
2. Honesty/integrity
3. Teamwork skills
4. Interpersonal skills
5. Motivation/initiative 6. Strong work ethic
7. Analytical skills
8. Flexibility andamp; adaptability
9. Computer skills
10. Self-confidence
Outline of the CCCE Volume : Outline of the CCCE Volume Introduction
Characteristics of computer engineering graduates
Evolution of the computer engineering discipline
Principles
Overview of the Body of Knowledge
Integration of engineering practice into curriculum
Curriculum implementation issues
Summary and conclusions
Appendix: Body of Knowledge
Appendix: Sample course outlines
Appendix: Sample curricula
Defining a Body of Knowledge : Defining a Body of Knowledge Hierarchical Structure
Disciplinary subfields (e.g., digital logic)
Units or thematic modules (e.g., switching theory)
Topics (e.g., number systems)
Core vs. Elective Units
Core = should be included in all programs
Elective = inclusion based on program objectives and/or student interest
Organization of BOK does not imply organization of a curriculum!
Body of Knowledge Topics : Body of Knowledge Topics Areas Likely to Contain Core Topics
SPR - Social and Professional Issues
CSE - Computer Systems Engineering
CAO - Computer Architecture and Organization
SWE - Software Engineering
ESY - Embedded Systems
OPS - Operating Systems
CSY - Circuits and Systems
NWK - Networks
ELE - Electronics
Body of Knowledge Topics (2) : Body of Knowledge Topics (2) Areas Likely to Contain Core Topics (cont’d)
DIG - Digital Logic
PRF - Programming Fundamentals
ALG - Algorithms and Complexity
DSC - Discrete Structures
Areas Likely to be Mostly Elective
DSP - Digital Signal Processing andamp; Multimedia
VLS - VLSI/ASIC Design
ACP - Alternative Computing Paradigms
TFT - Testing and Fault Tolerance
DVS - Digital System Verification
Social and Professional Issues (SPR) : Social and Professional Issues (SPR) SPR0. History and overview of social and professional issues [core]
SPR1. Social context of computing [core]
SPR2. Methods and tools of analysis [core]
SPR3. Professional and ethical responsibilities [core]
SPR4. Risks and liabilities of computer-based systems [core]
SPR5. Intellectual property [core]
SPR6. Privacy and civil liberties [core]
SPR7. Computer crime [elective]
SPR8. Economic issues in computing [elective]
SPR9. Philosophical frameworks [elective]
Computer Systems Engineering (CSE) : Computer Systems Engineering (CSE) CSE 0. History and overview of computer systems design [core]
CSE 1. Overview of systems engineering [core]
CSE 2. Theoretical considerations [elective]
CSE 3. Life cycle [core]
CSE 4. Requirements analysis and elicitation [core]
CSE 5. Specification [core]
CSE 6. Architectural design [core]
CSE 7. Implementation
CSE 8. Testing
CSE 9. Maintenance
CSE 10. Project management
CSE 11. Specialist systems
CSE 12. Hardware and software co-design
Computer Architecture and Organization (CAO) : Computer Architecture and Organization (CAO) CAO0. History and overview of computer architecture [core]
CAO1. Fundamentals of computer architecture [core]
CAO2. Computer arithmetic [core]
CAO3. Memory system organization and architecture [core]
CAO4. Interfacing and communication [core]
CAO5. Interface subsystems [core]
CAO6. Processor systems design [core]
CAO7. Organization of the CPU [core]
CAO8. Performance [core]
CAO9. Performance enhancements [elective]
CAO10. Multiprocessing [core]
Software Engineering (SWE) : Software Engineering (SWE) SWE0. History and overview of software engineering [core]
SWE1. Software processes [core]
SWE2. Software requirements and specifications [core]
SWE3. Software design [core]
SWE4. Software testing and validation [core]
SWE5. Software evolution [elective]
SWE6. Software tools and environments [core]
SWE7. Software project management [elective]
Embedded Systems (ESY) : Embedded Systems (ESY) ESY0. History and overview of embedded systems [core]
ESY1. Fundamentals of embedded systems [core]
ESY2. Language issues [core]
ESY3. Hardware considerations [core]
ESY4. Mapping between languages and hardware [core]
ESY5. Real-time Operating Systems [elective]
ESY6. Classification of embedded systems [elective]
ESY7. Software engineering considerations [elective]
ESY8. Particular techniques and applications [elective]
ESY9. Tool support [elective]
ESY10. High integrity software systems [elective]
Operating Systems (OPS) : Operating Systems (OPS) OPS0. History and overview of operating systems [core]
OPS1. Operating system function and design [core]
OPS2. Operating system principles [core]
OPS3. Concurrency [core]
OPS4. Scheduling and dispatch [core]
OPS5. Memory management [core]
OPS6. Device management [core]
OPS7. Security and protection [elective]
OPS8. File systems [elective]
OPS9. System performance evaluation [core]
Circuits and Systems (CSY) : Circuits and Systems (CSY) CSY0. History and overview of systems and circuits [core]
CSY1. Fundamental Electrical Quantities (core)
CSY2. Resistive Circuits and Networks(core)
CSY3. Reactive Circuits and Networks (core)
CSY4. Frequency Response (core)
CSY5. Sinusoidal Analysis (core)
CSY6. Convolution (core)
CSY7. Discrete Time Signals (core)
CSY8. Fourier Analysis (core)
CSY9. Filters (elective)
CSY10. Laplace Transforms (elective)
CSY11. z – Transforms (elective)
CSY12. Digital Filters (elective)
Networks (NWK) : Networks (NWK) NWK0. History and overview of networks [core]
NWK1. Communications Network Architecture [core]
NWK2. Communications Network Protocols [core]
NWK3. Local and Wide Area Networks [core]
NWK4. The web as an example of client-server computing [core]
NWK5. Data Security and Integrity [elective]
NWK6. Performance Evaluation [elective]
NWK7. Data Communications [elective]
NWK8. Wireless and mobile computing [elective]
Electronics (ELE) : Electronics (ELE) ELE0. History and overview of electronics [core]
ELE1. Electronic properties of materials [core]
ELE2. Diodes and diode circuits [core]
ELE3. MOS transistors and biasing [core]
ELE4. MOS logic families [core]
ELE5. Bipolar transistors and logic families [core]
ELE6. Design parameters and issues [core]
ELE7. Storage elements [core]
ELE8. Interfacing logic families and standard buses [core]
ELE9. Operational amplifiers [core]
ELE10. Data conversion circuits [core]
(continued)
Electronics (continued) : Electronics (continued) ELE11. SPICE circuit simulation [core]
ELE12. Electronic voltage and current sources [elective]
ELE13. Linear amplification and biasing [elective]
ELE14. Single-transistor amplifiers [elective]
ELE15. Multistage transistor amplifiers [elective]
ELE16. Power circuits [elective]
ELE17. Feedback in electronics [elective]
ELE18. Active filters [elective]
ELE19. Integrated circuit building blocks [elective]
ELE20. Circuits for wireless applications [elective]
Digital Logic (DIG) : Digital Logic (DIG) DIG0. History and overview of digital logic [core]
DIG1. Switching theory [core]
DIG2. Combinational logic circuits [core]
DIG3. Modular design of combinational circuits [core]
DIG4. Memory elements [core]
DIG5. Sequential logic circuits [core]
DIG6. Register Transfer Logic [core]
DIG7. Digital Systems Design [core]
Programming Fundamentals (PRF) : Programming Fundamentals (PRF) PRF0. History and overview of programming fundamentals [core]
PRF1. Fundamental programming constructs [core]
PRF2. Algorithms and problem-solving [core]
PRF3. Fundamental data structures [core]
PRF4. Programming Paradigms [core]
PRF5: Recursion [core]
PRF6. Object-oriented programming
PRF7. Event-driven and concurrent programming
PRF8. Using APIs
Algorithms and Complexity (ALG) : Algorithms and Complexity (ALG) ALG0. History and overview of algorithms and complexity [core]
ALG1. Basic algorithmic analysis [core]
ALG2. Algorithmic strategies [core]
ALG3. Fundamental computing algorithms [core]
ALG4. Distributed algorithms [core]
ALG5. Basic computability theory [core]
ALG6. The complexity classes P and NP [elective]
Discrete Structures (DSC) : Discrete Structures (DSC) DSC0. History and overview of discrete structures
DSC1. Functions, relations, and sets [core]
DSC2. Basic logic [core]
DSC3. Proof techniques [core]
DSC4. Basics of counting [core]
DSC5. Graphs and trees [core]
DSC6. Discrete probability [core]
DSC7. Recursion [elective]
DIGITAL SIGNAL PROCESSING & MULTIMEDIA (DSP) : DIGITAL SIGNAL PROCESSING andamp; MULTIMEDIA (DSP) DSP1. Overview of Digital Audio and its application
DSP2. Discrete Time Signals (SC9)
DSP3. Multimedia programming, data streaming
DSP4. Wave Table Generation
DSP5. Convolution (SC8)
DSP6. Fourier Analysis (SC10, modified)
DSP7. Audio Processing
DSP8. Generalized Modulations and Demodulations
DSP9. LaPlace Transforms (SC12 with modifications)
DSP10. Z – transforms (SC13 with modifications)
DSP11. Digital Filters (SC14, with modifications)
DSP12. Digital Image Processing Fundamentals
(continued)
DIGITAL SIGNAL PROCESSING & MULTIMEDIA (DSP) : DIGITAL SIGNAL PROCESSING andamp; MULTIMEDIA (DSP) DSP13. Simple Graphics
DSP14. Displaying Images
DSP15. Reading and Writing Image Files
DSP16. Edge Detection
DSP17. Boundary Processing
DSP18. Image Enhancement Techniques
DSP19. Achromatic and Colored Light
DSP20. Thresholding techniques
DSP21. Morphological filtering
DSP22. Warping
DSP23. The Cosine Transform
DSP24. The InLine MPEG CODEC
DSP25. The Wavelet Transform
VLSI and ASIC Design (VLS) : VLSI and ASIC Design (VLS) VLS1. MOS Transistor Fundamentals
VLS2. Processing and Layout
VLS3. Function of the Basic Inverter Structure
VLS4. Circuit Characterization and Performance
VLS5. Combinational Logic Circuits
VLS6. Sequential Logic Circuits
VLS7. Alternative Circuit Structures/Low Power Design
VLS8. Semiconductor Memories and Array Structures
VLS9. Chip Input/Output Circuits
VLS10. Semi custom Design Technologies
VLS11. ASIC Design Methodology
Alternative Computing Paradigms (ACP) : Alternative Computing Paradigms (ACP) ACP1. Overview/History [core]
ACP2. Paradigms [core]
ACP3. Architectures
ACP4. Operating systems issues
ACP5. Software issues
ACP6. Algorithms
ACP7. Applications
Testing and Fault Tolerance (TFT) : Testing and Fault Tolerance (TFT) TFT1 – Faults and Fault Models in Digital Circuits
TFT2 - Test generation methods
TFT3 - Design for testability
TFT4 - Testing non-stuck-at faults
TFT5 - System-level test and diagnosis
TFT6 - Reliability and fault tolerance definitions
TFT7 - Error detecting and correcting codes
TFT8 – Fault Tolerant System Design
TFT9 – Software approaches and software fault tolerance
Digital System Verification (DSV) : Digital System Verification (DSV) DSV0. History and Overview Including Pentium Bugs and other Horror Stories, Verification vs. Validation. Relationship of Good Design Practice to Verification (3 hours)
DSV2. Comparison of Simulation, Testing, and Formal Verification (Timing Analysis) for Timing (4 hours)
DSV3. Formal Verification: Model Checking (10 hours)
DSV4: Formal Verification: Proofs (6 hours)
DSV5: Formal Verification: Equivalence Checking (3 hours)
DSV6: Verification by Simulation and Testbenches (4 hours)
DSV7: Verification by Assertions and Verification Languages (4 hours)
DSV8: Verification by Testing (2 hours)
DSV9: Other Verification: Signal Integrity, Specification, Reliability, Safety, Power, Cooling, ASIC Physical Design, … (3 hours)
DSV10: Comparison and Contrast of Verification, Testing, and Reliability (1 hour)
DSV11: Configuration Control, Bug Tracking, Regression Testing (2 hours)
DSV12: Economics of Verification (2 hours)
Digital Systems Engineering: Signal Integrity (DSI) : Digital Systems Engineering: Signal Integrity (DSI) DSI0: History and Overview, Motivation, Importance, Horror Stories
DSI1: Signals
DSI2: Lossless Transmission Lines
DSI3: Coupled Lines
DSI4: Measurement
DSI5: Simulation
DSI6: Signaling
DSI7: Power distribution
DSI8: EMI/EMC(?)
Intelligent Systems and Automation (ISA) : Intelligent Systems and Automation (ISA) Yet to be defined
CSE 3: Life Cycle [core] : CSE 3: Life Cycle [core] Minimum core coverage : 2 hours
Topics:
Nature of life cycle, role of life cycle model. Quality in relation to the life cycle.
Influence of system size on choice of life cycle model and nature of system – agility issues.
Different models of the life cycle – strengths and weaknesses of each.
The concept of process. Process improvement. Basis for this is information.
Gathering information.
Maturity models. Standards and guidelines.
Learning objectives:
Recognize the need for a disciplined approach to system development and explain the elements of this in particular contexts.
Explain how data should be gathered to inform process improvement.
What Happens Next ? : What Happens Next ? Strawman Body of Knowledge (June 2002)
Preliminary draft
Public review and comment via website http://www.eng.auburn.edu/ece/CCCE/
Solicited review by topic experts
Wide participation sought, including international
Strawman CCCE Volume (Fall 2002)
Review of BOK and text chapters
Ironman CCCE Volume (end of 2002)
Submission to IEEE-CS and ACM (2003)
Slide45 :