# Course Prerequisites & Corequisites

Course | Course Name | Requirements |
---|---|---|

18-100 | Introduction to Electrical and Computer Engineering |
Corequisites: 21120 |

18-200 | ECE Sophomore Seminar |
Prerequisites: 18-100 |

18-202 | Mathematical Foundations of Electrical Engineering |
Prerequisites: C in 21122 |

18-213 | Introduction to Computer Systems |
Prerequisites: C in 15122 |

18-220 | Electronic Devices and Analog Circuits |
Prerequisites: 18-100Corequisites: 33142 |

18-240 | Structure and Design of Digital Systems |
Prerequisites: 18-100 |

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

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-334 | Network Security |
Prerequisites: 15330 or 18-330 |

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

18-411 | Computational Techniques in Engineering |
Prerequisites: Math sequence 21-120, 21-122, 21-259, 21-260 or equivalent; 15-100 or equivalent |

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

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-462 | Principles and Engineering Applications of AI |
Prerequisites: 18-751 OR 36217 OR 36218 OR 36219; minimum grade B |

18-474 | Embedded Control Systems |
Prerequisites: 18-213 and 1837 |

18-482 | Telecommunications Technology and Policy for the Internet Age |
Prerequisites: 73100 |

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

18-491 | Fundamentals of Signal Processing |
Prerequisite: 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-612 | Neural Technology: Sensing and Stimulation |
Anti-requisite: 18-412 |

18-613 | Foundations of Computer Systems |
Anti-requisites: 15213, 18-213, 14513, 15513 |

18-613RW | Foundations of Computer Systems |
Anti-requisites: 15213, 18-213, 14513, 15513 |

18-613SV | Foundations of Computer Systems |
Anti-requisites: 15213, 18-213, 14513, 15513 |

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

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

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-631 | 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-636 | Browser Security |
Prerequisites: Graduate Standing or instructor permission. Previous experience with security, e.g., completing an Introduction to Security course. Working knowledge of programming is required and Web development knowledge is preferred. |

18-636SV | Browser Security |
Prerequisites: Graduate Standing or instructor permission. Previous experience with security, e.g., completing an Introduction to Security course. Working knowledge of programming is required and Web development knowledge is preferred. |

18-637 | 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-638 | Mobile 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-641 | Design Patterns for Smart Phone Development |
Prerequisites: Graduate Standing; a previous course in programming, or equivalent experience and consent of the instructor. |

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-645 | How to Write Fast Code I |
Prerequisite: Senior ECE or CS undergraduate student or higher, solid C programming skills. |

18-645SV | How to Write Fast Code I |
Prerequisite: Senior ECE or CS undergraduate student or higher, solid C programming skills. |

18-657SV | Decision Analysis and Engineering Economics for Software Engineers |
Prerequisites: 36217 and 18-652RW or 18-652SA or 18-652SB |

18-658SV | Software Requirements and Interaction Design |
Corequisite: 18-652RW or 18-652SA or 18-652SB |

18-659SV | Software Engineering Methods |
Prerequisite: 18-652RW or 18-652SA or 18-652SB |

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-662 | Principles and Engineering Applications of AI |
Prerequisites: 18-751 OR 36217 OR 36218 OR 36219; minimum grade B |

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-709 | Advanced Cloud Computing |
Prerequisites: 18-213 or 15213 or 14513 or 15513 or 15619 or 18-600 or 18-613, minimum grade B (enforced) |

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 OR 18-622 OR 18-623, minimum grade B. Or instructor permission. |

18-730 | Introduction to Computer Security |
Anti-requisites: 18-631 and 18-487 |

18-730SV | Introduction to Computer Security |
Anti-requisites: 18-631 and 18-487 |

18-731RW | Network Security |
Prerequisite: 18-630 OR 18-730, 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-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: AI/ML and Cybersecurity: Challenges, Opportunities, and Applications |
Prerequisites: 14-741 OR 18-631 OR 18-730 OR 18-487. If you do not meet the prereqs, please contact the instructor. |

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 standing |

18-743 | Neuromorphic Computer Architecture & Processor Design |
Prerequisites: 18-740 |

18-743SV | Neuromorphic Computer Architecture & Processor Design |
Prerequisites: 18-740 |

18-745 | Rapid Prototyping of Computer Systems |
Prerequisites: By permission of the instructors. |

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-752 | Estimation, Detection and Learning |
Prerequisites: 36-217 and senior or graduate standing |

18-754 | Error Control Coding |
Prerequisites: 36-217 and 18-450 |

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

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

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

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-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-787 | Data Analytics |
Prerequisites: 18-785 |

18-789 | Deep Generative Modeling |
Prerequisites: 18-461 or 18-661 |

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-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-797 | Machine Learning for Signal Processing |
Prerequisites: Linear Algebra, Basic Probability Theory, Signal Processing and Machine Learning. 18-797 is a cross listing of 11-755 offered by LTI. |

18-797RW | Machine Learning for Signal Processing |
Prerequisites: Linear Algebra, Basic Probability Theory, Signal Processing and Machine Learning. 18-797 is a cross listing of 11-755 offered by LTI. |

18-797SV | Machine Learning for Signal Processing |
Prerequisites: Linear Algebra, Basic Probability Theory, Signal Processing and Machine Learning. 18-797 is a cross listing of 11-755 offered by LTI. |

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-819E | Special Topics in Applied Physics: Elements of Quantum Communications and Networks |
Prerequisites: 21-341 or familiarity with Linear Algebra |

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: Modern Computer Systems |
Prerequisites: 15-213, 18-213 or 15-513 from CMU, with a grade of at least a B |

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-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. |

18-994 | Internship for Electrical and Computer Engineering Graduate Students |
Prerequisites: Graduate standing in ECE |