Computer Engineering (CPRE)

View PDF

Expand all courses

Courses

Courses primarily for undergraduates:

(Cross-listed with CYBSC 1310).
Credits: 1. Contact Hours: Lecture 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.

Credits: 1. Contact Hours: Lecture 1.

Applied introduction to computer programming for engineering students. Topics include variables and objects, control flow, iteration and looping, string processing, and file input/output. Modern software development practices, tooling, and testing. Individual programming assignments and projects. (Typically Offered: Fall, Spring, Summer)

(Cross-listed with EE 1660).
Credits: Required. Contact Hours: Lecture 1.

(1-0) Overview of the nature and scope of electrical engineering and computer engineering professions. Overview of portfolios. Departmental rules, advising center operations, degree requirements, program of study planning, career options, and student organizations. Offered on a satisfactory-fail basis only. (Typically Offered: Fall, Spring)

Credits: 1. Contact Hours: Lecture 1.

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. (Typically Offered: Fall)

Credits: 3. Contact Hours: Lecture 2, Laboratory 2.

Prereq: MATH 1430 or satisfactory scores on mathematics placement examinations; credit or enrollment in MATH 1650
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. Satisfactory placement scores can be found at: https://math.iastate.edu/academics/undergraduate/aleks/placement/. Graduation Restriction: Only one of ENGR 1600, ABE 1600, AERE 1600, BME 1600, CE 1600, CHE 1600, CPRE 1850, EE 1850, IE 1480, ME 1600, and SE 1850 may count towards graduation.

Credits: 1. Contact Hours: Laboratory 2.

Prereq: CPRE 1850
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. (Typically Offered: Spring)

(Cross-listed with CYBE 2300).
Credits: 3. Contact Hours: Lecture 2, Laboratory 2.

Prereq: COMS 2270 or EE 2850 or MIS 2070
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. (Typically Offered: Fall)

(Cross-listed with CYBE 2310).
Credits: 3. Contact Hours: Lecture 2, Laboratory 2.

Prereq: CPRE 2300 or CYBE 2300
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. (Typically Offered: Spring)

(Cross-listed with EE 2320).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 2270 or EE 2850
Professional and ethical issues in electrical and computer engineering. Soft skills, including communication and leadership skills, and how they relate to the engineering profession. Case studies illustrating ethical decision making in an engineering context and differentiating between moral and professional ethics. Issues of diversity, equity, and inclusion in the engineering profession.

(Cross-listed with CYBE 2340).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 2270 or EE 2850 or MIS 2070
Emphasizes legal, ethical, and professional issues in cyber systems. Other topics include privacy, government regulation, and compliance as applied to professional practice. Guest lecturer from government and industry, as well as discussions including current legal and ethical issues found in the main stream. (Typically Offered: Spring)

(Cross-listed with EE 2610).
Credits: Required. Contact Hours: Lecture 1.

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.

Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

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. (Typically Offered: Fall, Spring)

Credits: 3. Contact Hours: Laboratory 2, Lecture 2.
Repeatable.

Prereq: ENGR 1600
Fundamentals of cyber-physical systems, including introduction to digital systems design, embedded platforms and programming, sensing and actuation, and performance analysis. Introduction to data communication concepts, including systems-level view of signal processing and electronic circuits, networking standards and protocols. Laboratory exercises with embedded circuits, signals, and measurement applications. (Typically Offered: Fall)

Credits: 4. Contact Hours: Lecture 3, Laboratory 2.

Prereq: CPRE 2810, COMS 2070 or COMS 2270 or EE 2850
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. (Typically Offered: Fall, Spring)

(Cross-listed with EE 2940).
Credits: Required. Contact Hours: Lecture 1.

Prereq: CPRE 1660 or EE 1660
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.

Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Prereq: COMS 3210 or CPRE 3810
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. (Typically Offered: Fall, Spring)

Credits: 3. Contact Hours: Lecture 2, Discussion 1.

Prereq: COMS 2280
Propositional logic and methods of proof; basic discrete structures; mathematical induction and recurrence relations; functions and relations; and counting; trees and graphs; applications in computer engineering. (Typically Offered: Fall, Spring)

