Course Prerequisites & Corequisites

Course Course Name Requirements
 
18-100 Introduction to Electrical and Computer Engineering
  • Corequisites: 21-120
18-202 Mathematical Foundations of Electrical Engineering
  • Prerequisites: 21122 with C or better
18-213 Introduction to Computer Systems
  • Prerequisites: 15-122 (Grade of C or higher is required in the prerequisites)
18-220 Electronic Devices and Analog Circuits
18-240 Structure and Design of Digital Systems
  • Prerequisite: 18-100
  • Corequisite: 21-127
18-290 Signals and Systems
18-300 Fundamentals of Electromagnetics
  • Prerequisite: 18-220 or equivalent
18-310 Fundamentals of Semiconductor Devices
  • Prerequisite: 18-220 (Note: the prerequisite is typically waived for MSE students who intend to pursue the Electronic Materials Minor)
18-320 Microelectronic Circuits
18-330 Introduction to Computer Security
18-340 Digital Arithmetic
  • Prerequisites: Course in logic design (18-240 or equivalent).This course is crosslisted with 18-640.
18-341 Logic Design and Verification
18-345 Introduction to Telecommunication Networks
  • Prerequisites: (36226 or 36212 or 36217) and (18-213)
18-349 Introduction to Embedded Systems
18-370 Fundamentals of Control
18-372 Fundamental of Electrical Power Systems
18-401 Electromechanics
18-402 Applied Electrodynamics
  • Prerequisite: 18-300 or equivalent.
18-403 Microfabrication Methods and Technology
18-411 Computational Techniques in Engineering
  • Prerequisites: Math sequence 21-120, 21-122, 21-259, 21-260 or equivalent; 15-100 or equivalent
18-412 Neural Technology: Sensing and Stimulation
  • Prerequisites: 18-220 or equivalent, or an understanding of basic circuits, differential equations, and electricity and magnetism. Some review of circuit theory will be provided for those who need it.
  • Anti-requisite: 18-612
18-413 Nano-Bio-Photonics
  • Prerequisites: Senior undergraduate or graduate standing, 18-300.Although students in 18-613 and 18-413 will share the same Lectures and Recitations. Students in 18-613 will receive distinct course projects. Students in 18-413 and 18-613 will be graded on separate curves.
18-418 Electric Energy Processing: Fundamentals and Applications
18-421 Analog Integrated Circuit Design
  • Prerequisites: 18-290 and 18-320 or equivalent background material with permission of the instructor.
18-422 Digital Integrated Circuit Design
  • Prerequisites: 18-240 and 18-320 or equivalent background material with permission of the instructor.
18-432 Senior Projects
  • Prerequisite: Senior standing in Electrical and Computer Engineering
18-441 Computer Networks
  • Prerequisites: (36226 or 36212 or 36217) and (18-213)
18-447 Introduction to Computer Architecture
18-451 Networked Cyber-Physical Systems
  • Prerequisites: 18-349 OR (18-213 AND 18-240) OR equivalent background material with permission of the instructor.
18-452 Wireless Networking and Applications
  • Prerequisites: 18-213 or 15-213 or 18-600 or equivalent background. C/C++ and/or Java programming skills are also needed for the project.
  • Anti-requisite: 18-750
18-460 Optimization
  • Prerequisites: 18-202 and 21241 and 36217 OR equivalent background material with permission of the instructor.
18-461 Introduction to Machine Learning for Engineers
  • Prerequisites: 18-202 and 15-122 and 36-217 and 21-127 Antirequisites: 10-401, 10-601, 10-701
  • Anti-requisites: 10-401, 10-601, 10-701
18-464 ULSI Technology Status and Roadmap for System on Chips and System in Package
18-474 Embedded Control Systems
  • Prerequisites: 18-213 and 1837
18-482 Telecommunications Technology and Policy for the Internet Age
  • Prerequisites: 73100
18-491 Fundamentals of Signal Processing
18-492 Special Topics in Speech Processing
  • Prerequisites: 15-211
18-493 Electroacoustics
18-496 Introduction to Biomedical Imaging and Image Analysis
18-500 ECE Design Experience
  • Prerequisites: Any two 18-xxx ECE Area courses and all four ECE sophomore core courses, 18-213, 18-220, 18-240 and 18-290.
