your adventure in

Computer Engineering

This is an archived copy of the 2019-2020 catalog. To access the most recent version of the catalog, please visit http://catalog.iastate.edu.

View PDF

www.ece.iastate.edu

Administered by the Department of Electrical and Computer Engineering

For the undergraduate curriculum in computer engineering leading to the degree Bachelor of Science. The Computer Engineering program is accredited by the Engineering Accreditation Commission of ABET, http://www.abet.org.

The Department of Electrical and Computer Engineering (ECpE) at Iowa State University provides undergraduate students with the opportunity to learn electrical and computer engineering fundamentals, study applications of the most recent advances in state-of-the-art technologies, and to prepare for the practice of computer engineering. The student-faculty interaction necessary to realize this opportunity occurs within an environment that is motivated by the principle that excellence in undergraduate education is enhanced by an integrated commitment to successful, long-term research and outreach programs.

The computer engineering curriculum offers focus areas in software systems, embedded systems, networking, information security, computer architecture, and VLSI.

Students also may take elective courses in control systems, electromagnetics, microelectronics, VLSI, power systems, and communications and signal processing.

The program objectives for the computer engineering programs describe accomplishments that graduates are expected to attain within five years after graduation. Graduates will have applied their expertise to contemporary problem solving, be engaged professionally, have continued to learn and adapt, and have contributed to their organizations through leadership and teamwork. More specifically, the objectives for expertise, engagement, learning, leadership and teamwork are defined below for each program.

The objectives of the computer engineering program at Iowa State University are:

  • Graduates, within five years of graduation, should demonstrate peer-recognized expertise together with the ability to articulate that expertise and use it for contemporary problem solving in the analysis, design, and evaluation of computer and software systems, including system integration and implementation.
  • Graduates, within five years of graduation, should demonstrate engagement in the engineering profession, locally and globally, by contributing to the ethical, competent, and creative practice of engineering or other professional careers.
  • Graduates, within five years of graduation, should demonstrate sustained learning and adapting to a constantly changing field through graduate work, professional development, and self study.
  • Graduates, within five years of graduation, should demonstrate leadership and initiative to ethically advance professional and organizational goals, facilitate the achievements of others, and obtain substantive results.
  • Graduates, within five years of graduation, should demonstrate a commitment to teamwork while working with others of diverse cultural and interdisciplinary backgrounds.

As a complement to the instructional activity, the ECpE department provides opportunities for each student to have experience with broadening activities. Through the cooperative education and internship program, students have the opportunity to gain practical industry experience. Students have the opportunity to participate in advanced research activities, and through international exchange programs, students learn about engineering practices in other parts of the world. Well-qualified juniors and seniors in computer engineering who are interested in graduate study may apply for concurrent enrollment in the Graduate College to simultaneously pursue both the Bachelor of Science and Master of Science, the Bachelor of Science and Master of Business Administration, or the Bachelor of Science and Master of Engineering degrees.

Curriculum in Computer Engineering

Administered by the Department of Electrical and Computer Engineering.

Leading to the degree Bachelor of Science.

Total credits required: 127
Any transfer credit courses applied to the degree program require a grade of C or better (but will not be calculated into the ISU cumulative GPA, Basic Program GPA or Core GPA). See also Basic Program and Special Programs. 
Note: Department does not allow Pass/Not Pass credits to be used to meet graduation requirements.
International Perspectives: 3 cr.1
U.S. Diversity: 3 cr.1
Communication Proficiency/Library requirement:
ENGL 150Critical Thinking and Communication (Must have a C or better in this course)3
ENGL 250Written, Oral, Visual, and Electronic Composition (Must have a C or better in this course)3
LIB 160Information Literacy1
One of the following:3
Technical Communication (C or better in this course)
Proposal and Report Writing (C or better in this course)
General Education Electives: 15 cr.3

Complete minimum of 6 cr. from Approved General Education Component at 300- or higher level. Complete additional 9 cr. from Approved General Education Component.

Basic Program: 27 cr.
A minimum GPA of 2.00 required for this set of courses, including any transfer courses (please note that transfer course grades will not be calculated into the Basic Program GPA). See Requirement for Entry into Professional Program in College of Engineering Overview section.
CHEM 167General Chemistry for Engineering Students4
or CHEM 177 General Chemistry I
ENGL 150Critical Thinking and Communication (Must have a C or better in this course)3
ENGL 250Written, Oral, Visual, and Electronic Composition (Must have a C or better in this course)3
ENGR 101Engineering OrientationR
CPR E 185Introduction to Computer Engineering and Problem Solving I 23
LIB 160Information Literacy1
MATH 165Calculus I4
MATH 166Calculus II4
PHYS 221Introduction to Classical Physics I5
Total Credits27
Math and Physical Science: 20 cr.
COM S 227Object-oriented Programming4
COM S 228Introduction to Data Structures3
MATH 265Calculus III4
MATH 267Elementary Differential Equations and Laplace Transforms4
PHYS 222Introduction to Classical Physics II5
Total Credits20
Computer Engineering Core: 33 cr.
(A minimum GPA of 2.00 required for this set of courses, including any transfer courses; please note that transfer course grades will not be calculated into the Core GPA).
CPR E 281Digital Logic4
CPR E 288Embedded Systems I: Introduction4
CPR E 308Operating Systems: Principles and Practice4
CPR E 310Theoretical Foundations of Computer Engineering3
CPR E 381Computer Organization and Assembly Level Programming4
COM S 309Software Development Practices3
CPR E 315Applications of Algorithms in Computer Engineering3
or COM S 311 Introduction to the Design and Analysis of Algorithms
E E 201Electric Circuits4
E E 230Electronic Circuits and Systems4
Total Credits33
Other Remaining Courses: 32 cr.
CPR E 491Senior Design Project I and Professionalism3
CPR E 492Senior Design Project II2
STAT 330Probability and Statistics for Computer Science3
One of the following:3
Technical Communication (C or better in this course)
Proposal and Report Writing (C or better in this course)
Computational Thinking Technical Electives 36
Computer Engineering Technical Electives 39
Technical Electives 36
Total Credits32
Seminar/Co-op/Internships:
CPR E 166Professional Programs OrientationR
CPR E 294Program DiscoveryR
CPR E 394Program ExplorationR
CPR E 494Portfolio AssessmentR
Co-op or internship is optional.