(Cross-listed with SE 3290).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 3090
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 EE 3300).
Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Prereq: CPRE 2810; EE 2010; credit or concurrent enrollment in EE 2300
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 CYBE 3310).
Credits: 3. Contact Hours: Lecture 2, Laboratory 2.

Prereq: CPRE 2310 or CYBE 2310
Basic cryptographic underpinnings used in modern cyber security encryption suites. Encryption benefits to cyber security and its use in protocols. Topics include cryptographically secure hash functions and pseudorandom numbers, key distribution techniques, secure authentication including single sign on. Detection and prevention of security threats such as covert communication, malicious code, and other security threats in protocols are included. In addition to laboratory experiments and exercises, students complete a project focused on cyber security problem and solution. Graduation Restriction: Only one of CPRE/CYBE 3310 and CPRE 4310 may count towards graduation. (Typically Offered: Fall, Spring)

(Cross-listed with CYBSC 3320).
Credits: 1. Contact Hours: Laboratory 2.
Repeatable.

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. (Typically Offered: Spring)

(Cross-listed with SE 3390).
Credits: 3. Contact Hours: Lecture 3.

Prereq: SE 3190
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.

Credits: 4. Contact Hours: Lecture 3, Laboratory 2.

Prereq: CPRE 2880
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. (Typically Offered: Fall, Spring)

Credits: 4. Contact Hours: Lecture 3, Laboratory 2.

Prereq: CPRE 2880
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 EE 3940).
Credits: Required. Contact Hours: Lecture 1.

Prereq: CPRE 2940 or EE 2940
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.

(Dual-listed with COMS 5120). (Cross-listed with COMS 4120/ SE 4120).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 3110; (STAT 3050 or STAT 3300 or STAT 3410)
A study of formal techniques for model-based specification and verification of software systems. Topics include logics, formalisms, graph theory, numerical computations, algorithmsand tools for automatic analysis of systems. Graduate credit requires in--depth study of concepts.

Credits: 4. Contact Hours: Lecture 3, Laboratory 2.

Prereq: COMS 3630 or CPRE 3150 or CPRE 3080 or COMS 3110 or COMS 3520
Introduction to different perspectives of the “data universe” and trade-offs when choosing an appropriate perspective. Impact of the concept(s) of analytics – from raw data, through its storage/representation, to interacting and querying (linguistic/interface issues). Focused studies on 3-4 different domains, followed by generalization of the concepts/abstractions and preparing the students for the next course in this realm, targeting different domains/problems. Understanding the dependencies between problem-domain needs and the data properties, and their impact on choosing appropriate analytics tools (and how/why those tools were developed and exist in the manners that they do). In addition, the students will be exposed to (limited selection of) internals of such tools. (Typically Offered: Fall)

(Cross-listed with SE 4160).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 3090
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 EE 4180).
Credits: 4. Contact Hours: Lecture 3, Laboratory 2.

Prereq: EE 2300, EE 3110
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. (Typically Offered: Fall)

(Cross-listed with SE 4190).
Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Prereq: COMS 3630 or COMS 3520 or CPRE 3080; COMS 2280
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 SE 4210).
Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Fall, Spring)

(Cross-listed with COMS 4240/ MATH 4240).
Credits: 3.

Prereq: (MATH 2650; [MATH 2070 OR MATH 3170]) or permission of instructor
Unix, serial programming of scientific applications, OpenMP for shared-memory parallelization. No Unix, Fortran or C experience required. (Typically Offered: Fall)

(Cross-listed with COMS 4250).
Credits: 3. Contact Hours: Lecture 2, Laboratory 2.

Prereq: COMS 3110 and ENGL 2500 and SPCM 2120
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 CPRE 5260/ COMS 5260). (Cross-listed with COMS 4260).
Credits: 4. Contact Hours: Lecture 3, Laboratory 2.

Prereq: CPRE 3080 or COMS 3210 and CPRE 3150 or COMS 3110
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. (Typically Offered: Fall)

(Dual-listed with CPRE 5300/ CYBSC 5300). (Cross-listed with CYBSC 4300).
Credits: 3. Contact Hours: Lecture 3.