18-510 Sensor Systems Design
18-525 Integrated Circuit Design Project
18-540 Rapid Prototyping of Computer Systems
18-545 Advanced Digital Design Project
18-549 Embedded Systems Design
18-551 Signal Processing System Design
  • Prerequisites: 18-491 AND one of 18-{348, 349, 370, 496, 792, 793, 794}
18-578 Mechatronic Design
18-587 Energy Conversion, Control, and Management
18-600A Foundations of Computer Systems
  • Anti-requisites: 15-213, 18-213, 15-513
18-600B Foundations of Computer Systems
  • Anti-requisites: 15213, 18-213, 15513
18-600C Foundations of Computer Systems
  • Anti-requisites: 15213, 18-213, 15513
18-600D Foundations of Computer Systems
  • Anti-requisites: 15213, 18-213, 15513
18-600RW Foundations of Computer Systems
  • Anti-requisites: 15-213, 18-213, 15-513
18-600SA Foundations of Computer Systems
  • Anti-requisites: 15213, 18-213, 15513
18-600SB Foundations of Computer Systems
  • Anti-requisites: 15213, 18-213, 15513
18-610 Fundamentals of Modern CMOS Devices
18-612 Neural Technology: Sensing and Stimulation
18-613 Nano-Bio-Photonics
  • Prerequisites: Senior undergraduate or graduate standing, 18-300.This course is cross listed with 18-413Although students in 18-613 and 18-413 will share the same Lectures and Recitations. Students in 18-613 will receive distinct course projects. Students in 18-413 and 18-613 will be graded on separate curves.
18-614 Microelectromechanical Systems
18-615 Micro and Nano Systems Fabrication
18-622 Advanced Digital Integrated Circuit Design
  • Prerequisites: 18-240 and 18-320 or equivalent background material with permission of the instructor.
18-623 Analog Integrated Circuit Design
  • Prerequisites: 18-290 and 18-320 or equivalent background material with permission of the instructor.
18-625 ULSI Mobile Platform and Server Product Design
  • Prerequisites: 18-664 or instructor permission
18-629D Special Topics in Circuits: IC Design for Wireless Communication Systems
18-631A Introduction to Information Security
  • Prerequisites: The course assumes a basic working knowledge of computers, networks, C and UNIX programming, as well as an elementary mathematics background, but does not assume any prior exposure to topics in computer or communications security. Students lacking technical background (e.g., students without any prior exposure to programming) are expected to catch up through self-study.
18-631RW Introduction to Information Security
  • Prerequisites: The course assumes a basic working knowledge of computers, networks, C and UNIX programming, as well as an elementary mathematics background, but does not assume any prior exposure to topics in computer or communications security. Students lacking technical background (e.g., students without any prior exposure to programming) are expected to catch up through self-study.
18-631SV Introduction to Information Security
  • Prerequisites: The course assumes a basic working knowledge of computers, networks, C and UNIX programming, as well as an elementary mathematics background, but does not assume any prior exposure to topics in computer or communications security. Students lacking technical background (e.g., students without any prior exposure to programming) are expected to catch up through self-study.
18-632 Introduction to Hardware Security
18-636 Browser Security
  • Prerequisites: Graduate standing or by instructor permission.
18-637A Wireless Network Security
  • Prerequisites: Graduate standing and (18-631 or 18-730 or 14-741) and (14-740 or 18-756 or 15-641)
18-638 Mobile Security
  • Prerequisites: Graduate standing and (18-631 or 18-730 or 14-741) and (14-740 or 18-756 or 15-641)
18-638SV Mobile Security
  • Prerequisites: Graduating standing and (14741 or 18-631 or 18-730) and (14740 or 15641 or 18-756)
18-639 Policies of the Internet
  • Prerequisite: None
18-640 Digital Arithmetic
  • Prerequisites: Course in logic design (18-240 or equivalent).This course is crosslisted with 18-340.