Outcomes Assessment - Students are required to prepare and to maintain a portfolio of their technical and non-technical skills. This portfolio is evaluated for student preparation during the student's curriculum planning process. Results of the evaluation are used to advise students of core strengths and weaknesses.

Transfer Credit Requirements

The degree program must include a minimum of 30 credits at the 300-level or above in professional and technical courses earned at ISU in order to receive a B.S. in computer engineering. These 30 credits must include CPR E 491 Senior Design Project I and Professionalism, CPR E 492 Senior Design Project II, and credits in the core professional curriculum and/or in technical electives. The Electrical and Computer Engineering Department requires a grade of C or better for any transfer credit course that is applied to the degree program.

  1. These university requirements will add to the minimum credits of the program unless the university-approved courses are also approved by the department to meet other course requirements within the degree program. U.S. diversity and international perspectives courses may not be taken Pass/Not Pass, but are used to meet the general education electives.
  2. See Basic Program for Professional Engineering Curricula for accepted substitutions for curriculum designated courses in the Basic Program.
  3. From department approved lists.  

See also: A 4-year plan of study grid showing course template by semester.

Note: International perspectives and U.S. diversity courses are used to meet the general education electives.

Computer Engineering, B.S.

First Year
FallCreditsSpringCredits
CHEM 1674COM S 2274
CPR E 1853CPR E 1660
ENGL 1503MATH 1664
ENGR 1010PHYS 2215
LIB 1601General Education Elective3
MATH 1654 
 15 16
Second Year
FallCreditsSpringCredits
CPR E 2814CPR E 2884
COM S 2283ENGL 2503
MATH 2654MATH 2674
PHYS 2225E E 2014
CPR E 2940 
 16 15
Third Year
FallCreditsSpringCredits
CPR E 3814COM S 311 or CPR E 3153
CPR E 3103CPR E 3084
COM S 3093ENGL 314 or ENGL 3093
E E 2304General Education Elective3
CPR E 3940Computational Thinking Tech Elective3
General Education Elective3 
 17 16
Fourth Year
FallCreditsSpringCredits
CPR E 4913CPR E 4922
CPR E 4940Computational Thinking Tech Elective3
STAT 3303General Education Elective3
Technical Electives6CPR E Elective6
CPR E Elective3 
General Education Elective3 
 18 14

Graduate Study

The department offers work for the degrees Master of Engineering, Master of Science, and Doctor of Philosophy with a major in computer engineering and minor work to students with other majors. Minor work for computer engineering majors is usually selected from a wide range of courses outside computer engineering.

The Master of Engineering degree is course-work only. It is recommended for off-campus students.

The Master of Science degree with thesis is recommended for students who intend to continue toward the Doctor of Philosophy degree or to undertake a career in research and development. The non-thesis Master of Science degree requires a creative component.

The department also offers three graduate certificate programs in embedded systems, computer networking, and software systems.

The normal prerequisite to graduate major work in computer engineering is the completion of undergraduate work substantially equivalent to that required of computer engineering students at this university. It is possible for a student to qualify for graduate study in computer engineering even though the student’s undergraduate or prior graduate training has been in a discipline other than computer engineering. Supporting work, if required, will depend on the student’s background and area of research interest. Prospective students from a discipline other than computer engineering are required to submit, with the application for admission, a statement of the proposed area of graduate study.

The department requires submission of GRE General test scores by applicants. All students whose first language is not English and who have no U.S. degree must submit TOEFL examination scores. Students pursuing the Doctor of Philosophy must complete the department qualifying process.

The Department of Electrical and Computer Engineering is a participating department in the interdepartmental Master of Science and Doctor of Philosophy degree programs in bioinformatics and computational biology. Students interested in these programs may earn their degrees while working under an adviser in electrical and computer engineering.

The Department of Electrical and Computer Engineering also is a participating department in the interdepartmental certificate, Master of Engineering, and Master of Science in Information Assurance programs. Students interested in studying information assurance topics may earn a degree in computer engineering or in information assurance. (See catalog section on Information Assurance.)

Well-qualified juniors and seniors in computer engineering who are interested in graduate study may apply for concurrent enrollment in the Graduate College to simultaneously pursue both Bachelor of Science and Master of Science, or Bachelor of Science and Master of Business Administration, or Bachelor of Science and Master of Engineering degrees. Under concurrent enrollment, students are eligible for assistantships and simultaneously take undergraduate and graduate courses. Details are available in the Student Services Office and on the department’s web site.

Expand all courses

Courses

Courses primarily for undergraduates:

(Cross-listed with INFAS). (1-0) Cr. 1.


Basic concepts of practical computer and Internet security: passwords, firewalls, antivirus software, malware, social networking, surfing the Internet, phishing, and wireless networks. This class is intended for students with little or no background in information technology or security. Basic knowledge of word processing required. Offered on a satisfactory-fail basis only.

(Cross-listed with E E). Cr. R. F.S.


(1-0) Overview of the nature and scope of electrical engineering and computer engineering professions. Overview of portfolios. Departmental rules, student services operations, degree requirements, program of study planning, career options, and student organizations.

Cr. 1. F.

Prereq: Member of Cpr E Learning Community
Integration of first-year students into the Computer Engineering program. Assignments and activities involving teamwork, academic preparation, study skills, and preparation for entry into the Computer Engineering profession. Completed both individually and in learning teams under the direction of faculty and peer mentors.

(2-2) Cr. 3.

