# 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 |
Prerequisites: 18-100Corequisites: 18-202 and 33-142 |

18-240 | Structure and Design of Digital Systems |
Prerequisite: 18-100Corequisite: 21-127 |

18-290 | Signals and Systems |
Prerequisites: 18-100Corequisites: 18-202 |

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 |
Prerequisite: 18-220Corequisite: 18-240 |

18-330 | Introduction to Computer Security |
Prerequisites: 18-213 or 15213Anti-requisites: 18-631 or 18-730 |

18-334 | Network Security |
Prerequisites: 15330 or 18-330 |

18-335 | Secure Software Systems |
Prerequisites: 15330 or 18-330 |

18-340 | Hardware Arithmetic for Machine Learning |
Prerequisites: Course in logic design (18-240 or equivalent).This course is crosslisted with 18-640. |

18-341 | Logic Design and Verification |
Prerequisites: 18-240 |

18-349 | Introduction to Embedded Systems |
Prerequisites: 18-240 and 18-213Anti-requisites: 18-342 and 18-348 |

18-370 | Fundamentals of Control |
Prerequisite: 18-290 |

18-372 | Fundamental of Electrical Power Systems |
Prerequisites: 18-202 and 18-220 |

18-401 | Electromechanics |
Prerequisite: 18-300 |

18-402 | Applied Electrodynamics |
Prerequisite: 18-300 or equivalent. |

18-403 | Microfabrication Methods and Technology |
Prerequisites: 18-310 |

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-416 | Nano-Bio-Photonics |
Prerequisites: 18-300 |

18-418 | Electric Energy Processing: Fundamentals and Applications |
Prerequisite: 18-220 |

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 |
Prerequisites: 18-240 and 18-213 and (18-340 or 18-341 or 18-348 or 18-349 or 18-320) |

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-127Antirequisites: 10-401, 10-601, 10-701Anti-requisites: 10-401, 10-601, 10-701 |

18-464 | ULSI Technology Status and Roadmap for System on Chips and System in Package |
Prerequisites: 18-320 or 18-422 |

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 |
Prerequisite: 18-290 |

18-493 | Electroacoustics |
Prerequisite: 18-220 and 18-290 |

18-496 | Introduction to Biomedical Imaging and Image Analysis |
Prerequisites: 18-290 |

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-540 | Rapid Prototyping of Computer Systems |
Prerequisites: (18-320 or 18-370 or 18-491) and (18-340 or 18-341 or 18-349) |

18-578 | Mechatronic Design |
Prerequisites: (18-348 or 18-349) and (18-320 or 18-370 or 15313) or (18-320 and 18-370) |

18-587 | Energy Conversion, Control, and Management |
Prerequisites: (18-491 or 18-370 or 18-372 or 18-418) and (18-348 or 18-349) |

18-610 | Fundamentals of Modern CMOS Devices |
Prerequisites: 18-310. |

18-612 | Neural Technology: Sensing and Stimulation |
Anti-requisite: 18-412 |

18-613 | Foundations of Computer Systems |
Anti-requisites: 15213, 18-213, 14513, 15513, 18-600In Fall 2019 this course is broadcast to the Silicon Valley campus. ECE Silicon Valley students attend classes synchronously with students in Pittsburgh. |

18-614 | Microelectromechanical Systems |
Prerequisites: 18-300 or 18-310 or 18-320 or 24-351 |

18-615 | Micro and Nano Systems Fabrication |
Prerequisites: 18-310 |

18-616 | Nano-Bio-Photonics |
Prerequisites: 18-300 |

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 |
Prerequisites: 18-623 |

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-631B | 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.In Fall 2019 this course is broadcast to the Silicon Valley campus. ECE Silicon Valley students attend classes synchronously with students in Pittsburgh. |

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.In Fall 2019 this course is broadcast to the Silicon Valley campus. ECE Silicon Valley students attend classes synchronously with students in Pittsburgh. |

18-632 | Introduction to Hardware Security |
Prerequisites: C in 18-240 AND (C in 18-341 OR C in 18-447) |

18-632SV | Introduction to Hardware Security |
Prerequisites: C in 18-240 AND (C in 18-341 OR C in 18-447) |

18-637A | Wireless Security |
Prerequisites: (18-730 or 18-631 or 14741 or 15330 or 18-330) and (15641 or 18-741 or 18-441 or 14760 or 18-756 or 14740) |

18-637SV | Wireless Security |
Prerequisites: (18-730 or 18-631 or 14741 or 15330 or 18-330) and (15641 or 18-741 or 18-441 or 14760 or 18-756 or 14740) |

18-640 | Hardware Arithmetic for Machine Learning |
Prerequisites: Course in logic design (18-240 or equivalent).This course is crosslisted with 18-340. |

18-643 | Reconfigurable Logic: Technology, Architecture and Applications |
Prerequisites: 18-341 or 18-447 |

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 |
Prerequisites: (15213 or 18-213 or 18-243) and (18-447) *Minimum grade of "C" in all |

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 |
Corequisites: 18-655Antirequisites: 17655, 49787Anti-requisites: 17655, 49787 |

18-653SV | Software Architecture and Design |
Corequisites: 18-655Antirequisites: 17655, 49787Anti-requisites: 17655, 49787Anti-requisites: 17655, 49787 17655, 49787 |

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.In Fall 2019 this course is broadcast to the Silicon Valley campus. ECE Silicon Valley students attend classes synchronously with students in Pittsburgh. |

