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)

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) or (MATH 1650 or satisfactory scores on mathematics placement examinations)
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: ABE 1600 or AERE 1600 or CE 1600 or CHE 1600 or CPRE 1850 or EE 1850 or ENGR 1600 or IE 1600 or ME 1600 or SE 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 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)

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.

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

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 mobile applications. Mobile platforms and operating systems. Location and motion sensors. User interfaces. Threading and scheduling. Resource management - measurement and control techniques - for memory and energy. Client-server and cloud-backed application design. Mobile application testing, publishing, and maintenance. 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.

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

Prereq: (COMS 3630, CPRE 3150, CPRE 3080, COMS 3110, or COMS 3520) or Graduate Standing
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 or Graduate Standing
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 SE 4190).
Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Prereq: [(COMS 3630, COMS 3520, or CPRE 3080) and COMS 2280] or Graduate Standing
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.

(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, 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 3810 or COMS 3210) or Graduate Standing
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.

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

Prereq: CPRE/CYBE 3310
Introduction to forensics techniques used to investigate and analyze compromises in computers, networks, devices, and media. Focus on gathering, analyzing, and reporting on the collected evidence. Emphasis is on hands-on homework which include incident detection, response actions, compromise investigation, data collection, and after action reports.

(Cross-listed with CYBE 4370).
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. Graduation Restriction: Only One Of CPRE 4370 And CPRE 5370 May Count Toward Graduation For Undergraduate Students.

(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 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 CPRE 5800).
Credits: 4. Contact Hours: Lecture 3, Laboratory 3.

Prereq: (Credit or enrollment in CPRE 3810 or COMS 3210) or Graduate Standing
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)

Credits: 3. Contact Hours: Lecture 3.

Prereq: CPRE 2880 or COMS 3270 or Graduate Standing
Fundamental design problems and solution spaces of modern wireless systems across multiple layers, including physical-layer wireless transmission; link-layer framing and byte streams; Radio Access Network (RAN) architectures; core-network functions; mobility management; edge computing and mobile service delivery; interference, variability, mobility, and wireless resource management. Covers Wi-Fi, Bluetooth/WPAN, IoT protocols, satellite systems, and cellular networks (2G–5G), with cross-technology system-level architecture examples. Includes hands-on labs using wireless experimentation platforms. (Typically Offered: Spring)

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

Prereq: (Credit or enrollment in CPRE 3810 or COMS 3210) or Graduate Standing
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: (Credit or enrollment in CPRE 3810 or COMS 3210) or Graduate Standing
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 or Graduate Standing
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; Membership in the University Honors Program
Investigation of an approved topic.

(Cross-listed with EE 4920/ SE 4920/ CYBE 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, CYBE 4910 or SE 4910 and the evaluation of project results. Technical writing of final project report; oral presentation of project achievements; project poster. (Typically Offered: Fall, Spring)

Courses primarily for graduate students, open to qualified undergraduates:

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

Prereq: Graduate Standing or Permission of Instructor
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)

Credits: 3. Contact Hours: Lecture 3.

Prereq: Graduate Standing or Permission of Instructor
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.

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

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: CPRE 4300 or 5300
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.

Prereq: Graduate Standing or (MATH 2300/COMS 2300, MATH 3010, and CPRE 3100)
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 CYBSC 5360).
Credits: 3. Contact Hours: Lecture 3.

Prereq: CPRE 4890 or CPRE 4300 or CPRE 5300
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Credits: 3. Contact Hours: Lecture 3.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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 CPRE 4580).
Credits: 3. Contact Hours: Lecture 3.

Prereq: Graduate Standing or Permission of Instructor
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.

(Cross-listed with COMS 5600/ CYBSC 5600).
Credits: 3. Contact Hours: Lecture 3.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

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

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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. CPRE 3810 or equivalent computer architecture or computer organization course required. Note that this implies you have a familiarity with ISAs, basic computer organization, memory systems, digital logic design, basic programming (C and assembly), and command-line Linux. (Typically Offered: Fall)

Credits: 3. Contact Hours: Lecture 3.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

(Cross-listed with HCI 5850).
Credits: 3. Contact Hours: Lecture 3.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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.

Prereq: Graduate Standing or Permission of Instructor
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 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)

Credits: 1-30. Repeatable.

Prereq: Instructor Permission for Course