Prereq: MATH 143 or satisfactory scores on mathematics placement examinations; credit or enrollment in MATH 165
Introduction to Computer Engineering. Project based examples from computer engineering. Individual interactive skills for small and large groups. Computer-based projects. Solving engineering problems and presenting solutions through technical reports. Solution of engineering problems using a programming language.

(0-2) Cr. 1. S.

Prereq: CPR E 185
Project based examples from computer engineering. Group skills needed to work effectively in teams. Group problem solving. Computer based projects. Technical reports and presentations. Students will work on 2 or 3 self-directed team based projects that are representative of problems faced by computer engineers.

(2-2) Cr. 3. F.

Prereq: COM S 227, E E 285, or MIS 207.
Introduction to computer and network infrastructures used to support cyber security. Basic concepts of computer and network configuration used to secure environments. Computer virtualization, network routing and address translation, computer installation and configuration, network monitoring, in a virtual environment. Laboratory experiments and exercises including secure computer and network configuration and management.

(2-2) Cr. 3. S.

Prereq: CPR E 230
Basic concepts of practical computer and Internet security and the tools used to protect and attack systems and networks. Computer and network security methods including: user authentication, access control, firewalls, intrusion detection, use of vulnerability assessment tools and methods, and penetration testing. Ethics and legal issues in cyber security will also be covered. Laboratory experiments and exercises including evaluating systems for vulnerabilities, understanding potential exploits of the systems, and defenses for the systems.

(Cross-listed with E E). Cr. R.


Introduction to the College of Engineering and the engineering profession specifically for transfer students. Information concerning university and college policies, procedures, and resources. Offered on a satisfactory-fail basis only.

(3-3) Cr. 4. F.S.

Prereq: sophomore classification
Number systems and representation. Boolean algebra and logic minimization. Combinational and sequential logic design. Arithmetic circuits and finite state machines. Use of programmable logic devices. Introduction to computer-aided schematic capture systems, simulation tools, and hardware description languages. Design of simple digital systems.

(3-2) Cr. 4. F.S.

Prereq: CPR E 281, COM S 207 or COM S 227 or E E 285
Embedded C programming. Interrupt handling. Memory mapped I/O in the context of an application. Elementary embedded design flow/methodology. Timers, scheduling, resource allocation, optimization, state machine based controllers, real time constraints within the context of an application. Applications laboratory exercises with embedded devices.

(Cross-listed with E E). Cr. R.

Prereq: CPR E 166 or E E 166
The roles of professionals in computer and electrical engineering. Relationship of coursework to industry and academic careers. Issues relevant to today's world. Offered on a satisfactory-fail basis only.

(3-3) Cr. 4. F.S.

Prereq: CPR E 381 or COM S 321
Operating system concepts, processes, threads, synchronization between threads, process and thread scheduling, deadlocks, memory management, file systems, I/O systems,security, Linux-based lab experiments.

(3-1) Cr. 3. F.S.

Prereq: COM S 228
Propositional logic and methods of proof; set theory and its applications; mathematical induction and recurrence relations; functions and relations; and counting; trees and graphs; applications in computer engineering.

(3-0) Cr. 3. F.S.SS.

Prereq: CPR E 310
Solving computer engineering problems using algorithms. Emphasis on problems related to the core focus areas in computer engineering. Real world examples of algorithms used in the computer engineering domain. Algorithm engineering. Prototyping of algorithms.

(Cross-listed with S E). (3-0) Cr. 3.

Prereq: COM S 309
Process-based software development. Capability Maturity Model (CMM). Project planning, cost estimation, and scheduling. Project management tools. Factors influencing productivity and success. Productivity metrics. Analysis of options and risks. Version control and configuration management. Inspections and reviews. Managing the testing process. Software quality metrics. Modern software engineering techniques and practices.

(Cross-listed with E E). (3-3) Cr. 4.

Prereq: E E 201, credit or enrollment in E E 230, CPR E 281
Semiconductor technology for integrated circuits. Modeling of integrated devices including diodes, BJTs, and MOSFETs. Physical layout. Circuit simulation. Digital building blocks and digital circuit synthesis. Analysis and design of analog building blocks. Laboratory exercises and design projects with CAD tools and standard cells.

(Cross-listed with INFAS). (0-2) Cr. 1. Repeatable. S.


Participation in cyber defense competition driven by scenario-based network design. Includes computer system setup, risk assessment and implementation of security systems, as well as defense of computer and network systems against trained attackers. Team based. Offered on a satisfactory-fail basis only.

(Cross-listed with S E). (3-0) Cr. 3.

Prereq: S E 319
Modeling and design of software at the architectural level. Architectural styles. Basics of model-driven architecture. Object-oriented design and analysis. Iterative development and unified process. Design patterns. Design by contract. Component based design. Product families. Measurement theory and appropriate use of metrics in design. Designing for qualities such as performance, safety, security, reliability, reusability, etc. Analysis and evaluation of software architectures. Introduction to architecture definition languages. Basics of software evolution, reengineering, and reverse engineering. Case studies. Introduction to distributed system software.

(3-2) Cr. 4. F.S.

Prereq: CPR E 288
Introduction to computer organization, evaluating performance of computer systems, instruction set design. Assembly level programming: arithmetic operations, control flow instructions, procedure calls, stack management. Processor design. Datapath and control, scalar pipelines, introduction to memory and I/O systems.

(3-2) Cr. 4.

Prereq: CPR E 288
Contemporary programming techniques for event driven systems. Mobile platforms and operating systems. Location and motion sensors based user interfaces. Threading and scheduling. Resource management - measurement and control techniques - for memory and energy. Client-server application design. Distributed applications. Laboratory includes exercises based on a mobile platform.

(Cross-listed with E E). Cr. R.

Prereq: CPR E 294 or E E 294
Exploration of academic and career fields for electrical and computer engineers. Examination of professionalism in the context of engineering and technology with competencies based skills. Introduction to professional portfolio development and construction. Offered on a satisfactory-fail basis only.

Cr. R. Repeatable. SS.