Prereq: (CPRE 3080 or COMS 2520 or COMS 3520) OR CPRE 2880
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.

Credits: 3. Contact Hours: Lecture 3.

Prereq: Credit or enrollment in CPRE 3080 or COMS 3520
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, SSL/TLS, and related protocols. Ethics and legal issues in information security. Wireless security. Programming and system configuration assignments. Graduation Restriction: This course can not be used towards any requirements for the Cyber Security Degree or Minor. Only one of CPRE/CYBE 3310 and CPRE 4310 may count towards graduation. (Typically Offered: Spring)

(Cross-listed with EE 4350).
Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Prereq: EE 3300
Basic analog integrated circuit and system design including design space exploration, performance enhancement strategies, operational amplifiers, references, integrated filters, and data converters. (Typically Offered: Spring)

(Cross-listed with CYBE 4370X).
Credits: 3. Contact Hours: Lecture 3.

With communication and network services and applications increasingly leveraging wireless media, the importance of information and network security in the wireless domain continues to grow. The challenges of providing secure communication and network services are considerably more difficult in wireless environments than in traditional wired systems (e.g., the Internet), so the focus of the course will be purely wireless covering both networking issues and security aspects of modern wireless environments. Fundamentals of mobile LANs and WANs, ad hoc, sensor networks/internet of things and cloud, mobile IP/TCP, confidentiality, key establishment, authentication, broadcasting, RFIDs, and rogue attacks.

(Cross-listed with CYBE 4400).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 3520 or CPRE 3080
Focus on fundamentals and advanced topics in operating system (OS) security. Design issues, principles, mechanisms, and good practice for design and implementation of secure computer/OS systems. Threat models, vulnerabilities, attacks compromise security, and advanced OS-level techniques for achieving security. Topics include OS security concepts and principles, seminal security in Multics, vulnerabilities in ordinary systems, secure capability systems, information flow control, mandatory access control, security kernels, memory protection, file system, virtual machine systems, hardware/architecture support (e.g., Intel SGX) for OS security, secure microkernel OSes (e.g., seL4, QNX), modern mobile operating systems (e.g., Android and iOS), and security from end-user perspective. Assignments include labs exploring and implementing the technologies in the context of the Linux, Android, and seL4 systems (some involving kernel programming). (Typically Offered: Spring)

(Dual-listed with CPRE 5500).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 3520 or CPRE 3080
Fundamentals of distributed computing, software agents, naming services, distributed transactions, security management, distributed object-based systems, web-based systems, Blockchain, middleware-based application design and development, case studies of middleware and internet applications.

(Dual-listed with COMS 5540/ CPRE 5540). (Cross-listed with COMS 4540).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 3110 and COMS 3520 or CPRE 3080
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 CPRE 5580).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 3520 or CPRE 3080
Fundamental concepts in real-time systems. Real time task scheduling paradigms. Resource management in uniprocessor, multiprocessor, and distributed real-time systems. Energy management in real-time systems and sensor networks. Fault-tolerance and overload handling in real-time systems. Real-time channel, QoS routing, traffic policing, packet scheduling, and real-time LAN protocols. Case study of real-time and IoT applications. Term project in real-time systems and networks.

(Dual-listed with COMS 5590/ CPRE 5590). (Cross-listed with COMS 4590X).
Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Fall)

(Cross-listed with EE 4650).
Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Prereq: EE 3300
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. (Typically Offered: Fall)

(Dual-listed with CPRE 5800).
Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Prereq: COMS 3210 or CPRE 3810
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. (Typically Offered: Spring)

(Dual-listed with CPRE 5870).
Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Prereq: COMS 3210 or CPRE 3810
Introduction to hardware architectures for machine learning. Full system view – machinelearning frameworks to hardware interface to hardware architecture. General purpose CPU extensions for machine learning. GPU extensions for machine learning. Spatial architec-tures for machine learning. Performance, energy, and accuracy trade-offs. Hardware designoptimizations for machine learning, including quantization, data re-use, SIMD, and SIMT. Lab section will culminate with the design and evaluation of an application-specific machinelearning accelerator.

Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Prereq: COMS 3210 or CPRE 3810
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.

Credits: 4. Contact Hours: Lecture 3, Laboratory 2.