18-643 Reconfigurable Logic: Technology, Architecture and Applications
18-644 Special Topics in Computer Systems: Mobile Hardware for Software Engineers
  • Prerequisites: Some understanding of basic electronic terminology and Java programming required; C programming desired
18-644SV Special Topics in Computer Systems: Mobile Hardware for Software Engineers
  • Prerequisites: Some understanding of basic electronic terminology and Java programming required; C programming desired
18-646 Low-Power System-on-Chip Architecture
  • Prerequisites: 18-213 or 15213 or permission from the instructor
18-646SV Low-Power System-on-Chip Architecture
  • Prerequisites: 18-213 or 15213 or permission from the instructor
18-648 Real-Time Embedded Systems
18-649 Distributed Embedded Systems
  • Prerequisites: 18-348 or 18-349 and senior or graduate standing.
18-652 Foundations of Software Engineering
  • Prerequisites: Basic software development experience with proficiency in at least one modern programming language and modern programming concepts. Prior to admission, students must successful complete a programming assignment to demonstrate familiarity with required software technologies.
18-652RW Foundations of Software Engineering
  • Prerequisites: Basic software development experience with proficiency in at least one modern programming language and modern programming concepts. Prior to admission, students must successful complete a programming assignment to demonstrate familiarity with required software technologies.
18-652SA Foundations of Software Engineering
  • Prerequisites: Basic software development experience with proficiency in at least one modern programming language and modern programming concepts. Prior to admission, students must successful complete a programming assignment to demonstrate familiarity with required software technologies.
18-652SB Foundations of Software Engineering
  • Prerequisites: Basic software development experience with proficiency in at least one modern programming language and modern programming concepts. Prior to admission, students must successful complete a programming assignment to demonstrate familiarity with required software technologies.
18-653 Software Architecture and Design
18-653SV Software Architecture and Design
18-654SV Software Verification and Testing
  • Prerequisites: 18-652, 18-213 or 15513 , Basic software development experience and proficiency in at least one modern programming language. Java is the main programming language used in this course.
18-655 Service Oriented Computing
  • Prerequisites: Proficiency with either Java or Python programming language and in modern software development concepts.
  • Corequisites: 18-652
18-655SV Service Oriented Computing
  • Prerequisites: Proficiency with at least one modern programming language and in modern programming concepts.
  • Corequisites: 18-652
18-656SV Data Intensive Workflow Development for Software Engineers
18-657SV Decision Analysis and Engineering Economics for Software Engineers
  • Prerequisites: 36217 and 18-652
18-659SV Software Engineering Methods
  • Prerequisites: 18-652 or instructor permission.
18-660 Optimization
  • Prerequisites: 18-202 and 21241 and 36217 OR equivalent background material with permission of the instructor.
18-660SV Numerical Methods for Engineering Design and Optimization
  • Prerequisites: 18-202, 21-241, 36-217
18-661 Introduction to Machine Learning for Engineers
  • Anti-requisites: 10-401, 10-601, 10-701
18-661SV Introduction to Machine Learning for Engineers
  • Anti-requisites: 10-401, 10-601, 10-701
18-663 Hardware Architectures for Machine Learning
18-664 ULSI Technology Status and Roadmap for System on Chips and System in Package
  • Prerequisites: 18-422 Graduate standing or instructor permission
18-687 Analytical Performance Modeling & Design of Computer Systems
  • Prerequisites: 36-217
  • Anti-requisite: 15-857A
18-687SV Analytical Performance Modeling & Design of Computer Systems
  • Prerequisites: 36-217
  • Anti-requisite: 15-857A
18-690 Introduction to Neuroscience for Engineers
  • Prerequisites: 42-101 or 18-100 or equivalent
18-697 Statistical Discovery and Learning
  • Anti-requisites: 10-701 and 15-781
18-697SV Statistical Discovery and Learning
  • Anti-requisites: 10-701 and 15-781
18-698 Neural Signal Processing
  • Prerequisites: 18-290; 36-217, or equivalent introductory probability theory and random variables course; an introductory linear algebra course; senior or graduate standing. No prior knowledge of neuroscience is needed
18-701 Technical Writing for Engineers -- Linguistic Foundations
  • Prerequisites: ECE PhD standing is required