Prereq: Permission of department and Engineering Career Services
Professional work period of at least 10 weeks during the summer. Students must register for this course prior to commencing work. Offered on a satisfactory-fail basis only.

Cr. R. Repeatable. F.S.

Prereq: Permission of department and Engineering Career Services
Professional work period. One semester per academic or calendar year. Students must register for this course before commencing work. Offered on a satisfactory-fail basis only.

(Cross-listed with COM S, S E). (3-0) Cr. 3.

Prereq: COM S 311, STAT 330; for graduate credit: graduate standing or permission of instructor
A study of formal techniques for model-based specification and verification of software systems. Topics include logics, formalisms, graph theory, numerical computations, algorithms and tools for automatic analysis of systems. Graduate credit requires in-­depth study of concepts.

(Cross-listed with S E). (3-0) Cr. 3.

Prereq: COM S 309
Practical importance of software evolution and maintenance, systematic defect analysis and debugging techniques, tracing and understanding large software, impact analysis, program migration and transformation, refactoring, tools for software evolution and maintenance, experimental studies and quantitative measurements of software evolution. Written reports and oral presentation.

(Cross-listed with E E). (3-2) Cr. 4. F.

Prereq: E E 230 and E E 311
Measurement of high speed systems and mixed signal systems. Measurement accuracy and error. Network analysis and spectrum analysis used in high speed measurement and testing. Test specification process and parametric measurement. Sampling and digital signal processing concepts. Design for testability. Testing equipment. Applications.

(Cross-listed with S E). (3-3) Cr. 4.

Prereq: CPR E 308 or COM S 352, COM S 309
Software tools for managing and manipulating large volumes of data, external memory processing, large scale parallelism, and stream processing, data interchange formats. Weekly programming labs that involve the use of a parallel computing cluster.

(Cross-listed with S E). Cr. 3. F.S.

Prereq: COM S 309; CPR E 310 or COM S 230
Significance of software safety and security; various facets of security in cyber-physical and computer systems; threat modeling for software safety and security; and categorization of software vulnerabilities. Software analysis and verification: mathematical foundations, data structures and algorithms, program comprehension, analysis, and verification tools; automated vs. human-on-the-loop approach to analysis and verification; and practical considerations of efficiency, accuracy, robustness, and scalability of analysis and verification. Cases studies with application and systems software; evolving landscape of software security threats and mitigation techniques. Understanding large software, implementing software analysis and verification algorithms.

(Cross-listed with COM S, MATH). (2-2) Cr. 3. F.

Prereq: MATH 265; MATH 207 or MATH 317; or permission of instructor.
Unix, serial programming of scientific applications, OpenMP for shared-memory parallelization. No Unix, Fortran or C experience required.

(Cross-listed with COM S). (2-2) Cr. 3.

Prereq: COM S 311, ENGL 250, SP CM 212
Introduction to high performance computing platforms including parallel computers and workstation clusters. Discussion of parallel architectures, performance, programming models, and software development issues. Sample applications from science and engineering. Practical issues in high performance computing will be emphasized via a number of programming projects using a variety of programming models and case studies. Oral and written reports.

(Dual-listed with CPR E 526). (Cross-listed with COM S). (3-2) Cr. 4. F.

Prereq: CPR E 308 or COM S 321, CPR E 315 or COM S 311
Models of parallel computation, performance measures, basic parallel constructs and communication primitives, parallel programming using MPI, parallel algorithms for selected problems including sorting, matrix, tree and graph problems, fast Fourier transforms.

(Dual-listed with CPR E 530). (Cross-listed with INFAS). (3-0) Cr. 3.

Prereq: CPR E 381 or equivalent
Detailed examination of networking standards, protocols, and their implementation. TCP/IP protocol suite, network application protocols. Network security issues, attack and mitigation techniques. Emphasis on laboratory experiments.

(3-0) Cr. 3. S.

Prereq: credit or enrollment in CPR E 308 or COM S 352
Introduction to and application of basic mechanisms for protecting information systems from accidental and intentional threats. Basic cryptography use and practice. Computer security issues including authentication, access control, and malicious code. Network security mechanisms such as intrusion detection, firewalls, IPSEC, and related protocols. Ethics and legal issues in information security. Wireless security. Programming and system configuration assignments.

(Cross-listed with E E). (3-3) Cr. 4. S.

Prereq: E E 330
Basic analog integrated circuit and system design including design space exploration, performance enhancement strategies, operational amplifiers, references, integrated filters, and data converters.

(Cross-listed with BCB, BCBIO, BIOL, COM S, GEN). (4-0) Cr. 4. F.

Prereq: MATH 165 and Introductory Statistics (STAT 101, STAT 104, STAT 105, STAT 201, or STAT 330).
Broad overview of bioinformatics with a significant problem-solving component, including hands-on practice using computational tools to solve a variety of biological problems. Topics include: bioinformatic data processing, Python programming, genome assembly, database search, sequence alignment, gene prediction, next-generation sequencing, comparative and functional genomics, and systems biology.

(Dual-listed with CPR E 550). (3-0) Cr. 3.

Prereq: CPR E 308 or COM S 352
Fundamentals of distributed computing, software agents, naming services, distributed transactions, security management, distributed object-based systems, web-based systems, middleware-based application design and development, case studies of middleware and internet applications.

(Dual-listed with CPR E 554). (Cross-listed with COM S). (3-1) Cr. 3.

Prereq: COM S 311, COM S 352; for graduate credit: graduate standing or permission of instructor
Theoretical and practical issues of design and implementation of distributed systems. The client server paradigm, inter-process communications, synchronization and concurrency control, naming, consistency and replication, fault tolerance, and distributed file systems. Graduate credit requires additional in-depth study of concepts. Programming projects and written reports.

(Dual-listed with CPR E 558). (3-0) Cr. 3.

Prereq: CPR E 308 or COM S 352
Fundamental concepts in real-time systems. Real time task scheduling paradigms. Resource management in uniprocessor, multiprocessor, and distributed real-time systems. Fault-tolerance, resource reclaiming, and overload handling. Real-time channel, packet scheduling, and real-time LAN protocols. Case study of real-time operating systems. Laboratory experiments.