Prereq: CPRE 2880 or COMS 3270
Modern computer networking and data communications concepts. OSI reference model, TCP/IP architecture. Sockets programming. Protocols at the physical layer, data link layer, network layer, transport layer, and application layer. Software-defined networking. (Typically Offered: Fall, Spring)

Credits: 1-30. Repeatable.

Prereq: Instructor Permission for Course
Investigation of an approved topic.

Credits: 1-30. Repeatable.

Prereq: Senior classification in computer engineering; Instructor Permission for Course
Investigation of an approved topic.

(Cross-listed with EE 4910/ SE 4910).
Credits: 3. Contact Hours: Lecture 2, Laboratory 3.

Prereq: CPRE or CYBE or EE major: Credit or enrollment in CPRE 3080 or EE 3220, ENGL 3140 or ENGL 3140H or ENGL 3090, (CPRE 3940 or EE 3940) or CPRE 2320 or (CPRE 2340 or CYBE 2340). SE major: SE 3170 and SE 3390, ENGL 3140 or ENGL 3140H or ENGL 3090. Co-req: CPRE 3080 or COMS 3520
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. (Typically Offered: Fall, Spring)

(Cross-listed with EE 4920/ SE 4920).
Credits: 2. Contact Hours: Lecture 1, Laboratory 3.

Prereq: CPRE 4910 or EE 4910
Second semester of a team design project experience. Emphasis on the successful implementation and demonstration of the design completed in EE 4910, CPRE 4910, or SE 4910 and the evaluation of project results. Technical writing of fil project report; oral presentation of project achievements; project poster. (Typically Offered: Fall, Spring)

(Cross-listed with EE 4940).
Credits: Required. Contact Hours: Lecture 1.

Prereq: CPRE 2320 or EE 2320 or CYBE 2340; credit or concurrent enrollment in CPRE 4910 or EE 4910
Portfolio update and evaluation. Portfolios as a tool to enhance career opportunities. Offered on a satisfactory-fail basis only.

Courses primarily for graduate students, open to qualified undergraduates:

(Cross-listed with COMS 5110).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 3110 or Graduate Classification
A study of algorithm design and analysis techniques. Network flows and linear programming. Randomized algorithms. NP-completeness. Approximation algorithms. Fixed-parameter algorithms.

(Dual-listed with COMS 4130/ SE 4130). (Cross-listed with COMS 5130).
Credits: 3. Contact Hours: Lecture 3.

Prereq: (COMS 3270 or CPRE 2880); COMS 3420 or Graduate Classification
Algorithms, AI techniques and tools for automatically reasoning about code and program executions. Theory and foundations related to control flow analysis, dataflow analysis, abstract interpretation, and symbolic execution. Applications of program analysis to bug detection, test input generation, debugging, program repair, specification inference and trustworthy AI engineering. Concepts, algorithms, tools, benchmarks, methodologies for solving problems using program analysis and for preparing research in program analysis.

(Cross-listed with EE 5220).
Credits: 3. Contact Hours: Lecture 3.

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. Offered irregularly. (Typically Offered: Fall)

(Cross-listed with COMS 5250/ MATH 5250).
Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Spring)

(Dual-listed with CPRE 4260/ COMS 4260). (Cross-listed with COMS 5260).
Credits: 4. Contact Hours: Lecture 3, Laboratory 2.

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. (Typically Offered: Fall)

(Cross-listed with COMS 5270).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 3520 or CPRE 3080
Fundamentals and advances in HPC in the context of GPUs, TPUs, multicore and HPC systems with specific focus on parallel programming models. Discussing of high-performance computing, GPGPU, scaling deep neural network training and machine learning algorithms, high-performance deep learning, intersection of HPC and AI for HPC, distributed parallel training, engineering parallel software and parallel design patterns.

Credits: 3. Contact Hours: Lecture 3.

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 EE 5290).
Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Spring)

(Dual-listed with CPRE 4300/ CYBSC 4300). (Cross-listed with CYBSC 5300).
Credits: 3. Contact Hours: Lecture 3.

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 CYBSC 5310).
Credits: 3. Contact Hours: Lecture 3.