18-702 Technical Writing for Engineers: Genre Foundations
  • Prerequisites: ECE PhD standing is required
18-703 Managing and Leading Research and Development
  • Prerequisites: Graduate Student Status. IMB students may only take this course in their final year at Carnegie Mellon.
18-712 Elements of Photonics for Communication Systems
  • Prerequisites: 18-300 and 18-310 and (18-402 or 33-439) and senior or graduate standing.
18-715 Physics of Applied Magnetism
  • Prerequisite: 18-300 or equivalent background in electromagnetic fields; Senior level solid state physics and materials, or the equivalent, and a senior or graduate student standing.
18-721 Advanced Analog Integrated Circuits Design
  • Prerequisites: 18-623 and senior or graduate standing.
18-723 RF IC Design and Implementation
  • Prerequisites: 18-623 or 18-421 and senior or graduate standing.
18-725 Advanced Digital Integrated Circuit Design
18-730 Introduction to Computer Security
18-730PP Introduction to Computer Security
  • Prerequisites: 15-211 and senior or graduate standing.
18-730SV Introduction to Computer Security
18-731 Network Security
  • Prerequisites: 18-630 or 18-730 and senior or graduate standing.
18-731PP Network Security
  • Prerequisites: 18-630 or 18-730 and senior or graduate standing.
18-731RW Network Security
  • Prerequisites: 18-630 or 18-730 and senior or graduate standing.
18-731SV Network Security
  • Prerequisites: 18-630 or 18-730 and senior or graduate standing.
18-732 Secure Software Systems
  • Prerequisites: 18-730; Skills in operating systems and programming languages (C and Java), and senior or graduate standing.
18-732PP Secure Software Systems
  • Prerequisites: 18-730; Skills in operating systems and programming languages (C and Java), and senior or graduate standing.
18-732RW Secure Software Systems
  • Prerequisites: 18-730; Skills in operating systems and programming languages (C and Java), and senior or graduate standing.
18-732SV Secure Software Systems
  • Prerequisites: 18-730; Skills in operating systems and programming languages (C and Java), and senior or graduate standing.
18-733 Applied Cryptography
  • Prerequisites: 18-730 and senior or graduate standing.
18-733J Applied Cryptography
  • Prerequisites: 18-730 and senior or graduate standing.
18-733SV Applied Cryptography
  • Prerequisites: 18-730 and senior or graduate standing.
18-739A Special Topics in Security: Foundations of Security and Privacy
  • Prerequisites: An introductory course on computer security such as 18-487 or 18-730 is recommended but not required.
18-739C Special Topics in Security: Vulnerability, Defenses, and Malware Analysis
  • Prerequisites: 18-730 or equivalent introduction to computer security
18-739E Network Security and Management
  • Prerequisite: 14740 or 15641
18-739M Special Topics in Security: Formal Foundations of Software Security
  • Prerequisites: Computer science and engineering background for Phd students. MS students and undergraduates can be enrolled as per instructors’ approval.
18-741 Computer Networks
  • Prerequisites: (36226 or 36212 or 36217) and (18-213)
18-742 Computer Architecture and Systems
18-743 Energy Aware Computing
  • Prerequisites: Senior or graduate standing
18-743SV Energy Aware Computing
  • Prerequisites: Senior or Graduate Standing.
18-745 Rapid Prototyping of Computer Systems
  • Prerequisites: By permission of the instructors.
18-746 Storage Systems
18-747 Wireless Device Architecture
  • Prerequisites: Graduate standing
18-747SV Wireless Device Architecture
  • Prerequisites: Graduate standing
18-748 Wireless Sensor Networks
18-749 Building Reliable Distributed Systems
  • Prerequisites: Graduate standing or instructor permission
18-750 Wireless Networking and Applications
  • Prerequisites: 18-213 or 15-213 or 18-600 or equivalent background. C/C++ and/or Java programming skills are also needed for the project.
  • Anti-requisite: 18-452
18-751 Applied Stochastic Processes
  • Prerequisites: 18-290 and 36217
18-751RW Applied Stochastic Processes
  • Prerequisites: 18-290 and 36217
18-751SV Applied Stochastic Processes
  • Prerequisites: 18-290 and 36217