(Cross-listed with E E). (3-3) Cr. 4. F.

Prereq: E E 330
Digital design of integrated circuits employing very large scale integration (VLSI) methodologies. Technology considerations in design. High level hardware design languages, CMOS logic design styles, area-energy-delay design space characterization, datapath blocks: arithmetic and memory, architectures and systems on a chip (SOC) considerations. VLSI chip hardware design project.

(Cross-listed with A B E, AER E, B M E, E E, ENGR, I E, M E, MAT E). (1-4) Cr. 3. Repeatable. F.S.

Prereq: Student must be within two semesters of graduation; permission of instructor.
Application of team design concepts to projects of a multidisciplinary nature. Concurrent treatment of design, manufacturing, and life cycle considerations. Application of design tools such as CAD, CAM, and FEM. Design methodologies, project scheduling, cost estimating, quality control, manufacturing processes. Development of a prototype and appropriate documentation in the form of written reports, oral presentations and computer models and engineering drawings.

(Cross-listed with AER E, E E, ENGR, I E, M E, MAT E). (1-4) Cr. 3. Repeatable, maximum of 2 times. Alt. F., offered irregularly.Alt. S., offered irregularly.

Prereq: Student must be within two semesters of graduation or receive permission of instructor.
Build and test of a conceptual design. Detail design, manufacturability, test criteria and procedures. Application of design tools such as CAD and CAM and manufacturing techniques such as rapid prototyping. Development and testing of a full-scale prototype with appropriate documentation in the form of design journals, written reports, oral presentations and computer models and engineering drawings.

(3-3) Cr. 4. S.

Prereq: CPR E 381 or COM S 321
Introduction to hardware architectures for computer graphics and their programming models. System-level view, including framebuffers, video output devices, displays, 2D and 3D graphics acceleration, and device interfacing. Architectural design of GPUs, from 2D and 3D sprite engines to 3D rendering pipelines to unified shader architectures. Computing models for graphics processors. GPGPU and GPU computing.

(3-3) Cr. 4. S.

Prereq: CPR E 381
Embedded system design using hardware description language (HDL) and field programmable gate array (FPGA). HDL modeling concepts and styles are introduced; focus on synthesizability, optimality, reusability and portability in hardware design description. Introduction to complex hardware cores for data buffering, data input/output interfacing, data processing. System design with HDL cores and implementation in FPGA. Laboratory-oriented design projects.

(3-3) Cr. 4.

Prereq: CPR E 381 or COM S 321
Embedded microprocessors, embedded memory and I/O devices, component interfaces, embedded software, program development, basic compiler techniques, platform-based FPGA technology, hardware synthesis, design methodology, real-time operating system concepts, performance analysis and optimizations.

(3-2) Cr. 4. F.S.

Prereq: CPR E 381 or E E 324
Modern computer networking and data communications concepts. TCP/IP, OSI protocols, client server programming, data link protocols, local area networks, and routing protocols.

Cr. arr. Repeatable.

Prereq: Senior classification in computer engineering
Investigation of an approved topic.

Cr. arr. Repeatable.

Prereq: Senior classification in computer engineering
Investigation of an approved topic.

(Cross-listed with E E). (2-3) Cr. 3. F.S.

Prereq: E E 322 or CPR E 308, completion of 24 credits in the E E core professional program or 29 credits in the Cpr E core professional program, ENGL 314
Preparing for entry to the workplace. Selected professional topics. Use of technical writing skills in developing project plan and design report; design review presentation. First of two-semester team-oriented, project design and implementation experience.

(Cross-listed with E E). (1-3) Cr. 2. F.S.

Prereq: CPR E 491 or E E 491
Second semester of a team design project experience. Emphasis on the successful implementation and demonstration of the design completed in E E 491 or CPR E 491 and the evaluation of project results. Technical writing of final project report; oral presentation of project achievements; project poster.

(Cross-listed with E E). Cr. R.

Prereq: CPR E 394 or E E 394, credit or enrollment in CPR E 491 or E E 491
Portfolio update and evaluation. Portfolios as a tool to enhance career opportunities.

Courses primarily for graduate students, open to qualified undergraduates:

(Cross-listed with E E). (3-3) Cr. 4. F.

Prereq: E E 435
Design techniques for analog and mixed-signal VLSI circuits. Amplifiers; operational amplifiers, transconductance amplifiers, finite gain amplifiers and current amplifiers. Linear building blocks; differential amplifiers, current mirrors, references, cascading and buffering. Performance characterization of linear integrated circuits; offset, noise, sensitivity and stability. Layout considerations, simulation, yield and modeling for high-performance linear integrated circuits.

(Cross-listed with E E). (3-3) Cr. 4. Alt. S., offered even-numbered years.

Prereq: E E 501
Theory, design and applications of data conversion circuits (A/D and D/A converters) including: architectures, characterization, quantization effects, conversion algorithms, spectral performance, element matching, design for yield, and practical comparators, implementation issues.

(Cross-listed with E E). (3-3) Cr. 4.

Prereq: E E 435 or E E 501 or instructor approval
Analysis and design of phase-locked loops implemented in modern CMOS processes including: architectures, performance metrics, and characterization; noise and stability analysis; and design issues of phase-frequency detectors, charge pumps, loop filters (passive and active), voltage controlled oscillators, and frequency dividers.

(Cross-listed with E E). (3-3) Cr. 4. Alt. S., offered odd-numbered years.

Prereq: E E 435 or E E 501
Phase-locked loops, frequency synthesizers, clock and data recovery circuits, theory and implementation of adaptive filters, low-noise amplifiers, mixers, power amplifiers, transmitter and receiver architectures.

(Cross-listed with COM S). (3-0) Cr. 3.

Prereq: COM S 311
A study of algorithm design and analysis techniques. Network flows and linear programming. Randomized algorithms. NP-completeness. Approximation algorithms. Fixed-parameter algorithms.