Computer, software, and data security: basic cryptography, security policies, multilevel security models, attack and protection mechanisms, legal and ethical issues.

(Cross-listed with CYBSC 5320).
Credits: 3. Contact Hours: Lecture 3.

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 cyber security. Emphasis on laboratory experiments. (Typically Offered: Spring)

(Cross-listed with CYBSC 5330/ MATH 5330).
Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Spring)

(Cross-listed with POLS 5340/ CYBSC 5340).
Credits: 3. Contact Hours: Lecture 3.

Legal and ethical issues in computer security. State and local codes and regulations. Privacy issues. (Typically Offered: Spring)

(Cross-listed with MATH 5350/ CYBSC 5350).
Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Spring)

(Cross-listed with CYBSC 5360).
Credits: 3. Contact Hours: Lecture 3.

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.

Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Spring)

(Cross-listed with CYBSC 5380).
Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Spring)

Credits: 3. Contact Hours: Lecture 3.

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 (WAMPAC); security and privacy in advanced metering infrastructure (AMI), cyber security compliance and industry best practices, CPS security test-beds and attack-defense hands-on laboratory experiments. (Typically Offered: Spring)

Credits: 3. Contact Hours: Lecture 3.

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.

Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Spring)

Credits: 3. Contact Hours: Lecture 3.

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 5440/ COMS 5440/ GDCB 5440).
Credits: 4. Contact Hours: Lecture 3, Laboratory 2.

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. Offered odd-numbered years. (Typically Offered: Fall)

Credits: 3. Contact Hours: Lecture 3.

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.

Credits: 3. Contact Hours: Lecture 3.

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.

Credits: 3. Contact Hours: Lecture 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.

Credits: 3. Contact Hours: Lecture 3.

Cyber-physical systems applications in smart agriculture, transportation, power grid, manufacturing, public safety, health systems, etc.; field area and control networks; industrial Ethernet; time-triggered communication; real-time wireless networks; wireless industrial networks; safety and security of industrial networks; systems platforms for cyber-physical systems networks; team-based learning/projects.

(Dual-listed with CPRE 4500).
Credits: 3. Contact Hours: Lecture 3.

Fundamentals of distributed computing, software agents, naming services, distributed transactions, security management, distributed object-based systems, web-based systems, Blockchain, middleware-based application design and development, case studies of middleware and internet applications.

(Dual-listed with COMS 4540/ CPRE 4540). (Cross-listed with COMS 5540).
Credits: 3. Contact Hours: Lecture 3.

Prereq: COMS 3110 and (COMS 3520 or CPRE 3080) or Graduate Classification
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.

Credits: 3. Contact Hours: Lecture 3.

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 COMS 5570/ ME 5570).
Credits: 3. Contact Hours: Lecture 3.

Fundamentals of computer graphics technology. Data structures. Parametric curve and surface modeling. Solid model representations. Applications in engineering design, analysis, and manufacturing. Offered odd-numbered years. (Typically Offered: Fall)

(Dual-listed with CPRE 4580).
Credits: 3. Contact Hours: Lecture 3.

Fundamental concepts in real-time systems. Real time task scheduling paradigms. Resource management in uniprocessor, multiprocessor, and distributed real-time systems. Energy management in real-time systems and sensor networks. Fault-tolerance and overload handling in real-time systems. Real-time channel, QoS routing, traffic policing, packet scheduling, and real-time LAN protocols. Case study of real-time and IoT applications. Term project in real-time systems and networks.

(Dual-listed with COMS 4590X/ CPRE 4590X). (Cross-listed with COMS 5590).
Credits: 3. Contact Hours: Lecture 3.

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 COMS 5600/ CYBSC 5600).
Credits: 3. Contact Hours: Lecture 3.

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. Offered irregularly. (Typically Offered: Spring)

Credits: 3. Contact Hours: Lecture 3.

Fundamentals and techniques to design and implement software systems. Assessment of security vulnerabilities in software systems, exploitation of software vulnerabilities, and methods to secure vulnerable software. Secure coding practices, data analytics for security, microservices and cloud services security. Reverse engineering and security assessment of cyber-physical systems. (Typically Offered: Fall, Spring)