18-655SV | Service Oriented Computing |
Prerequisites: Proficiency with either Java or Python programming language and in modern software development concepts.In Fall 2019 this course is broadcast to the Silicon Valley campus. ECE Silicon Valley students attend classes synchronously with students in Pittsburgh. |

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-663 | Hardware Architectures for Machine Learning |
Prerequisites: (18-461 OR 18-661 OR 10-401 OR 10-601 OR 10-701) AND (18-447 OR 18-340) |

18-663SV | Hardware Architectures for Machine Learning |
Prerequisites: (18-461 OR 18-661 OR 10-401 OR 10-601 OR 10-701) AND (18-447 OR 18-340) |

18-664 | ULSI Technology Status and Roadmap for System on Chips and System in Package |
Prerequisites: 18-422 Graduate standing or instructor permission |

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-725 | Advanced Digital Integrated Circuit Design |
Prerequisites: 18-422 and 18-447 |

18-730 | Introduction to Computer Security |
Anti-requisites: 18-631 and 18-487In Fall 2019 this course is broadcast to the Silicon Valley campus. ECE Silicon Valley students attend classes synchronously with students in Pittsburgh. |

18-730SV | Introduction to Computer Security |
Anti-requisites: 18-631 and 18-487In Fall 2019 this course is broadcast to the Silicon Valley campus. ECE Silicon Valley students attend classes synchronously with students in Pittsburgh. |

18-732RW | Secure Software Systems |
Prerequisites: 18-730; Skills in operating systems and programming languages (C and Java), 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-739SV | 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-741 | Computer Networks |
Prerequisites: (36226 or 36212 or 36217) and (18-213) |

18-742 | Computer Architecture and Systems |
Prerequisites: 18-600 or 18-447 and senior or graduate standingAnti-requisites: 18-847C |

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 |
Prerequisite: 18-213 OR 15-213 OR 14-513 OR 15-513 OR 18-600 OR 18-613 |

18-747SV | Wireless Device Architecture |
Prerequisites: Graduate standing |

18-748 | Wireless Sensor Networks |
Prerequisites: 18-348 or 18-349 or 15-410 |

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-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-757 | 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 |
Prerequisites: (15441 or 18-345) and (18-391) |

18-759RW | Wireless Networks |
Prerequisites: (15441 or 18-345) and (18-391) |

18-760 | VLSI CAD: Logic to Layout |
Prerequisites: 15-214 and 18-240 and 18-320 |

18-762 | Circuit Simulation: Theory and Practice |
Prerequisites: 18-320 and 21241 |

18-765 | Digital Systems Testing and Testable Design |
Prerequisites: 18-240 and 15-210 and (18-340 or 18-341) Senior or graduate standing required. |

18-771 | Linear Systems |
Prerequisites: 18-370 or 18-474 |

18-771RW | Linear Systems |
Prerequisites: 18-470 or 18-474 and Graduate standing in CIT or MCS |

18-776 | Non Linear Control |
Prerequisite: 18-771 |

18-777 | Complex Large-Scale Dynamic Systems |
Prerequisites: Senior or graduate standing |

18-782PP | Machine Learning |
Anti-requisites: 10-701 and 15-781 and 18-697 |

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-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-794RW | 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. 36217 |

18-795 | Bioimage Informatics |
Prerequisites: 18-290 |

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-819D | Special Topics in Applied Physics: Nonlinear Optics and Photonics |
Prerequisites: 18-300 and 18-310 and (18-402 or 33-439) and senior or graduate standing. |

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 |
Prerequisites: 18-213 or 18-600 or 15213 or 15513 |

18-846SV | Wireless Systems Design Experience |
Prerequisites: (18-743 or 18-747 or 18-859) and (18-637 or 18-741 or 18-750 or 18-748) and (18-741 or 18-744) |

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 |
Prerequisites: 18-447 |

18-847F | Special Topics in Computer Systems: Foundations of Cloud and Machine Learning Infrastructure |
Prerequisites: Introductory Probability, Introductory Linear Algebra |

18-847SH | Special Topics in Computer Systems: Wireless Software Systems Architecture |
Prerequisites: 18-600 or 18-349 or instructor’s permission. |

18-858R2 | Special Topics in Communication: Networking Lab |
Prerequisites: NoneCo-requisites: 04-641 or 14-740 or 18-756Corequisites: 04-641 or 14-740 or 18-756 |

18-875 | Engineering and Economics of Electric Energy Systems |
Prerequisites: Basic electric circuits and/or basic economics and at least graduate standing. |

18-883C3 | Special Topics in Energy Systems: Advanced Energy Control Center Applications |
Prerequisites: 18-372 or 19472 |

18-883C4 | Special Topics in Energy Systems: Electric Power Distribution Analysis |
Prerequisites: 18-372 or 19472 |

18-883M1 | Special Topics in Energy Systems: Applied Smart Grid Telecoms |
Prerequisites: 18-618 OR 18-875 OR permission of instructor(students should have domain knowledge of power systems) |

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-899R3 | Special Topics in Signal Processing: Data and Inference (DI) |
Prerequisites: Background in quantitative discipline (Engineering, Computer Science, Physics, Mathematics, Statistics); Programming. |