(Cross-listed with COM S). Cr. 3.

Prereq: COM S 331, COM S 342
Algorithms and tools for automatically reasoning about code and program executions to predict software behavior. Theory and foundations related to control flow analysis, dataflow analysis, abstract interpretation and symbolic execution. Applications of program analysis to improve software security, performance and testing. Concepts, algorithms, tools, benchmarks, methodologies for solving problems using program analysis and for preparing research in program analysis.

(Cross-listed with E E). (3-0) Cr. 3. Alt. F., offered irregularly.

Prereq: Permission of instructor
Topics on cognitive radio networks: Cognitive Radio Networks Architecture; Software Defined Radio Architecture; Spectrum Sensing; Spectrum Management; Spectrum Sharing; Spectrum Mobility; Applications of Cognitive Radio Networks.

(Cross-listed with COM S, MATH). (3-0) Cr. 3. S.

Prereq: CPR E 308 or MATH 481; experience in scientific programming; knowledge of FORTRAN or C
Introduction to parallelization techniques and numerical methods for distributed memory high performance computers. A semester project in an area related to each student’s research interests is required.

(Dual-listed with CPR E 426). (Cross-listed with COM S). (3-2) Cr. 4. F.

Prereq: CPR E 308 or COM S 321, CPR E 315 or COM S 311
Models of parallel computation, performance measures, basic parallel constructs and communication primitives, parallel programming using MPI, parallel algorithms for selected problems including sorting, matrix, tree and graph problems, fast Fourier transforms.

(3-0) Cr. 3.

Prereq: CPR E 315 or COM S 311
The application of randomization and probabilistic methods in the design of computer algorithms, and their efficient implementation. Discrete random variables in modeling algorithm behavior, with applications to sorting, selection, graph algorithms, hashing, pattern matching, cryptography, distributed systems, and massive data set algorithmics.

(Cross-listed with E E). (3-0) Cr. 3. S.

Prereq: E E 322 or equivalent
Introduces a variety of data analytics techniques ‐ particularly those relevant for electrical and computer engineers ‐ from a foundational perspective. Topics to be covered include techniques for classification, visualization, and parameter estimation, with applications to signals, images, matrices, and graphs. Emphasis will be placed on rigorous analysis as well as principled design of such techniques.

(Dual-listed with CPR E 430). (Cross-listed with INFAS). (3-0) Cr. 3.

Prereq: CPR E 381 or equivalent
Detailed examination of networking standards, protocols, and their implementation. TCP/IP protocol suite, network application protocols. Network security issues, attack and mitigation techniques. Emphasis on laboratory experiments.

(Cross-listed with INFAS). (3-0) Cr. 3.

Prereq: CPR E 489 or CPR E 530 or COM S 586 or MIS 535
Computer, software, and data security: basic cryptography, security policies, multilevel security models, attack and protection mechanisms, legal and ethical issues.

(Cross-listed with INFAS). (3-0) Cr. 3. S.

Prereq: CPR E 531
Computer system and network security: implementation, configuration, testing of security software and hardware, network monitoring. Authentication, firewalls, vulnerabilities, exploits, countermeasures. Study and use of attack tools. Ethics in information assurance. Emphasis on laboratory experiments.

(Cross-listed with INFAS, MATH). (3-0) Cr. 3. S.

Prereq: MATH 301 or CPR E 310 or COM S 230
Basic concepts of secure communication, DES and AES, public-key cryptosystems, elliptic curves, hash algorithms, digital signatures, applications. Relevant material on number theory and finite fields.

(Cross-listed with INFAS, POL S). (3-0) Cr. 3. S.

Prereq: Graduate classification; CPR E 531 or INFAS 531
Legal and ethical issues in computer security. State and local codes and regulations. Privacy issues.

(Cross-listed with INFAS, MATH). (3-0) Cr. 3. S.

Prereq: E E 524 or MATH 317 or MATH 407 or COM S 230
Basic principles of covert communication, steganalysis, and forensic analysis for digital images. Steganographic security and capacity, matrix embedding, blind attacks, image forensic detection and device identification techniques. Related material on coding theory, statistics, image processing, pattern recognition.

(Cross-listed with INFAS). (3-0) Cr. 3.

Prereq: CPR E 489 or CPR E 530
Fundamentals of computer and network forensics, forensic duplication and analysis, network surveillance, intrusion detection and response, incident response, anonymity and pseudonymity, privacy-protection techniques, cyber law, computer security policies and guidelines, court testimony and report writing, and case studies. Emphasis on hands-on experiments.

(3-0) Cr. 3. S.

Prereq: Credit or enrollment in CPR E 489 or CPR E 530
Introduction to the physical layer and special issues associated with the security of wireless networks. The basics of wireless communication systems (antennas and propagation, modulation, multiple access, channel modeling, specific security issues of the wireless link), jamming and countermeasures (spread spectrum technologies, channel coding, interleaving), authentication and confidentiality (basics of classic cryptography, common authentication and encryption algorithms). Detailed case studies on authentication, encryption and privacy flaws, and good practices based on the most common wireless technologies, including WiFi, GSM/3G, Bluetooth, and RFID. Individual or team-based class projects.

(Cross-listed with INFAS). (2-3) Cr. 3. S.

Prereq: COM S 321 or CPR E 381, COM S 352 or CPR E 308
Techniques and tools for understanding the behavior of software/hardware systems based on reverse engineering. Flaw hypothesis, black, grey, and white box testing as well as other methods for testing the security of software systems. Discussion of counter-reverse engineering techniques.

(3-0) Cr. 3. S.


Introduction to cyber security, cyber physical system (CPS), and smart grid automation technologies; supervisor control and data acquisition (SCADA) systems; cyber risk modeling, vulnerability analysis, impact analysis, defense and mitigation techniques; cyber security of wide-area monitoring, protection, and control; security and privacy in advanced metering infrastructure (AMI), cyber security compliance and best practices, CPS security test-beds and attack-defense hands-on laboratory experiments.