18-752 Estimation, Detection and Learning
  • Prerequisites: 36-217 and senior or graduate standing
18-753 Information Theory
  • Prerequisites: 36-217 and senior or graduate standing.
18-754 Error Control Coding
  • Prerequisites: 36-217 and 18-450
18-755 Networks in the Real World
  • Prerequisites: Senior or Graduate standing
18-756 Packet Switching and Computer Networks
  • Prerequisites: 18-345 and senior or graduate standing.
18-756G Packet Switching and Computer Networks
  • Prerequisites: 18-345 and senior or graduate standing.
18-756PP Packet Switching and Computer Networks
  • Prerequisites: 18-345 and senior or graduate standing.
18-756R Packet Switching and Computer Networks
  • Prerequisites: 18-345 and senior or graduate standing.
18-757 Network Management and Control
  • Prerequisites: A course in probability; 18-756 and senior or graduate standing.
18-757PP Network Management and Control
  • Prerequisites: A course in probability; 18-756 and senior or graduate standing.
18-758 Wireless Communications
  • Prerequisites: 36-217 or 36-225
18-759 Wireless Networks
18-759RW Wireless Networks
18-760 VLSI CAD: Logic to Layout
18-762 Circuit Simulation: Theory and Practice
  • Prerequisites: 18-320 and 21241
18-765 Digital Systems Testing and Testable Design
18-765PP Digital Systems Testing and Testable Design
18-771 Linear Systems
18-771PP Linear Systems
  • Prerequisite: 18-470 or 18-474, and graduate standing in CIT or MCS
18-771RW Linear Systems
  • Prerequisites: 18-470 or 18-474 and Graduate standing in CIT or MCS
18-771SV Linear Systems
18-776 Non Linear Control
18-777 Complex Large-Scale Dynamic Systems
  • Prerequisites: Senior or graduate standing
18-781 Speech Recognition and Understanding
  • Prerequisites: Sound mathematical background, knowledge of basic statistics, good computing skills. No prior experience with speech recognition is necessary. This course is primarily for graduate students in LTI, CS, Robotics, ECE, Psychology, or Computational Linguistics. Others by prior permission of instructor.
18-781SV Speech Recognition and Understanding
  • Prerequisites: Sound mathematical background, knowledge of basic statistics, good computing skills. No prior experience with speech recognition is necessary. This course is primarily for graduate students in LTI, CS, Robotics, ECE, Psychology, or Computational Linguistics. Others by prior permission of instructor.
18-782PP Machine Learning
  • Anti-requisites: 10-701 and 15-781 and 18-697
18-785 Data, Inference, and Applied Machine Learning
  • Prerequisites: None
18-785RW Data, Inference, and Applied Machine Learning
  • Prerequisites: None
18-790 Wavelets and Multiresolution Techniques
  • Prerequisite: 18-491. Students are expected to have a good background in basic engineering mathematics, signal processing and linear algebra.
18-791 Methods in Medical Imaging Analysis
  • Prerequisites: Knowledge of vector calculus, basic probability, and either C++ or python. Required textbook, "Machine Vision", ISBN: 052116981X; Optional textbook, "Insight to Images", ISBN: 9781568812175.
18-792 Advanced Digital Signal Processing
  • Prerequisites: 18-491 and 36-217
18-793 Image and Video Processing
18-793SV Image and Video Processing
18-794 Pattern Recognition Theory
  • Prerequisites: 36-217, or equivalent introductory probability theory and random variables course and an introductory linear algebra course and senior or graduate standing.
18-795 Bioimage Informatics
18-797 Machine Learning for Signal Processing
  • Prerequisites: Linear Algebra, Basic Probability Theory, Signal Processing and Machine Learning.
18-797RW Machine Learning for Signal Processing
  • Prerequisites: Linear Algebra, Basic Probability Theory, Signal Processing and Machine Learning.
18-797SV Machine Learning for Signal Processing
  • Prerequisites: Linear Algebra, Basic Probability Theory, Signal Processing and Machine Learning.
