Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

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-100
Corequisites: 33142
18-224 Special Topics in Chip Design: Intro to Open-Source FPGA and ASIC Chip Design Prerequisite: 18-240
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-220
Corequisite: 18-240
18-334 Network Security Prerequisites: 15330 or 18-330
18-349 Introduction to Embedded Systems Prerequisites: 18-213 and 18-240
18-411 Computational Techniques for Data Science and 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-330 or 18-340 or 18-341 or 18-344 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-613 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 21-127 and 15-122 and (21325 or 36225 or 36218 or 36217 or 36219) or equivalent
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-475 Autonomous Control Systems Prerequisites: 18-290
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-495 Speech Technology for Conversational AI Prerequisites: 15211
18-525 Advanced Digital Integrated Circuit Design Prerequisites: (18-213 and 18-220 and 18-240 and 18-290 and 18-422) OR (18-213 and 18-220 and 18-240 and 18-290 and 18-622) OR (18-213 and 18-220 and 18-240 and 18-290 and 18-623)
18-540 Rapid Prototyping of Computer Systems Prerequisites: (18-491 or 18-370 or 18-320) and (18-340 or 18-341 or 18-349) and (18-213) and (18-220) and (18-240) and (18-290)
18-578 Mechatronic Design Prerequisites: (18-320 and 18-348) or (15313 and 18-348) or (18-348 and 18-370) or (18-349 and 18-370) or (15313 and 18-349) or (18-320 and 18-349) 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-613SA Foundations of Computer Systems Anti-requisites: 15213, 18-213, 14513, 15513
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 Spring 2024 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-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-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-660 Optimization Prerequisites: (18-202) and (36218 or 36225 or 36217 or 36219 or 21325) and (21241)
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 36219 or 36218 or 36217
18-662RW Principles and Engineering Applications of AI Prerequisites: 18-751 or 36219 or 36218 or 36217
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 (was 18-523 before Fall 2005) and senior or graduate standing.
18-725 Advanced Digital Integrated Circuit Design Prerequisites: 18-622 or 18-623 or 18-422
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-733 Applied Cryptography Prerequisites: 18-631 or 14741 or 18-330 or 18-730
18-733SA Applied Cryptography Prerequisites: 18-631 or 14741 or 18-330 or 18-730
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-613 or 18-447
18-743 Neuromorphic Computer Architecture & Processor Design Prerequisites: 18-740
18-743SV Neuromorphic Computer Architecture & Processor Design Prerequisites: 18-740
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-756
Corequisites: 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