(3-0) Cr. 3.

Prereq: CPR E 489 or CPR E 530
Computer architectures and protocols designed for high-performance networking environments; software defined networking (SDN) and supporting protocols; cloud and data center networks; network traffic management and congestion control strategies; quality of service; high-speed access network protocols.

(3-0) Cr. 3. S.

Prereq: CPR E 489
Optical components and interfaces; optical transmission and reception techniques; wavelength division multiplexing; network architectures and protocol for first generation, single and multihop optical network; routing and wavelength assignment in second generation wavelength routing networks; traffic grooming, optical network control; survivability; access networks; metro networks.

(3-0) Cr. 3.

Prereq: Credit or enrollment in CPR E 489 or CPR E 530
Introduction to the protocol architecture of the data link layer, network layer and transport layer for wireless networking. Operation and management of Medium Access Control in Wireless Local Area Networks (WLAN) and Wireless Metropolitan Area Networks (WMAN); recent developments in IEEE 802.11 & 802.16 and Bluetooth; Mobile IP; Mobile TCP.

(Cross-listed with BCB, COM S, GDCB). (4-0) Cr. 4. F.

Prereq: MATH 165 or STAT 401 or equivalent
A practical, hands-on overview of how to apply bioinformatics to biological research. Recommended for biologists desiring to gain computational molecular biology skills. Topics include: sequence analysis, genomics, proteomics, phylogenetic analyses, ontology enrichment, systems biology, data visualization and emergent technologies.

(3-0) Cr. 3.

Prereq: CPR E 381
Faults and their manifestations, errors, and failures; fault detection, location and reconfiguration techniques; time, space, and information (coding) redundancy management; design for testability; self-checking and fail-safe circuits; system-level fault diagnosis; Byzantine agreement; stable storage and RAID; clock synchronization; fault-tolerant networks; fault tolerance in real-time systems; reliable software design; checkpointing and rollback recovery; atomic actions; replica management protocols; and reliability evaluation techniques and tools.

(3-0) Cr. 3.

Prereq: CPR E 489 or CPR E 530
Fundamental and well-known protocols for wireless ad hoc and sensor networks at various layers, including physical layer issues, MAC (medium access control) layer protocols, routing protocols for wireless ad hoc and sensor networks, data management in sensor networks, coverage and connectivity, localization and tracking, security and privacy issues. Introduction to TinyOS and the nesC language. Hands-on experiments with Crossbow Mote sensor devices.

(3-0) Cr. 3.


Analytical approach to resource allocation on communication networks (e.g. the Internet, multihop wireless networks, etc.). Network utility maximization and the internet congestion control algorithm. Layering as optimization decomposition: a cross-layer design approach in multihop wireless networks. Capacity of ad hoc wireless networks.

(Cross-listed with COM S). (3-0) Cr. 3.

Prereq: COM S 311 and either COM S 228 or COM S 208
Design and analysis of algorithms for applications in computational biology, pairwise and multiple sequence alignments, approximation algorithms, string algorithms including in-depth coverage of suffix trees, semi-numerical string algorithms, algorithms for selected problems in fragment assembly, phylogenetic trees and protein folding. No background in biology is assumed. Also useful as an advanced algorithms course in string processing.

(Dual-listed with CPR E 450). (3-0) Cr. 3.

Prereq: CPR E 308 or COM S 352
Fundamentals of distributed computing, software agents, naming services, distributed transactions, security management, distributed object-based systems, web-based systems, middleware-based application design and development, case studies of middleware and internet applications.

(Dual-listed with CPR E 454). (Cross-listed with COM S). (3-1) Cr. 3.

Prereq: COM S 311, COM S 352; for graduate credit: graduate standing or permission of instructor
Theoretical and practical issues of design and implementation of distributed systems. The client server paradigm, inter-process communications, synchronization and concurrency control, naming, consistency and replication, fault tolerance, and distributed file systems. Graduate credit requires additional in-depth study of concepts. Programming projects and written reports.

(3-0) Cr. 3.

Prereq: COM S 309
Design and analysis techniques scalable to large software, project-based learning of problem solving techniques, automation tools for high productivity and reliability of software, analysis-based measurement and estimation techniques for predictable software engineering.

(Cross-listed with COM S, M E). (3-0) Cr. 3. F.

Prereq: M E 421, programming experience in C
Fundamentals of computer graphics technology. Data structures. Parametric curve and surface modeling. Solid model representations. Applications in engineering design, analysis, and manufacturing.

(Dual-listed with CPR E 458). (3-0) Cr. 3.

Prereq: CPR E 308 or COM S 352
Fundamental concepts in real-time systems. Real time task scheduling paradigms. Resource management in uniprocessor, multiprocessor, and distributed real-time systems. Fault-tolerance, resource reclaiming, and overload handling. Real-time channel, packet scheduling, and real-time LAN protocols. Case study of real-time operating systems. Laboratory experiments.

(Cross-listed with COM S). Cr. 3.

Prereq: COM S 352 or CPR E 308, and COM S 486 or CPR E 489 or CPR E 530
Introduction to cloud computing concepts and systems. Security and privacy threats in cloud computing. Practical techniques for cloud computing security. Theoretical and practical solutions for secure outsourcing of data and computation. Oral presentations and research projects.

(Cross-listed with COM S, INFAS). Cr. 3. Alt. S., offered irregularly.

Prereq: CPR E 531; COM S 474 or COM S 573
Examination of applications of machine learning and big data techniques to various security and privacy problems, as well as secure and privacy-preserving machine learning algorithms.

(3-0) Cr. 3.

Prereq: CPR E 465
Physical design of VLSI systems. Partitioning algorithms. Placement and floorplanning algorithms. Routing-global and detailed. Layout compaction. Physical design of FPGA's and MCM's. Performance-driven layout synthesis.

(Cross-listed with BCB, COM S). (3-0) Cr. 3.