Credits: 3. Contact Hours: Lecture 3.

Focus on how to keep valuable digital data (e.g., scientific computations, financial transactions, family photos) safely in modern computer systems. Fundamentals of data storage technologies including state of the art. Topics include storage hardware, Linux file systems, and warehouse-scale big data storage, with an emphasis on the design tradeoffs for robustness and security. Team projects based on high-impact open-source systems.

Credits: 3. Contact Hours: Lecture 3.

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 5670/ COMS 5670).
Credits: 3. Contact Hours: Lecture 3.

Biology as an information science. A review of the algorithmic principles that are driving the advances in bioinformatics and computational biology.

(Cross-listed with BCB 5690/ COMS 5690/ BBMB 5690/ GDCB 5690).
Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Fall)

(Cross-listed with COMS 5700/ BCB 5700/ GDCB 5700/ STAT 5700).
Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Spring)

(Cross-listed with COMS 5750/ HCI 5750).
Credits: 3. Contact Hours: Lecture 3.

This class covers statistical and algorithmic methods for sensing, recognizing, and interpreting the activities of people by a computer. This semester we will focus on machine perception techniques that facilitate and augment human-computer interaction. The main goal of the class is to 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. (Typically Offered: Spring)

(Dual-listed with CPRE 4800).
Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

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. (Typically Offered: Spring)

(Cross-listed with COMS 5810).
Credits: 3. Contact Hours: Lecture 3.

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. (Typically Offered: Fall)

Credits: 3. Contact Hours: Lecture 3.

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 COMS 5830).
Credits: 3. Contact Hours: Lecture 3.

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.

Credits: 3. Contact Hours: Lecture 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 5850).
Credits: 3. Contact Hours: Lecture 3.

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. Offered odd-numbered years. (Typically Offered: Spring)

Credits: 3. Contact Hours: Lecture 3.

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.

(Dual-listed with CPRE 4870).
Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Introduction to hardware architectures for machine learning. Full system view – machinelearning frameworks to hardware interface to hardware architecture. General purpose CPU extensions for machine learning. GPU extensions for machine learning. Spatial architec-tures for machine learning. Performance, energy, and accuracy trade-offs. Hardware designoptimizations for machine learning, including quantization, data re-use, SIMD, and SIMT. Lab section will culminate with the design and evaluation of an application-specific machinelearning accelerator.

Credits: 3. Contact Hours: Lecture 3.

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.

Credits: 1-6. Repeatable.

Prereq: Instructor Permission for Course
Formulation and solution of theoretical or practical problems in computer engineering.

Credits: 1-4. Contact Hours: Lecture 4.
Repeatable.

Prereq: Instructor Permission for Course
Seminar in Computer Engineering.

Credits: 1-3. Repeatable, maximum of 6 credits.

Prereq: Instructor Permission for Course
Investigation of an approved topic commensurate with the student's prerequisites. (Typically Offered: Fall, Spring, Summer)

(Cross-listed with EE 5980).
Credits: Required. Contact Hours: Lecture 1.

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. Graduation Restriction: ECpE. Offered on a satisfactory-fail basis only.

Credits: 1-30. Repeatable.

Prereq: Instructor Permission for Course

Courses for graduate students:

(Cross-listed with COMS 6260).
Credits: 3. Contact Hours: Lecture 3.

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 CYBSC 6310).
Credits: 3. Contact Hours: Lecture 1.
Repeatable.

Practical experience in cyber operations. Cyber security threat analysis, malware analysis, and intrusion detection management. Cyber security data analysis methods. Pen testing tools and techniques. Weekly threat analysis briefings. Offered on a satisfactory-fail basis only.

(Cross-listed with CYBSC 6320).
Credits: 3. Contact Hours: Lecture 3.

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 COMS 6490).
Credits: 3. Contact Hours: Lecture 3.

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.

(Cross-listed with COMS 6810).
Credits: 3. Contact Hours: Lecture 3.

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. Offered odd-numbered years. (Typically Offered: Spring)

(Cross-listed with EE 6970).
Credits: Required. Repeatable.

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

Credits: 1-30. Repeatable.

Prereq: Instructor Permission for Course