18-799J Special Topics in Signal Processing: Compressive sensing and sparse optimization
  • Prerequisites: 36-217 or Undergraduate linear algebra, probability. An introduction to convex optimization would be useful but not necessary as the necessary material will be taught as part of the course.
18-817 Applied Physics: Fundamentals of Semiconductors and Nanostructures
  • Prerequisites: 09-511, 09-701, 09-702, 18-303, 18-310, 18-402, 27-770, 33-225, 33-234 or familiarity with the material or basic concepts covered in these courses and senior or graduate standing.
18-842 Distributed Systems
18-842G Distributed Systems
18-842PP Distributed Systems
18-842T Distributed Systems
18-843 Mobile and Pervasive Computing
  • Prerequisites: 15-410 and senior or graduate standing.
18-843SV Mobile and Pervasive Computing
  • Prerequisites: 15-410 and senior or graduate standing.Cross-Listed: 14-841
18-845 Internet Services
18-847B Special Topics in Computer Systems: “Advanced Cloud Computing”
  • Prerequisites: 15-213, 18-213 or 15-513 from CMU, with a grade of at least a B
18-847C Special Topics in Computer Systems: Parallel, Heterogeneous, and Emerging Architectures
18-847F Special Topics in Computer Systems: Foundations of Cloud and Machine Learning Infrastructure
  • Prerequisites: Introductory Probability, Introductory Linear Algebra
18-847G Special Topics in Computer Systems: Computing for Engineers
18-847SH Special Topics in Computer Systems: Wireless Software System Architecture
  • Prerequisites: 18-600 or 18-349 or instructor’s permission.
18-858R 18-858 Special Topics in Communication: Telecommunications Policy in Developing Countries
  • Prerequisites: None
18-858R2 Special Topics in Communication: Networking Lab
  • Prerequisites: NoneCo-requisites: 04-641 or 14-740 or 18-756
  • Corequisites: 04-641 or 14-740 or 18-756
18-859G Special Topics in Communications: Wireless Networks and Mobile Systems: DARPA Spectrum Grand Challenge Edition
18-859RW Special Topics in Communication:  Telecommunications Policy in Developing Countries
  • Prerequisites: Graduate standing
18-875 Engineering and Economics of Electric Energy Systems
  • Prerequisites: Basic electric circuits and/or basic economics and at least graduate standing.
18-879C Special Topics in Systems and Controls: Optimal Control
18-879SC Special Topics in Systems and Controls: Optimal Control
18-898F Special Topics in Signal Processing: Intro to Data-science with Applications to Clinical Neural Data
  • Prerequisites: 18-290, 36-217 or equivalent, senior or graduate standing preferred; discuss suitability of background with the instructor
18-898G Special Topics in Signal Processing: Sparsity, Structure, and Inference
  • Prerequisites: Probability, linear algebra
18-899 A1 Special Topics in Signal Processing: Applied Time Series Analysis
  • Prerequisites: Mathematics, statistics, probability, programming
18-899 R1 Special Topics in Signal Processing: Applied Time Series Analysis
  • Prerequisites: Mathematics, statistics, probability, programming
18-899A3 Special Topics in Signal Processing: Data and Inference (DI)
  • Prerequisites: Background in a quantitative discipline (Engineering, Computer Science, Physics, Mathematics, Statistics); Programming.
18-899K3 Special Topics in Signal Processing: Data Analytics
  • Prerequisites: Data and Inference and Applied Machine Learning Mini-Courses; Background in quantitative discipline (Engineering, Computer Science, Physics, Mathematics, Statistics); Programming.
18-899K4 Special Topics in Signal Processing: Big Data Science
  • Prerequisites: Data and Inference and Applied Machine Learning Mini-Courses; Background in quantitative discipline (Engineering, Computer Science, Physics, Mathematics, Statistics); Programming.
18-899R3 Special Topics in Signal Processing: Data and Inference (DI)
  • Prerequisites: Background in quantitative discipline (Engineering, Computer Science, Physics, Mathematics, Statistics); Programming.
18-994 Internship for Electrical and Computer Engineering Graduate Students
  • Prerequisites: Graduate standing in ECE
18-995 Practicum in Electrical and Computer Engineering
  • Prerequisite: Approval of Department Head