Prereq: COM S 228; COM S 330; credit or enrollment in BIOL 315, STAT 430
Biology as an information science. A review of the algorithmic principles that are driving the advances in bioinformatics and computational biology.

(Cross-listed with BBMB, BCB, COM S, GDCB). (3-0) Cr. 3. F.

Prereq: BCB 567, BBMB 316, GEN 409, STAT 430
Molecular structures including genes and gene products: protein, DNA and RNA structure. Structure determination methods, structural refinement, structure representation, comparison of structures, visualization, and modeling. Molecular and cellular structure from imaging. Analysis and prediction of protein secondary, tertiary, and higher order structure, disorder, protein-protein and protein-nucleic acid interactions, protein localization and function, bridging between molecular and cellular structures. Molecular evolution.

(Cross-listed with BCB, COM S, GDCB, STAT). (3-0) Cr. 3. S.

Prereq: BCB 567 or COM S 311, COM S 228, GEN 409, STAT 430
Algorithmic and statistical approaches in computational functional genomics and systems biology. Analysis of high throughput biological data obtained using system-wide measurements. Topological analysis, module discovery, and comparative analysis of gene and protein networks. Modeling, analysis, and inference of transcriptional regulatory networks, protein-protein interaction networks, and metabolic networks. Dynamic systems and whole-cell models. Ontology-driven, network based, and probabilistic approaches to information integration.

(Cross-listed with COM S, HCI). (3-0) Cr. 3. S.

Prereq: Graduate standing or permission of instructor
Statistical and algorithmic methods for sensing, recognizing, and interpreting the activities of people by a computer. Focuses on machine perception techniques that facilitate and augment human-computer interaction. Introduce computational perception on both theoretical and practical levels. Participation in small groups to design, implement, and evaluate a prototype of a human-computer interaction system that uses one or more of the techniques covered in the lectures.

(Cross-listed with COM S). (3-0) Cr. 3. F.

Prereq: CPR E 381
Quantitative principles of computer architecture design, instruction set design, processor architecture: pipelining and superscalar design, instruction level parallelism, memory organization: cache and virtual memory systems, multiprocessor architecture, cache coherency, interconnection networks and message routing, I/O devices and peripherals.

(3-0) Cr. 3.

Prereq: CPR E 381, CPR E 310 and STAT 330
Review of probability and stochastic processes concepts; Markovian processes; Markovian queues; renewal theory; semi-Markovian queues; queueing networks, applications to multiprocessor architectures, computer networks, and switching systems.

(Cross-listed with COM S). (3-0) Cr. 3.

Prereq: Background in computer architecture, design, and organization
Introduction to reconfigurable computing, FPGA technology and architectures, spatial computing architectures such as systolic and bit serial adaptive network architectures, static and dynamic rearrangeable interconnection architectures, processor architectures incorporating reconfigurabiltiy.

(3-0) Cr. 3.


Industry-standard tools and optimization strategies; practical embedded platforms and technology (reconfigurable platforms, multi-core platforms, low-power platforms); instruction augmentation, memory-mapped accelerator design, embedded software optimization. Students will be encouraged to compete as teams in an embedded system design competition.

(Cross-listed with HCI). (3-0) Cr. 3. Alt. S., offered odd-numbered years.

Prereq: knowledge of C/C++ programming language.
An introduction to the emerging interdisciplinary field of Developmental Robotics, which crosses the boundaries between robotics, artificial intelligence, developmental psychology, and philosophy. The main goal of this field is to create autonomous robots that are more intelligent, more adaptable, and more useful than the robots of today, which can only function in very limited domains and situations.

(3-0) Cr. 3.

Prereq: CPR E 489 or CPR E 530
Fundamentals of pervasive computing, including location and context awareness, mobile and location services, ubiquitous data access, low power computing and energy management, middleware, security and privacy issues.

(3-0) Cr. 3.

Prereq: CPR E 308
Hardware/software systems and codesign. Models of computation for embedded systems. System-level design. Modeling, specification, synthesis, and verification. Hardware/software implementation. Design space exploration. Performance analysis and optimization. Multiprocessor system on chip. Platform-based design. Design methodologies and tools. Case studies and design projects.

Cr. 1-6. Repeatable.


Formulation and solution of theoretical or practical problems in computer engineering.

Cr. 1-4. Repeatable.

Prereq: Permission of instructor
Projects or seminar in Computer Engineering.

(Cross-listed with E E). Cr. R. F.S.

Prereq: Electrical and Computer Engineering Graduate Student
Introduction to graduate study in Electrical and Computer Engineering at Iowa State University. Building networks, introduction to core requirements, and tools and techniques for success. Offered on a satisfactory-fail basis only. ECpE

Cr. arr. Repeatable.


Courses for graduate students:

(Cross-listed with COM S). (3-0) Cr. 3.

Prereq: CPR E 526
Algorithm design for high-performance computing. Parallel algorithms for multidimensional tree data structures, space-filling curves, random number generation, graph partitioning and load balancing. Applications to grid and particle-based methods and computational biology.

(Cross-listed with INFAS). (3-0) Cr. 3.

Prereq: INFAS 531, INFAS 532, INFAS 534
Capstone design course which integrates the security design process. Design of a security policy. Creation of a security plan. Implementation of the security plan. The students will attack each other's secure environments in an effort to defeat the security systems. Students evaluate the security plans and the performance of the plans. Social, political and ethics issues. Student self-evaluation, journaling, final written report.

(Cross-listed with COM S). (3-0) Cr. 3. Alt. S., offered odd-numbered years.

Prereq: CPR E 581. Repeatable with Instructor permission
Current topics in computer architecture design and implementation. Advanced pipelining, cache and memory design techniques. Interaction of algorithms with architecture models and implementations. Tradeoffs in architecture models and implementations.

(Cross-listed with E E). Cr. R. Repeatable.


One semester and one summer maximum per academic year professional work period. Offered on a satisfactory-fail basis only.

Cr. arr. Repeatable.