Department of Electrical and Computer Engineering

Lawrence Pileggi, Coraluppi Head and Tanoto Professor

James Bain, Associate Head, Academic Affairs

Shawn Blanton, Associate Head, Research

Tamal Mukherjee, Associate Head, Students
www.ece.cmu.edu

The field of electrical and computer engineering encompasses a remarkably diverse and expanding set of technologies, including embedded systems, intelligent physical systems, real-time software, distributed computing, mobile computing, cloud computing, digital signal processing, integrated circuits and electronics, computer architecture, intelligent robotic systems, computer-based control systems, telecommunications, computer networking, wireless communication systems, signal and information processing, multimedia systems, solid state physics and devices, microelectromechanical systems, electromagnetic and electromechanical systems, and data storage systems. The extraordinary advances in these technologies during the last 50 years have impacted nearly every aspect of human society. These advances have led to new products and markets such as “smart” cars, cell phones and mobile computing systems, and advanced medical systems for imaging, diagnosis, testing, and monitoring. These systems and products have served to enhance our quality of life as well as fueled today’s global economy. In short, the field of electrical and computer engineering has become central to life as we know it.

The Department of Electrical and Computer Engineering at Carnegie Mellon University is actively pioneering education and research at the forefront of this evolving field. Our undergraduate curriculum includes intensive classroom, laboratory, and hands-on learning, including new initiatives in ethics (Empathy, Ethics, and Human Factors), making and building, and Artificial Intelligence. We offer experiential hands-on labs where students create new solutions for industrial and societal problems through courses like the popular Hacker Fab, Space Flight, VLSI, and ones with a cross-disciplinary focus (i.e., agriculture). Advancing AI software and hardware and embracing its use in the classroom and as the overarching management of our systems and lab projects has also become a pillar of our department. 

Society is placing increasing demands on engineers to apply their skills in new contexts, cross traditional boundaries between disciplines, and intelligently evaluate the broader consequences of their actions. Our curriculum is designed to produce world-class engineers who can meet these challenges. We educate our graduates for successful careers in today’s global economy, whether they pursue employment or further education after completion of their degree.

Educational Outcomes and Objectives

The B.S. in Electrical and Computer Engineering is a broad and highly flexible degree program structured to provide students with a rich and comprehensive view of the profession. Minimal curriculum constraints enable every student to construct their own unique program of study that fits their professional goals. Students are encouraged to explore multiple areas of theory and application. Our program is accredited by the Engineering Accreditation Commission of ABET,  https://www.abet.org, under the commission’s General Criteria and Program Criteria for Electrical, Computer, Communications, Telecommunication(s) and Similarly Named Engineering Programs. The Faculty of Electrical and Computer Engineering have adopted the following outcomes from ABET and have established the following objectives for the B.S. in Electrical and Computer Engineering curriculum:

Student Outcomes

  1. An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
  2. An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors
  3. An ability to communicate effectively with a range of audiences
  4. An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts
  5. An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives
  6. An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
  7. An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

ECE program Educational Objectives

The ECE program objectives are shown below. They represent our vision for what our students will be doing in their engineering careers five years after they have graduated. The principal behaviors we seek to foster in our students are expertise, innovation and leadership.
Our graduates will be:

Experts
  • They will solve problems by applying ECE fundamentals
  • Their solutions will reflect depth of understanding in their sophistication.
  • Their solutions will reflect breadth of understanding by drawing on multiple disciplines.
Innovators
  • They will demonstrate creativity in their engineering practice.
  • They will consider holistic systems-oriented approaches in their designs.
  • They will think strategically in their planning and execution.
Leaders
  • They will take initiative, and demonstrate resourcefulness.
  • They will collaborate in multidisciplinary teams.
  • They will be leaders in their organizations, their profession and in society.
Three dimensions of objectives for our graduates: Leaders, Experts, and Innovators

Three dimensions of objectives for our graduates.

 

Curriculum Overview

The B.S. in Electrical and Computer Engineering is a broad and highly flexible ABET-accredited degree program offered on the Pittsburgh campus. It is structured to provide students with the smallest set of constraints consistent with a rich and comprehensive view of the profession. Students are encouraged and stimulated to explore multiple areas of theory and application from across the 5 principal undergraduate areas of Electrical and Computer Engineering. The sample curriculum highlights the flexibility of our curriculum while meeting the requirements listed below.

MINIMUM TOTAL UNITS REQUIRED FOR B.S. IN ELECTRICAL AND COMPUTER ENGINEERING379

For detailed information and regulations of the curriculum along with the degree requirements and the most recent version of the ECE curriculum and course descriptions, please refer to the ECE Academic Guide.

University Requirement

Units
99-101Core@CMU3
 3

CIT Requirements (see CIT section of the catalog for specifics):

Units
CIT General Education72
21-120Differential and Integral Calculus10
21-122Integration and Approximation10
One other introductory engineering course (generally taken during the first year)12
33-141Physics I for Engineering Students12
33-142Physics II for Engineering and Physics Students12
15-112Fundamentals of Programming and Computer Science12
 140

GENERAL TECHNICAL REQUIREMENTS:

Units
Two Math/Science electives 118
Probability Requirement
21-325Probability9
or 36-219 Probability Theory and Random Processes
or 36-225 Introduction to Probability Theory
18-202Mathematical Foundations of Electrical Engineering 212
21-127Concepts of Mathematics 312
or 21-128 Mathematical Concepts and Proofs
15-122Principles of Imperative Computation 412
 63

1The Math/Science Electives may be satisfied by any course in The Mellon College of Science or the Department of Statistics except for: 100-level courses in Mathematics or Statistics, and courses designed for non-science or engineering majors, such as (but not limited to) 03-132, 09-103, 09-104, 21-240, 21-257, 21-261, 21-350, 33-115, 33-120, 33-124, 33-106, 33-107, 36-200, 36-201, 36-202, 36-203, 36-207, 36-208, 36-209, 36-210, 36-247, 36-309, and 36-310. Mathematics courses of particular interest to students in ECE are: 21-228 Discrete Mathematics, 21-241 Matrices and Linear Transformations, 21-259 Calculus in Three Dimensions, and 21-260 Differential Equations.

2This course can also be substituted by a combination of two of the following courses: 21-241, 21-242, 21-254, 21-259, 21-260, 21-268.  Note that the combined total will therefore be 18 units.

3Effective Fall 2022. Prior to Fall 2022, 21-127 was 10 units.

4Effective Summer 2023. Prior to Summer 2023, 15-122 was 10 units.

ECE COURSE requirements:

For detailed information and regulations along with the degree requirements and the most recent version of the ECE curriculum and course descriptions, please refer to the ECE Academic Guide.

Units
ECE CORE COURSES
18-100Introduction to Electrical and Computer Engineering12
18-200ECE Sophomore Seminar1
18-213Introduction to Computer Systems12
18-220Electronic Devices and Analog Circuits12
18-240Structure and Design of Digital Systems12
18-290Signals and Systems12
ECE AREA COURSES
Two Area Courses from 1 of the 5 Areas within ECE24
One additional Area Course from a second Area12
ECE COVERAGE COURSES
One Coverage Course (any additional ECE course or Approved CS course as listed on the ECE web site) 12
ECE CAPSTONE DESIGN
Any 18-5xx course12
 121
FREE ELECTIVES52 units (typ)*

*For most students, the curriculum above will result in a remainder of 52 units of free electives to achieve the 379 required total units.

A Free Elective is defined as any graded course offered by any academic unit of the university. The large number of units without categorical constraints provides the student, in consultation with their Advisor or Mentor, with the flexibility to design a rich educational program.

Up to 9 units of Student Taught Courses (StuCo) and Physical Education courses, or other courses taken as Pass/Fail, may also be used toward Free Electives.

Transfer of courses from other premier universities may be accepted through submission of the Transfer Credit Request form on the CIT web page. Please see the CIT website for further information regarding the process.

Sample Curriculum

The table below shows a possible roadmap through our broad and flexible curriculum. The ECE Academic Guide provides further alternatives.

For First-Year requirements, please see the CIT section of the catalog for specifics.

First-YearSecond-Year
FallSpringFallSpring
18-100 Introduction to Electrical and Computer EngineeringIntroductory Engineering Course18-200 ECE Sophomore Seminar18-2xx ECE Core course
15-112 Fundamentals of Programming and Computer Science *33-141 Physics I for Engineering Students *18-2xx ECE Core Course15-122 Principles of Imperative Computation
21-120 Differential and Integral Calculus *21-122 Integration and Approximation21-127 Concepts of Mathematics or 18-202 Mathematical Foundations of Electrical Engineering18-202 Mathematical Foundations of Electrical Engineering or 21-127 Concepts of Mathematics
76-101 Interpretation and ArgumentGeneral Education course33-142 Physics II for Engineering and Physics Students36-219 Probability Theory and Random Processes
99-101 Core@CMUGeneral Education courseGeneral Education course
39-210 Experiential Learning I39-220 Experiential Learning II

Third-YearFourth-Year
FallSpringFallSpring
18-2xx ECE Core course18-2xx ECE Core course18-xxx ECE Coverage course18-5xx ECE Capstone Design course
18-3xx/4xx ECE Area 1 course (first course in Area)18-3xx/4xx ECE Area course (either 2nd course from Area 1 or the Area 2 course)18-3xx/4xx ECE Area course (either 2nd course from Area 1 or the Area 2 course)General Education course
Math/Science Elective 1Math/Science Elective 2General Education courseFree Electives as needed
General Education courseGeneral Education courseFree ElectiveFree Elective as needed
Free ElectiveFree ElectiveFree ElectiveFree Elective as needed
39-310 Experiential Learning III

*Note on AP credit:

Students who have AP credit for Calculus and/or Physics courses are encouraged to take 21-127 and/or 18-202. 

Students who have AP credit for Computer Science A are encouraged to first take 21-127, then to take 15-122.

Academic Policies

Policy on ECE Coverage Courses with Fewer than 12 Units

The basic curriculum requirements for Area courses, Coverage and Capstone Design are stated in terms of courses rather than units. The nominal total of 60 units for these categories is determined by assuming that each course is 12 units. In the event that courses with fewer than 12 units are used to satisfy some or all of these requirements, additional courses from the ECE coverage lists must be taken until the total units in ECE courses beyond the core meets or exceeds 60 units. Any ECE coverage course is acceptable, and any excess units beyond the required 60 may be counted as free elective credit.

Prerequisite Grade Requirements

Many ECE courses require a prerequisite course or courses. In most cases, the minimum grade required in a prerequisite to proceed on to the next course is a C. All prerequisites are listed in the registration system.

QPA Requirement and Overload Policy

An overload is defined as any schedule with more than 54 units in one semester.  A student will only be permitted to overload by 12 units if she or he achieved an overall QPA of at least 3.5 out of 4.0. If the student's overall QPA is below a 3.5, then the QPA of the previous semester for which he or she is registering will instead be utilized. If that QPA is at least a 3.5 then the student will be permitted to Overload.

Grade Policy for Math Courses

1. CIT states that all mathematics (21-xxx) courses required* for the engineering degree taken at Carnegie Mellon must have a minimum grade of C in order to be counted toward the graduation requirement for the BS engineering degree.

2. A minimum grade of C must be achieved in any required mathematics (21-xxx) course that is a prerequisite for the next higher level required mathematics (21-xxx) course.

3. In addition, ECE requires that 18-202 Mathematical Foundations of Electrical Engineering must be completed with a grade of C or better.

*Elective mathematics courses (like the math/science electives required for ECE) are not included in this policy

Pass/Fail policy

Up to 9 units of StuCo and/or Physical Education courses or other courses taken as Pass/Fail may be used toward Free Electives.  ECE core courses may not be taken as pass/fail.  ECE project-based courses (including capstone design courses) may not be taken pass/fail.  No ECE requirements may be fulfilled using a pass/fail course (except for 99-10x and 18-200)

Other Graduation Requirements

To be eligible to graduate, undergraduate students must complete all course requirements for their program with a cumulative Quality Point Average of at least 2.0. For undergraduate students who enrolled at Carnegie Mellon as freshmen and whose freshman grades cause the cumulative QPA to fall below 2.0, this requirement is modified to be a cumulative QPA of at least 2.0 for all courses taken after the freshman year. Note, however, the cumulative QPA that appears on the student's final transcript will be calculated based on all grades in all courses taken, including freshman year. Students are encouraged to confirm all graduation requirements with their academic advisor.

CIT has the following requirement for graduation. “Students must complete the requirements for their specified degrees with a cumulative quality point average of 2.00 or higher for all courses taken after the freshman year [this is the CIT QPA on the Academic Audit]. In addition, a student is expected to achieve a cumulative quality point average of 2.00 in a series of core departmental courses.” 

In ECE, this means that the student must complete 18-100 Introduction to Electrical and Computer Engineering, ECE Core, Area Courses, Coverage, and Capstone Design courses with a minimum QPA of 2.0 to graduate. When more than one possibility exists for meeting a specific requirement (e.g., Area Course), the courses used for calculating the ECE QPA will be chosen so as to maximize the QPA. Similarly, when an ECE course is retaken, the better grade will be used in the computation of the minimum QPA for the ECE QPA requirement to graduate.

Other Opportunities in ECE

Integrated M.S./B.S. Degrees Program

The Integrated Master’s/Bachelor’s program (otherwise known as the IMB program) is an exciting opportunity for students who excel academically to achieve not just a Bachelor’s degree in ECE, but also a Master’s degree--through our Professional MS degree program--without needing to apply separately.  This means no application fee, and no need to take the GRE (Graduate Record Exam). In order to be awarded the MS degree in the IMB program, the student must also earn their BS degree, either simultaneously with the MS degree or at least one semester prior to the awarding of the MS degree. If a course is eligible for the MS degree but must be used to complete the BS degree, the BS degree takes priority over the MS degree.

If a student is at least a 2nd semester junior, has completed at least 270 units and has at least an overall 3.00 QPA, he or she is guaranteed admission into the Professional MS degree in ECE through the IMB program. To be officially admitted, the student must complete the IMB Program form.

If a student does not meet the exact overall 3.00 QPA requirement, he or she is eligible to petition for his or her admission into the IMB program during his or her senior year. Students may obtain the petition forms through a meeting with their assigned academic advisor.

Professional MS Degree Requirements:

Please see the ECE web site for the requirements for the Professional MS degree.  For students in the ECE IMB program, all requirements for the Professional MS degree are in addition to the requirements for the BS in ECE.  No requirements for the MS degree may be used in any way toward the BS degree, including minors, additional majors or dual degrees.

Transition to graduate status:

Policies regarding completion and certification of the BS degree can be found on the Office of Enrollment Management's Standard Degree Requirements & Degree Certification webpage. Once the BS degree is certified, a student will be in graduate status for the subsequent term of enrollment. If a student takes more than 8 semesters to complete the BS degree, then he or she must be in graduate status for at least one semester before graduating with the MS degree. Once a student’s undergraduate degree has been certified, no more courses may then be applied toward the BS degree. This includes courses toward minors and additional majors, although students pursuing an undergraduate dual degree with another department may still continue to apply additional coursework toward that second degree. Students should consult with Enrollment Services to understand how entering graduate status will affect financial aid, and with their academic advisor to determine a course schedule.

Teaching Assistantships

Teaching Assistants are a vital part of successful ECE course delivery. All ECE students will receive an email each semester when applications open for the upcoming semester, typically around the date the Schedule of Classes is published. Students are encouraged to communicate with the faculty of any course(s) they are interested in supporting, who can discuss the course expectations and staffing needs. Please see the ECE Teaching Assistantship website for further information regarding these opportunities and how to apply.

Research Assistantships

ECE considers experiential learning opportunities to be important educational options for its students. One such opportunity is participating in research projects with faculty, which can be done either for academic credit or for pay. ECE students have access to the department's Student Project Tracker to review available projects and apply. Further information and the link to apply can be found on the undergraduate research webpage.

ECE Cooperative Education Program

Our Cooperative Education Program invites students to gain valuable experience in employment that relates directly to their major and career goals. At the same time, it provides employers with opportunities to evaluate students as potential full-time employees, while having them complete meaningful projects. Participation in this program is voluntary, and obtaining a cooperative education assignment is competitive.

Due to federal restrictions on student work experiences, international students are not eligible for co-ops. Please visit the ECE CPT page for information regarding international student internships.

The co-op experience

We require a minimum of eight months of co-op experience to identify the work experience as a co-op. Students must have minimally completed their sophomore year to qualify for application to a co-op and should connect with their Academic Advisor for information on how to apply. While on co-op assignment, students are participating in a recognized CIT educational program, retaining their full-time student status, akin to our students who study abroad in established exchange programs (such as EPFL) for one or two semesters. The Cooperative Education Program agreement may be discontinued if the employers do not provide the students with career-related work experience or if the students do not meet the accepted level of performance as defined by the employers. 

Upon returning to Carnegie Mellon, the students are required to submit for approval the following two documents to the ECE Undergraduate Office: a three to five page technical report of the Co-Op work, and a one page assessment and evaluation of the Co-Op experience.

Students may obtain more detailed information through the ECE department or the Career and Professional Development Center.

Course Descriptions

About Course Numbers:

Each Carnegie Mellon course number begins with a two-digit prefix that designates the department offering the course (i.e., 76-xxx courses are offered by the Department of English). Although each department maintains its own course numbering practices, typically, the first digit after the prefix indicates the class level: xx-1xx courses are freshmen-level, xx-2xx courses are sophomore level, etc. Depending on the department, xx-6xx courses may be either undergraduate senior-level or graduate-level, and xx-7xx courses and higher are graduate-level. Consult the Schedule of Classes each semester for course offerings and for any necessary pre-requisites or co-requisites.


18-059 Introduction to Amateur Radio
Spring: 3 units
Amateur radio is a pursuit that encompasses equal parts technology, communication, and public safety. It began in the US with the Radio Act of 1912, which guaranteed use of the electromagnetic spectrum to the people, provided they demonstrated the requisite technical competence. These privileges have persisted to the present day, with a vibrant global community of radio amateurs (hams) utilizing the spectrum to tinker and experiment with wireless communications for satellites, drone control, low-power communication, radio astronomy, and so on! This course will introduce students to the history, art, and science of radio with emphasis on hands-on demonstrations and in-class projects, including soldering a low-power FM transmitter and building a directional antenna. Students will also self-study to pass an amateur radio licensing exam administered on campus, which unlocks the electromagnetic spectrum for personal, non-commercial use. Radio service for public safety is tightly woven into the cultural fabric of the Buggy tradition at Carnegie Mellon, and becoming licensed is the first step to getting involved! Topics covered include: Radio signal fundamentals; Basic electronics; Antennas; Radio wave propagation; Radio equipment; Norms and culture of amateur radio communication; Operating regulations and safety Anyone interested in becoming a licensed amateur radio user is welcome regardless of major or prior background!
18-095 Getting Started in Electronics: An Experiential Approach
Fall and Spring: 9 units
Electronics are ubiquitous and have transformed life many times over. Building circuits as a hobby has been a reliable introduction to a career in engineering for many decades, providing essential context and motivation for the mathematics and analysis techniques developed in the canonical ECE curriculum. For those with little prior knowledge of electronics, building circuits provides useful context and practical skills that lead to success in the rigorous engineering core. For those pursuing other career paths, exploring electronics develops technical literacy that will supplement and enhance their pursuits. Nowadays, the growth of maker culture has provided a wealth of tools that make electronics more accessible than ever before. This class uses an experiential learning approach to develop skills in circuit design, prototyping, and debugging. Every lecture is integrated with a hands-on laboratory experiment, punctuating each lesson with physical inquiry. The course will be based on two experiential learning texts: Getting Started in Electronics by Forrest Mims III, which has launched many engineering careers since the 1980s, and the modern classic Make: Electronics by Charles Platt. Principles of analog circuits, digital circuits, microcontrollers, and measurement equipment will be explored one experiment at a time, through twice-weekly integrated lecture/circuit builds and once-weekly self-guided builds.
18-100 Introduction to Electrical and Computer Engineering
Fall and Spring: 12 units
The goals of this freshman engineering course are: * To introduce basic concepts in electrical and computer engineering in an integrated manner; * To motivate basic concepts in the context of real applications; * To illustrate a logical way of thinking about problems and their solutions, and; * To convey the excitement of the profession. These goals are attained through analysis, construction and testing of an electromechanical system (e.g., a robot) that incorporates concepts from a broad range of areas within Electrical and Computer Engineering. Some of the specific topics that will be covered include system decomposition, ideal and real sources, Kirchhoff's Current and Voltage Laws, Ohm's Law, piecewise linear modeling of nonlinear circuit elements, Ideal Op-Amp characteristics, combinational logic circuits, Karnaugh Maps, Flip-Flops, sequential logic circuits, and finite state machines. 3 hrs. lec., 1 hr. rec., 3 hr. lab.
18-200 ECE Sophomore Seminar
Fall: 1 unit
The class comprises of a series of lectures from our own faculty and alumni, Department and University staff, and student groups. Students are required to attend each lecture. The lectures are designed to serve the following purposes: 1. Introduce to students to the faculty member's research field and the most current world advancements in engineering and technology in that area; 2. Provide students a good understanding of our curriculum structure and the courses in various areas; 3. Present correlations between the present technological developments and our courses for each course area; 4. Introduce new undergraduate courses; 5. Advertise on-campus/off-campus research opportunities for undergraduate students and explain the corresponding research projects; 6. Motivate students with positive presentations on the importance of obtaining education and gaining self-learning ability; 7. Provide basic education on learning and working ethics.
18-202 Mathematical Foundations of Electrical Engineering
Fall and Spring: 12 units
This course covers topics from engineering mathematics that serve as foundations for descriptions of electrical engineering devices and systems. It is the corequisite mathematics course for 18-220, Fundamentals of Electrical Engineering. The topics include: 1.MATLAB as a robust computational tool, used to reinforce, enrich and integrate ideas throughout the course, including software exercises and projects in combination with homework assignments; 2.Complex Analysis, including rectangular and polar representations in the complex plane with associated forms of complex arithmetic, powers, roots and complex logarithms, complex differentiation, analytic functions and Cauchy-Riemann equations, complex Taylor series, complex exponential, sinusoidal and hyperbolic functions, and Euler's formula; 3.Fourier Analysis, including orthogonality of sinusoids, trigonometric and exponential forms of Fourier series, Fourier integrals and Fourier transforms; 4.Linear, Constant-Coefficient Differential Equations, including complex exponential solutions to homogeneous equations and particular solutions with polynomial and sinusoidal driving functions described by phasors; 5.Difference Equations, with emphasis upon their relationship to differential equations, and; 6.Linear Algebra and Matrices, including matrix arithmetic, linear systems of equations and Gaussian elimination, vector spaces and rank of matrices, matrix inverses and determinants, eigenvalue problems and their relationship to systems of homogeneous differential equations.
Prerequisite: 21-122 Min. grade C
18-213 Introduction to Computer Systems
All Semesters: 12 units
This course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, and supporting concurrent computation. NOTE: students must achieve a C or better in order to use this course to satisfy the pre-requisite for any subsequent Computer Science course.
Prerequisite: 15-122 Min. grade C
18-220 Electronic Devices and Analog Circuits
Fall and Spring: 12 units
This course covers fundamental topics that are common to a wide variety of electrical engineering devices and systems. The topics include an introduction to semiconductor devices and technology, DC circuit analysis techniques, operational amplifiers, energy storage elements, sinusoidal steady-state response, frequency domain analysis, filters, and transient response of first- and second-order systems. The laboratories allow students to use modern electronic instrumentation and to build and operate circuits that address specific concepts covered in the lectures, including semiconductor devices and sensors, layout, operational amplifiers, filters, signal detection and processing, power converters and circuit transients. 3 hrs. lec., 1 hr. rec., 3 hrs. lab.
Prerequisite: 18-100 Min. grade C
18-224 Special Topics in Chip Design
Spring: 12 units
Please refer to the ECE website for descriptions of each topic: https://courses.ece.cmu.edu/
18-240 Structure and Design of Digital Systems
Fall and Spring: 12 units
This course introduces basic issues in design and verification of modern digital systems. Topics include: Boolean algebra, digital number systems and computer arithmetic, combinational logic design and simplification, sequential logic design and optimization, register-transfer design of digital systems, basic processor organization and instruction set issues, assembly language programming and debugging, and a hardware description language. Emphasis is on the fundamentals: the levels of abstraction and hardware description language methods that allow designers to cope with hugely complex systems, and connections to practical hardware implementation problems. Students will use computer-aided digital design software and actual hardware implementation laboratories to learn about real digital systems. 3 hr. lec., 1 hr. rec., 3 hr. lab.
Prerequisite: 18-100 Min. grade C
18-290 Signals and Systems
Fall and Spring: 12 units
This course develops the mathematical foundation and computational tools for processing continuous-time and discrete-time signals in both time and frequency domain. Key concepts and tools introduced and discussed in this class include linear time-invariant systems, impulse response, frequency response, convolution, filtering, sampling, and Fourier transform. Efficient algorithms like the fast Fourier transform (FFT) will be covered. The course provides background to a wide range of applications including speech, image, and multimedia processing, bio and medical imaging, sensor networks, communication systems, and control systems. This course serves as entry and prerequisite for any higher level course in the fields of signal processing, communications, and control.
18-300 Fundamentals of Electromagnetics
Fall: 12 units
This course introduces electromagnetic principles and describes ways in which those principles are applied in engineering devices and systems. Topics include: vector calculus as a mathematical foundation for field descriptions, Maxwell's equations in integral and differential forms with associated boundary conditions as descriptions of all electromagnetic principles, quasistatic electric fields in free space and in materials, superposition for known charge sources, conduction and polarization, resistance and capacitance, charge relaxation, analytic and numerical methods for electric field boundary value problems, quasistatic magnetic fields in free space and in materials, superposition for known current sources, magnetization, inductance, magnetic diffusion, and analytic and numerical methods for magnetic field boundary value problems. 4 hrs. lec.
Prerequisite: 18-220 Min. grade C
18-310 Fundamentals of Semiconductor Devices
Spring: 12 units
This course replaced 18311 in Spring 2005. In this course you will receive an introduction to the operation and fabrication of the most important semiconductor devices used in integrated circuit technology together with device design and layout. At the end of the course you will have a basic understanding of pn diodes, bipolar transistors, and MOSFETs as well as some light emitting and light detecting devices such as photodiodes, LEDs and solar cells. You will also receive an introduction to the fundamental concepts of semiconductor physics such as doping, electron and hole transport, and band diagrams. In the laboratory you will learn how to lay out both bipolar and MOS devices and you will design small (2-3 transistor) circuits. The laboratory portion of the course emphasizes the relation between device design and layout and circuit performance. You will also experimentally evaluate the operation of amplifier and gate circuits fabricated with discrete devices. This course will give you an excellent understanding of the operation and fabrication of the devices which is necessary for high-performance analog and digital circuit design. 3 hrs. lec. (Note: the prerequisite is typically waived for MSE students who intend to pursue the Electronic Materials Minor.)
Prerequisite: 18-220 Min. grade C
18-320 Microelectronic Circuits
Fall and Spring: 12 units
18-320 introduces students to the fundamentals of microelectronic circuits. The course will emphasize the analysis and design of basic analog and digital integrated circuits in preparation for further study in analog, digital, mixed-signal, and radio-frequency integrated circuit design. Additionally, students will learn to design and analyze microelectronic circuits using industry standard computer aided design (CAD) software. Topics to be covered include: MOSFET fabrication and layout MOSFET models for analog and digital design Analysis and design of digital CMOS logic gates Analysis and design of clocked storage elements (e.g., flip-flops, latches, memory cells) Delay optimization of digital circuits Circuit topologies for arithmetic and logical functional units Analysis and design of single-stage MOS amplifiers Frequency response characteristics of single-stage amplifiers Differential amplifiers and simple operational amplifiers Analog filters using operational amplifiers The course includes a lab component which will give students hands-on experience in the design and implementation of analog and digital circuits. Labs will employ both design using discrete, SSI, and MSI parts, as well as using CAD design tools.
Prerequisite: 18-220 Min. grade C
18-330 Introduction to Computer Security
Fall and Spring: 12 units
Security is becoming one of the core requirements in the design of critical systems. This course will introduce students to the intro-level fundamental knowledge of computer security and applied cryptography. Students will learn the basic concepts in computer security including software vulnerability analysis and defense, networking and wireless security, and applied cryptography. Students will also learn the fundamental methodology for how to design and analyze security critical systems.
Prerequisite: 18-213 Min. grade C
18-334 Network Security
Spring: 12 units
Some of today's most damaging attacks on computer systems involve exploitation of network infrastructure, either as the target of attack or as a vehicle to advance attacks on end systems. This course provides an in-depth study of network attack techniques and methods to defend against them. The course will cover topics spanning five broad themes: (1) infrastructure topics such as firewalls, network intrusion detection, secure routing protocols, and recent advances such as software-defined networking; (2)network attacks such as denial of service (DoS) and distributed denial-of-service (DDoS) attacks, worm and virus propagation; (3)analysis and inference topics such as network forensics and attack economics; (4) user related topics such as authentication, anonymity and censorship resilience; and (5) new technologies related to next-generation networks, and cellular and wireless networks. Students in 18-334 will share lectures and homeworks with students in 18-731. However, 18-731 will have additional requirements not shared by 18-334, including the requirement to produce scribe notes and to practice and demonstrate the ability to read and summarize scientific papers on the topics covered by the course.
Prerequisites: 15-330 Min. grade C or 18-330 Min. grade C
18-340 Hardware Arithmetic for Machine Learning
Fall: 12 units
In this course, students explore the techniques for designing high-performance digital circuits for computation along with methods for evaluating their characteristics. We begin by reviewing number systems and digital arithmetic along with basic arithmetic circuits such as ripple-carry adders. From there, we move to more complex adders (carry-look-ahead, carry-skip, carry-bypass, etc.), multipliers, dividers, and floating-point units. For each circuit introduced, we will develop techniques and present theory for evaluating their functionality and speed. Other methods will be described for analyzing a circuit's power consumption, testability, silicon area requirements, correctness, and cost. In addition, we will utilize various CAD tools to evaluate the circuits described. Finally, advanced timing and clocking concepts will be investigated. For example, the notion of clock skew will be introduced and its impact on clock period for sequential circuits will be analyzed. We will also learn how to analyze and design asynchronous circuits, a class of sequential circuits that do not utilize a clock signal. Course projects focus on key arithmetic aspects of various machine learning algorithms including: K-nearest neighbors, neural networks, decision trees, and support vector machines. *Note: Although students in 18-340 and 18-640 will share lectures, labs, and recitations, students in 18-340 and 18-640 will receive different homework assignments, design projects, and exams. In some cases 18-640 students will also have different or additional lab sessions. The homework assignments, design projects, and exams that are given to the students registered for 18-640 will be more challenging than those given to the students registered for 18-340 in that they will have more complex designs, involve additional theoretical analysis, and have more stringent specifications (e.g., in area, power, performance, and robustness).
Prerequisite: 18-240 Min. grade C
18-341 Logic Design and Verification
Fall and Spring: 12 units
This course is a second level logic design course, studying the techniques of designing at the register-transfer and logic levels of complex digital systems using modern modeling, simulation, synthesis, and verification tools. Topics include register-transfer level systems (i.e., finite state machines and data paths), bus and communication system interfacing (such as a simplified USB interface), discrete-event simulation, testbench organization, assertion-based verification and functional coverage. Design examples will be drawn from bus and communication interfaces, and computation systems, emphasizing how these systems are designed and how their functionality can be verified. A modern hardware description language, such as SystemVerilog, will serve as the basis for uniting these topics. Quizzes, homeworks and design projects will serve to exercise these topics.
Prerequisite: 18-240 Min. grade C
18-344 Computer Systems and the Hardware-Software Interface
Fall: 12 units
This course covers the design and implementation of computer systems from the perspective of the hardware software interface. The purpose of this course is for students to understand the relationship between the operating system, software, and computer architecture. Students that complete the course will have learned operating system fundamentals, computer architecture fundamentals, compilation to hardware abstractions, and how software actually executes from the perspective of the hardware/software boundary. The course will focus especially on understanding the relationships between software and hardware, and how those relationships influence the design of a computer system's software and hardware. The course will convey these topics through a series of practical, implementation-oriented lab assignments.
Prerequisites: 18-240 Min. grade C and 18-213 Min. grade C
18-349 Introduction to Embedded Systems
Fall and Spring: 12 units
This practical, hands-on course introduces the various building blocks and underlying scientific and engineering principles behind embedded real-time systems. The course covers the integrated hardware and software aspects of embedded processor architectures, along with advanced topics such as real-time, resource/device and memory management. Students can expect to learn how to program with the embedded architecture that is ubiquitous in cell-phones, portable gaming devices, robots, PDAs, etc. Students will then go on to learn and apply real-time principles that are used to drive critical embedded systems like automobiles, avionics, medical equipment, the Mars rover, etc. Topics covered include embedded architectures (building up to modern 16/32/64-bit embedded processors); interaction with devices (buses, memory architectures, memory management, device drivers); concurrency (software and hardware interrupts, timers); real-time principles (multi-tasking, scheduling, synchronization); implementation trade-offs, profiling and code optimization (for performance and memory); embedded software (exception handling, loading, mode-switching, programming embedded systems). Through a series of laboratory exercises with state-of-the-art embedded processors and industry-strength development tools, students will acquire skills in the design/implementation/debugging of core embedded real-time functionality.
Prerequisites: 18-213 Min. grade C and 18-240 Min. grade C
18-351 Full-Stack Software Development for Engineers
Fall and Spring: 12 units
This course will introduce the principles, concepts, technologies, and practices of full-stack software development for creating end-to-end web applications using a classical client-server architecture and the model-view-controller pattern. Students will acquire basic front-end and back-end skills and learn how to apply modern development practices in the context of an individual hands-on project using the plain web stack for the front-end, TypeScript and a NoSQL database layer for the back-end, and other common libraries, light-weight frameworks, and tools as adjuncts. They will practice how to version-control the codebase, manage a small project, transform requirements expressed as user stories into working software in an incremental manner, maintain code quality, build their application on an integration server, and deploy it on the cloud. To enroll in this course, students must already be proficient in coding using multiple programming languages and familiar with the basics of algorithms, data structures, databases, and software design principles, including object-orientation. Each student will need their own laptop computer to use in the course.
Prerequisite: 18-213 Min. grade B
18-352 Software Engineering Essentials
Spring: 12 units
In this course, students will learn about and apply software engineering paradigms that have shaped the software industry over the past few decades. They will be exposed to fundamental disciplines of software engineering as well as central engineering practices that crosscut system, project, and user perspectives. They will iteratively analyze and implement user requirements in the presence of a customer proxy, and architect, design, implement, integrate, test, and deploy an evolving solution that balances multiple engineering and user constraints. The course is organized around a semester-long team project with frequent milestones, deliverables, demonstrations, and assessments. Newly introduced course topics are immediately applied to the team project. The team project starts right away and relies on several software technologies, tools, and stacks: prior knowledge of these elements is therefore paramount. To enroll, students must have substantial programming experience and be already familiar with these elements. This course can replace 18652 to satisfy a core requirement of ECEs MS-SE program.
Prerequisites: 18-351 Min. grade C or 17-437
18-370 Fundamentals of Control
Fall: 12 units
This junior/senior-level undergraduate course introduces the fundamental principles and methodologies of classical feedback control of linear systems and its applications. Emphasis is on understanding physical principles in feedback systems, practical problem formulation and the analysis and synthesis of feedback control systems using frequency and time domain techniques. The covered material provides a foundation for further studies toward careers in motion control, automation, control electronics, robotics, systems science and engineering. The practical knowledge in this course represents necessary tools to design a broad variety of systems such as robots, servo and tracking systems, feedback circuits, phase-locked loops, and microelectromechanical systems. Topics include analytical, graphical and computer-aided techniques (MATLAB/Simulink) for analyzing, designing and realizing of feedback control systems; Laplace transforms and associated transfer function modeling; root-locus and frequency response (Bode plot) design; pole-zero synthesis techniques; analysis of trade-offs in performance: stability, transient response, steady-state error, disturbance rejection, and robustness; design and implementation of PID, lead-lag, and loop shaping compensators. If time permits, the course will include a cursory introduction to state space modeling, systems with delay and computer control systems.
Prerequisites: 18-290 Min. grade C or 24-352 Min. grade C
18-372 Fundamental Electrical Power Systems
Fall: 12 units
This course introduces the fundamentals in electric energy systems which will enable you to understand current issues and challenges in electric power systems ("smart grid") and what it takes for you to have a reliable electric power supply at your house. First, the general structure of an electric power system (current and future trends) will be introduced. This includes electric power plants (renewable and non-renewable); transmission and distribution; and consumers. Then, electric power is addressed from a mathematical point of view. The mathematical formulae for AC power and models for the above mentioned elements are derived which will enable you to calculate how much power is flowing over which lines on its way from the power plant to the consumer. Maintaining the balance between generation and consumption is important to avoid catastrophic blackout events. Hence, the notion of stability and available control concepts will be introduced.
Prerequisite: 18-220 Min. grade C
18-384 Ethics and Policy Issues in Computing
Spring: 9 units
Should autonomous robots make life and death decisions on their own? Should we allow them to select a target and launch weapons? To diagnose injuries and perform surgery when human doctors are not around? Who should be permitted to observe you, find out who your friends are, what you do and say with them, what you buy, and where you go? Do social media and personalized search restrict our intellectual horizons? Do we live in polarizing information bubbles, just hearing echoes of what we already know and believe? As computing technology becomes ever more pervasive and sophisticated, we are presented with an escalating barrage of decisions about who, how, when, and for what purposes technology should be used. This course will provide an intellectual framework for discussing these pressing issues of our time, as we shape the technologies that in turn shape us. We will seek insight through reading, discussion, guest lectures, and debates. Students will also undertake an analysis of a relevant issue of their choice, developing their own position, and acquiring the research skills needed to lend depth to their thinking. The course will enhance students' ability to think clearly about contentious technology choices, formulate smart positions, and support their views with winning arguments.
18-390 ECE CO-OP
All Semesters
The Department of Electrical and Computer Engineering at Carnegie Mellon considers experiential learning opportunities important educational options for its undergraduate students. One such option is cooperative education, which provides a student with an extended period of exposure with a company. To participate, students must work with their academic advisor to complete an ECE Co-op Approval form and submit for approval. Students must possess at least junior status and have an overall grade point average of 3.0 or above. All co-ops must be approximately 8 months in uninterrupted length. If the co-op is approved, the ECE Undergraduate Studies Office will add the course to the student's schedule. Upon completion of the co-op experience, students must submit a 1-2 page report of their work experience, and a 1-2 page evaluation from the company supervisor to the ECE Undergraduate Office. International students should also be authorized by the Office of International Education (OIE). More information regarding CPT is available on OIE's website.
18-402 Applied Electrodynamics
Spring: 12 units
This course builds upon the electric and magnetic field foundations established in 18-300 to describe phenomena and devices where electromagnetic waves are a central issue. Topics include: review of Maxwell's equations, propagation of uniform plane waves in lossless and lossy media, energy conservation as described by the Poynting Theorem, reflection and transmission with normal and oblique incidence upon boundaries, sinusoidal steady state and transients on 2-conductor transmission lines, modal descriptions of waveguides, radiation and antennas. 4 hrs. lec.
Prerequisite: 18-300
18-410 Hacker Fab
Fall and Spring: 12 units
Discover the Hacker Fab, an unparalleled open?source micro? and nanofabrication facility where students collaborate to design and build state?of?the?art process equipment while fabricating functional semiconductor and emerging devices on a chip. Open to driven learners from all backgrounds (with instructor permission), this course emphasizes interdisciplinary teamwork, practical experience, and advanced innovation.  Participants select projects aligned with their interests, spanning hardware, software, robotics, materials science, electrical and computer engineering, chemistry, and mechanical engineering. Previous initiatives have produced a lithographic stepper, an ALD system, a thermal evaporator, a sputter deposition instrument, a spin coater, tube furnace, dispensing station, and robotic gantry. These systems directly support device fabrication—such as NMOS transistors—and ongoing research explores PMOS, plating, doping, and etching. Current and future endeavors will investigate emerging material?based transistors (including those utilizing carbon nanotubes, 2D materials, and oxide semiconductors), novel IoT sensors, and much more. The course incudes minimal lectures and reading assignments that cover the background material necessary to execute projects and weekly labs. Project milestones include three demos in lieu of exams. Class time is split between lectures and group meetings to work on projects with other students. Cross?listed as 18?410/18?610, the course gives priority to ECE graduate students for 18?610 and ECE undergraduates for 18?410. Although both groups attend joint lectures, 18-610 participants receive more challenging project assignments. Enroll to develop practical semiconductor fabrication skills, master collaborative problem?solving, and contribute to pioneering open?source research at the forefront of technological progress. Join us and help shape the future of semiconductor innovation!
18-416 Nano-Bio-Photonics
Spring: 12 units
Light can penetrate biological tissues non-invasively. Most of the available bio-optic tools are bulky. With the advent of novel nanotechnologies, building on-chip integrated photonic devices for applications such as sensing, imaging, neural stimulation, and monitoring is now a possibility. These devices can be embedded in portable electronic devices such as cell phones for point of care diagnostics. This course is designed to convey the concepts of nano-bio-photonics in a practical way to prepare students to engage in emerging photonic technologies. The course starts with a review of electrodynamics of lightwaves. The appropriate choice of wavelength and material platform is the next topic. Then optical waveguides and resonators are discussed. Resonance-based sensing is introduced followed by a discussion of the Figure of Merits (FOMs) used to design on-chip sensors. Silicon photonics is introduced as an example of a CMOS-compatible platform. On-chip spectroscopy is the next topic. The second part covers nano-plasmonics for bio-detection and therapy. The design methods are discussed, followed by an overview of nanofabrication and chemical synthesis, and then a discussion of applications. The last part of this course will be dedicated to a review of recent applications such as Optogenetic neural stimulation, Calcium imaging, Cancer Imaging and Therapy. Senior or graduate standing required. This course is cross-listed with 18616. Although students in 18-616 and 18-416 will share the same lectures and recitations, students in 18-616 will receive distinct course projects. Students in 18-416 and 18-616 will be graded on separate curves.
Prerequisite: 18-300 Min. grade C
18-418 Micro/Nano Biomedical Devices
Fall: 12 units
Biomedical devices constantly call for innovations. Micro/nano fabrication not only miniaturizes devices and instruments, but also can enable new biomedical devices and significantly boost device performance. This course introduces fundamental micro/nano fabrication technologies and related materials of biomedical devices. The biomedical background and design principles of various biomedical devices will be presented. Both diagnostic and therapeutic devices will be discussed, including point-of-care diagnostic devices, biosensors, DNA sequencers, medical implants, prosthetic devices, drug delivery systems, medical robots, etc. This course is cross-listed with 18418 and 42622. ECE graduate students will be prioritized for 18618, and ECE undergraduate students will be prioritized for 18418. Although students in 18618/42622 will share lectures with students in 18418, students in 18418 will receive distinct homework assignments, projects, and exams from those given to students in 18618/42622. Specifically, the homework assignments, projects, and exams that are given to the 18618/42622 students will be more challenging than those given to the 18418 students.
18-420 Design, Integration, and Tapeout of IoT Systems
Fall: 12 units
This course provides a comprehensive exploration of the design concepts and methodologies involved in developing integrated circuits for Internet of Things (IoT) systems. Students will gain hands-on experience in designing and integrating essential blocks such as sensor front-ends, data converters, machine learning circuits, and wireless transmitters. Key concepts include an introduction to IoT system architectures, principles of sensor interfacing, analog-to-digital converters (ADCs), machine learning in IoT, RF front-end design considerations, an CMOS technology and design rules, overview of the tapeout process, and design exercises using industry-standard design tools. By bringing together individual blocks into a cohesive system, students will gain the skills and knowledge required to design, simulate, and tapeout a complete IoT system-on-chip by the end of this course. The course emphasizes a practical, project-based approach to ensure students are well-prepared for real-world challenges in IoT integrated circuit design. This course is crosslisted with 18620. ECE graduate students will be prioritized for 18620, and ECE undergraduate students will be prioritized for 18420. Although students in 18420 will share lectures with students in 18620, students in 18620 will undertake more complex projects.
Prerequisite: 18-220 Min. grade C
18-421 Analog Integrated Circuit Design
Fall: 12 units
Some form of analog circuit design is a critical step in the creation of every modern IC. First and foremost, analog circuits act as the interface between digital systems and the real world. They act to amplify and filter analog signals, and to convert signals from analog to digital and back again. In addition, high performance digital cell design (either high speed or low power) also invokes significant analog circuit design issues. The goal of this course is to teach students some of the methods used in the design and analysis of analog integrated circuits, to illustrate how one approaches design problems in general, and to expose students to a broad cross-section of important analog circuit topologies. The course will focus on learning design through carrying out design projects. Design and implementation details of wide-band amplifiers, operational amplifiers, filters and basic data converters will be covered. Example topics to be covered include transistor large- and small-signal device models, small-signal characteristics of transistor-based amplifiers, large-signal amplifier characteristics and nonidealities, operational amplifier design, basic feedback amplifier stability analysis and compensation, and comparator design. The course will focus primarily on analog CMOS, but some aspects of BJT design will be discussed. 18-290 and 18-320 or equivalent background material with permission of the instructor. Although students in 18-623 will share Lectures and Recitations with students in 18-421, students in 18-623 will receive distinct homework assignments, distinct design problems, and distinct exams from the ones given to students in 18-421 and will be graded on a separate curve from students taking 18-421.
Prerequisites: 18-290 Min. grade C and 18-320 Min. grade C
18-422 Digital Integrated Circuit Design
Fall: 12 units
This course covers the design and implementation of digital circuits in a modern VLSI process technology. Topics will include logic gate design, functional unit design, latch/flip-flop design, system clocking, memory design, clock distribution, power supply distribution, design for test, and design for manufacturing. The lab component of the course will focus on using modern computer aided design (CAD) software to design, simulate, and lay out digital circuits. The final project for the course involves the design and implementation to the layout level of a small microprocessor. Although students in 18-422 and 18-622 will share lectures, labs, and recitations, students in 18-422 and 18-622 will receive different homework assignments, design projects, and exams, and in some cases 18-622 students will also have different or additional lab sessions.
Prerequisites: 18-320 Min. grade C and 18-240 Min. grade C
18-427 Board-Level RF Systems for the Internet-of-Things
Fall: 12 units
In this age when everything is connected to the internet-of-things (IOT), students should understand how RF Transceivers and Antennas can allow such devices to be connected without wires. This class will give students the chance to learn about cellular and IOT devices and how they communicate using radio frequency (RF) signals. Students will gain an understanding of antenna design and operation, a high-level understanding of RF signal propagation, an introduction to RF Transceiver design and operation and an overview of multi-input multi-output (MIMO) RF operation. A Laboratory section is included in this class. In Lab, students will learn how to assemble printed circuit board (PCBs) using the Tech Spark facility. Early Lab sessions will demonstrate RF signals, antennas, and constructive and destructive RF interference. Students control the RF transceiver ICs by programming several different types of software defined radios (SDRs). Several different PCB antenna designs will be explored in the Lab sessions. Lab exercises will culminate with students building up an SDR-controlled RF transmitter driving a PCB antenna and using it to send data from one student to another using MI O beam steering to increase spectral reuse. Although students in 18-727 will share lectures and recitations with students in 18-427, students in 18-727 will receive distinct homework assignments and grading scale from students in 18-427. Specifically, the homework assignments for 18-727 will be more complex than the homework assignments for 18-427.
Prerequisites: 18-320 Min. grade B and 18-290 Min. grade B
18-428 Advanced IoT System Validation and Deployment
Spring: 12 units
This course is designed for students who have completed the initial tapeout phase of their IoT system design and are ready to transition into the critical phases of validation and deployment. This course provides an in-depth exploration of methodologies and tools essential for testing and deploying IoT systems. Students will learn to create robust testing platforms, including FPGA prototyping, MATLAB simulations, and custom board designs, to validate their custom-designed chips. Emphasis will be placed on integrating mixed-signal, wireless, and control circuits, while addressing practical challenges in IoT system implementation. In addition, the course introduces reconfigurable system design, focusing on machine learning (ML) integration, wireless components, and mixed-signal circuits. Students will explore packaging strategies for testing, principles of reconfigurable hardware and software, and best practices for mixed-signal and RF integration. By the end of the course, students will have developed the skills to bring their IoT designs from post-tapeout validation to full system deployment, preparing them for careers in IoT system design, hardware engineering, and embedded systems development. This course is crosslisted with 18428. Although students in 18428 will share lectures with students in 18628, students in 18428 will receive distinct homework assignments, distinct programming projects, and distinct exams from the ones given to students in 18628. Specifically, the homework assignments, programming projects, and exams that are given to the 18628 students will be more challenging than those given to the 18428 students.
Prerequisites: 18-420 Min. grade B or 18-620 Min. grade B
18-435 Foundations of Blockchains
Fall: 12 units
In this course, students will learn the mathematical foundations of blockchains, including how to construct distributed consensus protocols and prove them secure, cryptography for blockchains, and mechanism design for blockchains. This course will take a mathematically rigorous approach. Students are expected to have mathematical maturity and be able to write formal mathematical proofs. Students may also be expected to implement some consensus or cryptographic algorithms. This course is crosslisted with 18635. ECE graduate students will be prioritized for 18635, and ECE undergraduate students will be prioritized for 18435. Although students in 18435 will share lectures with students in 18635, students in 18435 will receive distinct homework assignments, distinct programming projects, and distinct exams from the ones given to students in 18635. Specifically, the homework assignments, programming projects, and exams that are given to the 18635 students will be more challenging than those given to the 18435 students.
Prerequisites: 18-334 Min. grade C or 18-335 Min. grade C or 18-465 Min. grade C or 18-733 Min. grade C or (18-202 Min. grade C and 18-213 Min. grade C) or (15-513 Min. grade C and 18-202 Min. grade C) or (18-613 Min. grade C and 18-202 Min. grade C) or (18-202 Min. grade C and 14-513 Min. grade C)
18-436 Browser Security
Spring: 12 units
The Web continues to grow in popularity as platform for retail transactions, financial services, and rapidly evolving forms of communication. It is becoming an increasingly attractive target for attackers who wish to compromise users' systems or steal data from other sites. Browser vendors must stay ahead of these attacks by providing features that support secure web applications. This course will study vulnerabilities in existing web browsers and the applications they render, as well as new technologies that enable web applications that were never before possible. The material will be largely based on current research problems, and students will be expected to criticize and improve existing defenses. Topics of study include (but are not limited to) browser encryption, JavaScript security, plug-in security, sandboxing, web mashups, and authentication. The course will involve an intensive group research project focusing on protocols/algorithms, vulnerabilities, and attacks as well as several individual homework and programming tasks. Groups will perform a sequence of cumulative tasks (literature review, analysis, simulation, design, implementation) to address aspects of their chosen topic, occasionally reporting their results to the class through brief presentations, leading to a final report. This course is crosslisted with 18636. ECE graduate students will be prioritized for 18636, and ECE undergraduate students will be prioritized for 18436. Although students in 18436 will share lectures with students in 18636, students in 18636 will write a report critiquing research methodologies and validity of results for selected research papers on web and browser security.
18-441 Computer Networks
Intermittent: 12 units
The Internet has transformed our everyday lives, bringing people closer together and powering multi-billion dollar industries. The mobile revolution has brought Internet connectivity to the last-mile, connecting billions of users worldwide. But how does the Internet work? What do oft repeated acronyms like "LTE", "TCP", "WWW" or a "HTTP" actually mean and how do they work? This course introduces fundamental concepts of computer networks that form the building blocks of the Internet. We trace the journey of messages sent over the Internet from bits in a computer or phone to packets and eventually signals over the air or wires. We describe concepts that are common to and differentiate traditional wired computer networks from wireless and mobile networks. Finally, we build up to exciting new trends in computer networks such as the Internet of Things, 5-G and software defined networking. Topics include: physical layer and coding (CDMA, OFDM, etc.); data link protocol; flow control, congestion control, routing; local area networks (Ethernet, Wi-Fi, etc.); transport layer; and introduction to cellular (LTE) and 5-G networks. A final project asks you to a build a HTTP video server of your own. This course is cross-listed with 18-741 - both editions will share Lectures and Recitations. However, students in the two courses will receive different exams and will have a different project. The students in the two versions of the course will be graded on a separate curve.
Prerequisite: 18-213 Min. grade C
18-442 Autonomous Robotics I
Spring: 12 units
This course combines machine learning and robotics in a hands-on approach that encourages discovery. The course will have three portions. First, students learn deep learning fundamentals, convolutional neural networks, and object detection. In the second portion, students learn the fundamentals of Robot Operating System 2 (ROS2). In the last portion, they learn how to implement ROS2 computational graphs and machine learning models on a hardware and software acceleration platform to achieve real-time robotic perception, cognition, and action. Students develop a miniature self-driving robot based on the Jetson Orin Nano platform and the RealSense camera for vision. Students are encouraged to discover their robotic application tasks. Prior machine learning or robotics knowledge is not required. However, strong C/Python programming skills, computer systems knowledge, and a sense of wonder are strongly preferred. This course is crosslisted with 18842. Although students in 18442 will share lectures with students in 18842, students in 18842 will be given exams and project criteria that will be more challenging than those in 18442.
Prerequisites: 18-213 Min. grade C or 15-213 Min. grade C
18-444 Embedded Machine Learning
Fall: 12 units
Embedded or "edge" devices with sensors generate a tremendous amount of data every second. Sending these data to the cloud for intelligent decision making by machine learning models consumes energy and imposes undesired latency and cost. Processing the data locally on the edge lowers latency, energy, and cost. This course introduces deep neural network architectures, such as dense, convolutional, and recurrent networks, and their respective applications and training in the cloud. Students then learn to downsize their trained models so they can deploy them for inferencing on microcontrollers running on the edge with power and computation constraints. Students are encouraged to create their own projects drawing from such fields as agriculture, environment, conservation, health, manufacturing, or home automation. This course is cross-listed as 18444 and 18844. Although students in 18444 and 18844 will share lectures, students in 18444 and 18844 will receive different homework assignments, design projects, and exams.
18-447 Introduction to Computer Architecture
Spring: 12 units
Computer architecture is the science and art of selecting and interconnecting hardware components to create a computer that meets functional, performance and cost goals. This course introduces the basic hardware structure of a modern programmable computer, including the basic laws underlying performance evaluation. We will learn, for example, how to design the control and data path hardware for a MIPS-like processor, how to make machine instructions execute simultaneously through pipelining and simple superscalar execution, and how to design fast memory and storage systems. The principles presented in the lecture are reinforced in the laboratory through the design and simulation of a register transfer (RT) implementation of a MIPS-like pipelined superscalar in Verilog. Learning to design programmable systems requires that you already have the knowledge of building RT systems, the knowledge of the behavior storage hierarchies (e.g., cache memories) and virtual memory, and the knowledge of assembly language programming.
Prerequisites: 18-240 Min. grade C and (18-213 Min. grade C or 15-213 Min. grade C) and (18-330 Min. grade C or 18-344 Min. grade C or 18-349 Min. grade C or 18-340 Min. grade C or 18-320 Min. grade C or 18-341 Min. grade C)
18-448 Special Topics in Embedded Systems
Intermittent: 12 units
Please refer to the ECE website for descriptions of each topic: //courses.ece.cmu.edu/

Course Website: https://courses.ece.cmu.edu/
18-452 Wireless Networking and Applications
Spring: 12 units
This course introduces fundamental concepts of wireless networks. The design of wireless networks is influenced heavily by how signals travel through space, so the course starts with an introduction to the wireless physical layer, presented in a way that is accessible to a broad range of students. The focus of the course is on wireless MAC concepts including CSMA, TDMA/FDMA, and CDMA. It also covers a broad range of wireless networking standards, and reviews important wireless network application areas (e.g., sensor networks, vehicular) and other applications of wireless technologies (e.g., GPS, RFID, sensing, etc.). Finally, we will touch on public policy issues, e.g., as related to spectrum use. The course will specifically cover: Wireless networking challenges Wireless communication overview Wireless MAC concepts Overview of cellular standards and LTE Overview of wireless MAC protocols WiFi, bluetooth and personal area networks, etc. Wireless in today's Internet: TCP over wireless, mobility, security, etc. Advanced topics, e.g., mesh and vehicular networks, sensor networks, DTNs, localization, sensing, etc. Although students in 18-750 will share Lectures and Recitations with students in 18-452, they will receive distinct homework assignments and exams from students in 18-452. The main project will also be different. The students in the two versions of the course will also be graded on a separate curve.
Prerequisites: 18-213 Min. grade C or 18-613 Min. grade C or 15-213 Min. grade C
18-453 Introduction to XR Systems
Fall: 12 units
Digitization of reality is at the cusp of widespread adoption; it also embodies a unique convergence of techniques that span the gamut of electrical and computer engineering. This course introduces students to augmented/virtual/mixed reality systems, or what is broadly referred to as extended reality (XR). The course covers hardware and software topics central to XR systems, namely, content capture, streaming, and display, looking at both commercial and research- grade systems. A course project will allow students to experience and innovate in this space.
Prerequisites: 18-290 Min. grade C and (18-213 Min. grade C or 18-613 Min. grade C)
18-460 Optimization
Spring: 12 units
Many design problems in engineering (e.g., machine learning, finance, circuit design, etc.) involve minimizing (or maximizing) a cost (or reward) function. However, solving these problems analytically is often challenging. Optimization is the study of algorithms and theory for numerically solving such problems, and it underpins many of the technologies we use today. This course is an introduction to optimization. Students will: (1) learn about common classes of optimization problems, (2) study (and implement) algorithms for solving them, and (3) gain hands-on experience with standard optimization tools. We will focus on convex optimization problems, but will also discuss the growing role of non-convex optimization, as well as some more general numerical methods. The course will emphasize connections to real-world applications including machine learning, networking, and finance. The course will involve lectures, homework, exams, and a project. This course is crosslisted with 18660. Although students in 18460 will share lectures with students in 18660, students in 18460 will receive distinct homework assignments, distinct design problems, and distinct exams from the ones given to students in 18660. Specifically, the homework assignments, design problems and exams that are given to the 18660 students will be more challenging than those given to the 18460 students.
Prerequisites: (21-260 Min. grade C or 21-254 Min. grade C or 21-259 Min. grade C) and (18-202 Min. grade C or 21-241 Min. grade C) and (21-325 Min. grade C or 36-219 Min. grade C or 36-225 Min. grade C or 36-218 Min. grade C)
18-461 Introduction to Machine Learning for Engineers
Fall and Spring: 12 units
This course provides an introduction to machine learning with a special focus on engineering applications. The course starts with a mathematical background required for machine learning and covers approaches for supervised learning (linear models, kernel methods, decision trees, neural networks) and unsupervised learning (clustering, dimensionality reduction), as well as theoretical foundations of machine learning (learning theory, optimization). Evaluation will consist of mathematical problem sets and programming projects targeting real-world engineering applications. This course is crosslisted with 18661. ECE graduate students will be prioritized for 18661, and ECE undergraduate students will be prioritized for 18461. Although students in 18461 will share lectures with students in 18661, students in 18461 will receive distinct homework assignments, distinct programming projects, and distinct exams from the ones given to students in 18661. Specifically, the homework assignments, programming projects, and exams that are given to the 18661 students will be more challenging than those given to the 18461 students.
Prerequisites: 18-202 Min. grade C and 21-127 Min. grade C and 15-122 Min. grade C and (21-325 Min. grade C or 36-225 Min. grade C or 36-218 Min. grade C or 36-219 Min. grade C)
18-462 Principles and Engineering Applications of AI
Spring: 12 units
This is a first-year graduate course in Principles and Engineering Applications of AI. The course will review the basic principles of AI. Some of the specific topics that will be covered are the following: 1) Intelligent Agents; 2) Single-Agents and Multi-Agent Systems (MAS); 3) Uncertain Knowledge and Reasoning (Probabilistic Reasoning and Probabilistic Reasoning over Time, Bayesian Networks, Dynamic Bayesian Networks, Hidden Markov Models, Kalman Filters, MCMC algorithms, etc.); 4) Learning; 5) Communicating, Perceiving, and Acting; 6) Robotics. The course will involve completing a set of challenging engineering applications of AI that will include: Medical applications, Video Games, Autonomous driving, Autonomous Robots, Finance and Economics, Military, Art, Advertising. Students should have a good background in basic probability theory, maturity in mathematical topics, and good programming skills. For seniors who would like to take the course but do not have the necessary prerequisites, instructor's permission will be required. Although students in 18462 will share lectures with students in 18662, students in 18462 will receive distinct homework assignments, distinct projects, and distinct exams from the ones given to students in 18662. Specifically, the homework assignments, projects, and exams that are given to the 18662 students will be more challenging than those given to the 18462 students.
Prerequisites: 36-218 Min. grade B or 36-219 Min. grade B or 18-751 Min. grade B
18-465 Advanced Probability & Statistics for Engineers
Spring: 12 units
This course will help masters and undergraduate students to obtain the background necessary for excelling in courses and careers in machine learning, artificial intelligence, and related fields. We will cover basic concepts of probability prerequisite to understanding the material typically taught in a ML course. We will also cover slightly more advanced topics including Markov Chains, hypothesis testing, and maximum-likelihood estimation. The remaining part of the semester will be devoted to introducing machine learning concepts such as supervised/unsupervised learning, model identification, clustering, expectation maximization, etc. Students should be familiar with basic calculus, linear algebra. Although students in 18465 will share lectures with students in 18665, students in 18465 will receive distinct homework assignments, distinct projects, and distinct exams from the ones given to students in 18665. Specifically, the homework assignments, projects, and exams that are given to the 18665 students will be more challenging than those given to the 18465 students.
18-468 Special Topics in Hardware Systems
Fall: 12 units
Please refer to the ECE website for descriptions of each topic: courses.ece.cmu.edu/
18-469 Special Topics in Integrated Systems Technology
Fall and Spring: 12 units
Please refer to the ECE website for topic descriptions.

Course Website: https://courses.ece.cmu.edu/
18-474 Embedded Control Systems
Spring: 12 units
This course introduces principles for design of embedded controllers. In applications ranging from airplanes, to automobiles, to manufacturing systems, embedded computers now close feedback loops that were previously closed by mechanical devices or by humans in the loop. This course emphasizes practical insight into the tools for modeling and simulating these dynamic physical systems, and methods for designing the real-time software for embedded computers to control them. Lectures cover relevant theory and background from real-time systems and control engineering, including event-based and clock-based sampling, switching control, PWM (pulse-width modulation), PID (proportional-integral-derivative) design, state-variable feedback, state estimation, and methods for setpoint control and trajectory tracking. Basic embedded computing, sensor, and actuator technologies are reviewed, including microcontrollers, DC motors and optical encoders. In the laboratory, students use commercial tools for simulation and automatic code generation to design and implement embedded control system experiments. 3 hrs. lecture, 3 hrs. lab.
Prerequisites: (18-213 Min. grade C or 15-213 Min. grade C) and (18-290 Min. grade C or 18-370 Min. grade C)
18-490 Electroacoustics
Fall: 12 units
This course provides an introduction to physical, engineering, and architectural acoustics. The course begins with a review of the wave equation and some of its solutions that are relevant to the propagation of sound from planar and spherical sources, and from arrays of simple sources. Lumped-parameter electrical circuit analogies are developed to describe mechanical and acoustical systems, leading to a discussion of the constraints and tradeoffs involved in the design of loudspeakers, microphones, and other transducers. The characteristics of sound in regular and irregular enclosures will be developed and discussed in the context of the acoustical design for rooms and auditoriums. The interaction of sound and man is also discussed, with introductory lectures on auditory perception and the acoustics of speech production, with applications in the areas of efficient perceptually-based coding of music and speech, and virtual acoustical environments.
Prerequisites: 18-290 Min. grade C and 18-220 Min. grade C
18-491 Digital Signal Processing
Spring: 12 units
This course addresses the mathematics, implementation, design and application of the digital signal processing algorithms widely used in areas such as multimedia telecommunications and speech and image processing. Topics include discrete-time signals and systems, discrete-time Fourier transforms and Z-transforms, discrete Fourier transforms and fast Fourier transforms, digital filter design and implementation, and multi-rate signal processing. The course will include introductory discussions of 2-dimensional signal processing, linear prediction, adaptive filtering, and selected application areas. Classroom lectures are supplemented with implementation exercises using MATLAB. Students in 18491 and 18691 will share the same lectures and recitations. Nevertheless, students receiving credit for 18691 will be required to complete an additional capstone project at the end of the semester. Students in 18691 may have additional homework problems on a weekly basis.
Prerequisite: 18-290 Min. grade C
18-495 Speech Technology for Conversational AI
Intermittent: 12 units
This course provides both practical and theoretical knowledge on how we can leverage speech processing technologies to build a conversational AI system. The course encompasses speech recognition, speaker recognition, speech synthesis, speech enhancement, speech translation, spoken dialogue systems, speech foundation models, and other speech and audio processing tasks. In practical sessions, students will learn to build functional speech recognition and synthesis systems or utilize existing large speech and language models and integrate them to create a speech interface using existing toolkits. The course will also present details of algorithms, techniques, evaluation metrics, and limitations of state-of-the-art speech systems. This course is particularly designed for students who want to learn how to process actual data for real-world applications, applying AI and machine learning techniques while also being aware of the current technology limitations.
Prerequisite: 15-211 Min. grade B
18-499 Summer Internship
All Semesters
The Department of Electrical and Computer Engineering at Carnegie Mellon considers experiential learning opportunities important educational options for its undergraduate students. One such option is an internship, normally completed during the summer. Students do not need to officially register for an internship unless they want it listed on their official transcripts. ECE students interested in registering their internship for course credit on their transcript may request to be enrolled in this course. The ECE Undergraduate Office will add the course to the student's schedule, and the student will be assessed tuition for 3 units. This process should be used by international students interested in Curricular Practical Training (CPT) or by any other engineering undergraduate wishing to have their internship experience reflected on their official University transcript. International students should also be authorized by the Office of International Education (OIE). More information regarding CPT is available on OIE's website.
18-500 ECE Design Experience
Fall and Spring: 12 units
The ECE Design Experience is a capstone design course that serves to introduce students to broad- based, practical engineering design and applications through an open-ended design problem. Students will work with a team on a project of their choosing (subject to instructor approval) throughout the semester culminating with a final project presentation, report, and public demonstration. The projects will need to encompass a minimum of two ECE areas. Throughout the semester, teams will need to give both written and oral project proposals and periodic performance updates. Team-building experiences designed to educate students on group dynamics, resource management, deadline planning, Big-picture implications of engineering applications: societal, human, ethical, and long-term impact will be explored. Please note that the full prerequisite list of "All ECE Core Courses plus any two 18-xxx ECE Area Courses" is too long to be put into the registration system. As a result ALL students will be waitlisted for 18-500. Students will be registered once it has been confirmed they have completed the prerequisites, after final grades for the preceding semester.
18-540 Rapid Prototyping of Computer Systems
Spring: 12 units
This is a project-oriented course which will deal with all four aspects of project development; the application, the artifact, the computer-aided design environment, and the physical prototyping facilities. The class, in conjunction with the instructors, will develop specifications for a mobile computer to assist in inspection and maintenance. The application will be partitioned between human computer interaction, electronics, industrial design, mechanical, and software components. The class will be divided into groups to specify, design, and implement the various subsystems. The goal is to produce a working hardware/software prototype of the system and to evaluate the user acceptability of the system. We will also monitor our progress in the design process by capturing our design escapes (errors) with the Orthogonal Defect Classification (ODC). Upon completion of this course the student will be able to: generate systems specifications from a perceived need; partition functionality between hardware and software; produce interface specifications for a system composed of numerous subsystems; use computer-aided design tools; fabricate, integrate, and debug a hardware/software system; and evaluate the system in the context of an end user application. Senior standing is required. This course is crosslisted as 18745
Prerequisites: (18-491 Min. grade C or 18-370 Min. grade C or 18-320 Min. grade C) and (18-340 Min. grade C or 18-349 Min. grade C or 18-341 Min. grade C) and 18-213 and 18-220 and 18-240 and 18-290
18-570 Summer Undergraduate Student-Directed Projects
Summer
Student-directed projects may be available in the summer semester only, allowing a student to explore a topic of their choosing. Students are responsible for pursuing such an option with a faculty member. Enrollment in 18570 precludes earning pay or research credit and requires completing a directed study agreement.
18-578 Mechatronic Design
Spring: 12 units
Mechatronics is the synergistic integration of mechanism, electronics, and computer control to achieve a functional system. Because of the emphasis upon integration, this course will center around system integration in which small teams of students will configure, design, and implement a succession of mechatronic subsystems, leading to a main project. Lectures will complement the laboratory experience with comparative surveys, operational principles, and integrated design issues associated with the spectrum of mechanism, electronics, and control components. Class lectures will cover topics intended to complement the laboratory work, including mechanisms, actuators, motor drives, sensors and electronic interfaces, microcontroller hardware and programming and basic controls. During the first week of class, each student will be asked to complete a questionnaire about their technical background. The class will then be divided into multi-disciplinary teams of three students. During the first half of the class, lab assignments will be made every 1-2 weeks to construct useful subsystems based on material learned in lecture. The lab assignments are geared to build to the main project. This course is cross-listed as 16-778 and 24-778. Students in other departments may take the course upon availability of slots with permission of instructor. Non ECE students may take the course upon availability of slots with permission of the instructor.
Prerequisites: (18-320 Min. grade C and 18-349 Min. grade C) or (18-349 Min. grade C and 18-370 Min. grade C) or (18-320 Min. grade C and 18-370 Min. grade C) or (17-313 Min. grade C and 18-349 Min. grade C)
18-580 Undergraduate Projects
All Semesters
The Department of Electrical and Computer Engineering at Carnegie Mellon considers experiential learning opportunities to be important educational options for its undergraduate students. One such option is conducting an undergraduate-level project with a faculty member. Students may work on projects for pay or may register for units of 18580 if they want the course listed on their official transcript. To enroll, the student should first complete the online application for their project on the ECE Student Project Tracker website. Once the application has been submitted and approved by the faculty member on whose project the student is working, the ECE Advising Team will add the appropriate units to the student's schedule. Typically, credit is granted according to one hour of research per week is equal to one unit of credit
18-610 Hacker Fab
Fall and Spring: 12 units
Discover the Hacker Fab, an unparalleled open?source micro? and nanofabrication facility where students collaborate to design and build state?of?the?art process equipment while fabricating functional semiconductor and emerging devices on a chip. Open to driven learners from all backgrounds (with instructor permission), this course emphasizes interdisciplinary teamwork, practical experience, and advanced innovation.  Participants select projects aligned with their interests, spanning hardware, software, robotics, materials science, electrical and computer engineering, chemistry, and mechanical engineering. Previous initiatives have produced a lithographic stepper, an ALD system, a thermal evaporator, a sputter deposition instrument, a spin coater, tube furnace, dispensing station, and robotic gantry. These systems directly support device fabrication—such as NMOS transistors—and ongoing research explores PMOS, plating, doping, and etching. Current and future endeavors will investigate emerging material?based transistors (including those utilizing carbon nanotubes, 2D materials, and oxide semiconductors), novel IoT sensors, and much more. The course incudes minimal lectures and reading assignments that cover the background material necessary to execute projects and weekly labs. Project milestones include three demos in lieu of exams. Class time is split between lectures and group meetings to work on projects with other students. Cross?listed as 18?410/18?610, the course gives priority to ECE graduate students for 18?610 and ECE undergraduates for 18?410. Although both groups attend joint lectures, 18-610 participants receive more challenging project assignments. Enroll to develop practical semiconductor fabrication skills, master collaborative problem?solving, and contribute to pioneering open?source research at the forefront of technological progress. Join us and help shape the future of semiconductor innovation!
18-613 Foundations of Computer Systems
All Semesters: 12 units
This course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, processor architecture, memory organization and management, networking technology and protocols, and supporting concurrent computation. This course is modeled after 15-213/18-213/15-513, and is intended for ECE MS students with expanded course contents presented at the graduate level. It prepares students for other graduate level computer systems courses as well as working in the industry.
18-614 Microelectromechanical Systems
Fall: 12 units
This course introduces fabrication and design fundamentals for Microelectromechanical Systems (MEMS): on-chip sensor and actuator systems having micron-scale dimensions. Basic principles covered include microstructure fabrication, mechanics of silicon and thin-film materials, electrostatic force, capacitive motion detection, fluidic damping, piezoelectricity, piezoresistivity, and thermal micromechanics. Applications covered include pressure sensors, micromirror displays, accelerometers, and gas microsensors. Grades are based on exams and homework assignments. 4 hrs. lec.
Prerequisites: 18-300 Min. grade C or 24-351 Min. grade C or 18-320 Min. grade C or 18-310 Min. grade C
18-617 Memory Devices and Technology
Fall: 12 units
This course examines the fundamental principles of semiconductor memory devices, including volatile and non-volatile solid state random access memory (RAM) systems. Both commercially deployed memory technology (Dynamic RAM, Static RAM, Flash, etc) will be examined along with emerging technologies (like Magnetic RAM, Resistive RAM). Cell physics will be examined using physical models of device switching, including heat flow, magnetic field induced switching, capacitance and tunneling. The advanced applications of memory or memory-like devices in the emerging field of neuromorphic computing will also be introduced. Through the course, the students will become familiar with major memory device structures and integration technology. By completing the course, the students will establish a good understanding about a variety of memory devices and analysis techniques, as well as developing a strong knowledge base about emerging memory technologies.
18-618 Micro/Nano Biomedical Devices
Fall: 12 units
Biomedical devices constantly call for innovations. Micro/nano fabrication not only miniaturizes devices and instruments, but also can enable new biomedical devices and significantly boost device performance. This course introduces fundamental micro/nano fabrication technologies and related materials of biomedical devices. The biomedical background and design principles of various biomedical devices will be presented. Both diagnostic and therapeutic devices will be discussed, including point-of-care diagnostic devices, biosensors, DNA sequencers, medical implants, prosthetic devices, drug delivery systems, medical robots, etc. This course is cross-listed with 18418 and 42622. ECE graduate students will be prioritized for 18618, and ECE undergraduate students will be prioritized for 18418. Although students in 18618/42622 will share lectures with students in 18418, students in 18418 will receive distinct homework assignments, projects, and exams from those given to students in 18618/42664. Specifically, the homework assignments, projects, and exams that are given to the 18618/42664 students will be more challenging than those given to the 18418 students.

Course Website: http://www.ece.cmu.edu/courses/items/18618.html
18-619 Introduction to Quantum Computing
Fall: 12 units
This course is designed for graduate and advanced undergraduate students. It introduces integer programming and machine learning as non-quantum (classical) solution methods for certain classes of difficult problems, and then discusses concepts that take advantage of near-term quantum and quantum-inspired computing. The course covers recent developments in quantum computing for solution of combinatorial optimization problems using machine learning methods. Quantum computing is discussed within the circuit-based and the annealing-based models of computing currently implemented on various hardware incarnations. Potential use of quantum processors for solution of machine learning algorithms designed for difficult problems that classical computers struggle with is explored. The format of the course is a series of lectures and problem sets that expose students to practical exercises using cloud-based quantum computing resources that include quantum annealing machines and circuit-based quantum processors. Students will gain experience and exposure to these novel computing resources through cloud-based quantum computing platforms at Amazon Web Services. The main deliverable for the course is a final group project report and an oral presentation that offer students an opportunity to thoroughly familiarize themselves with a problem of their choosing and interest. Students will use classical and unconventional (quantum and quantum-inspired) computing tools to address the problem in a specific application area of their choice.
Prerequisites: (21-240 Min. grade B or 18-202 Min. grade B) and 21-241 Min. grade B and 36-219 Min. grade B
18-620 Design, Integration, and Tapeout of IoT Systems
Fall: 12 units
This course provides a comprehensive exploration of the design concepts and methodologies involved in developing integrated circuits for Internet of Things (IoT) systems. Students will gain hands-on experience in designing and integrating essential blocks such as sensor front-ends, data converters, machine learning circuits, and wireless transmitters. Key concepts include an introduction to IoT system architectures, principles of sensor interfacing, analog-to-digital converters (ADCs), machine learning in IoT, RF front-end design considerations, an CMOS technology and design rules, overview of the tapeout process, and design exercises using industry-standard design tools. By bringing together individual blocks into a cohesive system, students will gain the skills and knowledge required to design, simulate, and tapeout a complete IoT system-on-chip by the end of this course. The course emphasizes a practical, project-based approach to ensure students are well-prepared for real-world challenges in IoT integrated circuit design. This course is crosslisted with 18420. ECE graduate students will be prioritized for 18620, and ECE undergraduate students will be prioritized for 18420. Although students in 18420 will share lectures with students in 18620, students in 18620 will undertake more complex projects.
Prerequisite: 18-220 Min. grade C
18-622 Digital Integrated Circuit Design
Fall: 12 units
This course covers the design and implementation of digital circuits in a modern VLSI process technology. Topics will include logic gate design, functional unit design, latch/flip-flop design, system clocking, memory design, clock distribution, power supply distribution, design for test, and design for manufacturing. The lab component of the course will focus on using modern computer aided design (CAD) software to design, simulate, and lay out digital circuits. The final project for the course involves the design and implementation to the layout level of a small microprocessor. 18-240 and 18-320 or equivalent background material with permission of the instructor. Although students in 18-422 and 18-622 will share lectures, labs, and recitations, students in 18-422 and 18-622 will receive different homework assignments, design projects, and exams, and in some cases 18-622 students will also have different or additional lab sessions.
Prerequisites: 18-320 Min. grade C and 18-240 Min. grade C
18-623 Analog Integrated Circuit Design
Fall: 12 units
Some form of analog circuit design is a critical step in the creation of every modern IC. First and foremost, analog circuits act as the interface between digital systems and the real world. They act to amplify and filter analog signals, and to convert signals from analog to digital and back again. In addition, high performance digital cell design (either high speed or low power) also invokes significant analog circuit design issues. The goal of this course is to teach students some of the methods used in the design and analysis of analog integrated circuits, to illustrate how one approaches design problems in general, and to expose students to a broad cross-section of important analog circuit topologies. The course will focus on learning design through carrying out design projects. Design and implementation details of wide-band amplifiers, operational amplifiers, filters and basic data converters will be covered. Example topics to be covered include transistor large- and small-signal device models, small-signal characteristics of transistor-based amplifiers, large-signal amplifier characteristics and nonidealities, operational amplifier design, basic feedback amplifier stability analysis and compensation, and comparator design. The course will focus primarily on analog CMOS, but some aspects of BJT design will be discussed. 18-290 and 18-320 or equivalent background material with permission of the instructor. Although students in 18-623 will share Lectures and Recitations with students in 18-421, students in 18-623 will receive distinct homework assignments, distinct design problems, and distinct exams from the ones given to students in 18-421 and will be graded on a separate curve from students taking 18-421.
Prerequisites: 18-290 Min. grade B and 18-320 Min. grade B
18-631 Introduction to Information Security
Fall and Spring: 12 units
Our growing reliance on information systems for daily activities, ranging from remote communications to financial exchanges, has made information security a central issue of our critical infrastructure. The course introduces the technical and policy foundations of information security. The main objective of the course is to enable students to reason about information systems from a security engineering perspective, taking into account technical, economic and policy factors. Topics covered in the course include elementary cryptography; access control; common software vulnerabilities; common network vulnerabilities; policy and export control laws, in the U.S., Japan, and elsewhere; privacy; management and assurance; economics of security; and special topics in 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-635 Foundations of Blockchains
Fall: 12 units
In this course, students will learn the mathematical foundations of blockchains, including how to construct distributed consensus protocols and prove them secure, cryptography for blockchains, and mechanism design for blockchains. This course will take a mathematically rigorous approach. Students are expected to have mathematical maturity and be able to write formal mathematical proofs. Students may also be expected to implement some consensus or cryptographic algorithms. This course is crosslisted with 18435. ECE graduate students will be prioritized for 18635, and ECE undergraduate students will be prioritized for 18435. Although students in 18435 will share lectures with students in 18635, students in 18435 will receive distinct homework assignments, distinct programming projects, and distinct exams from the ones given to students in 18635. Specifically, the homework assignments, programming projects, and exams that are given to the 18635 students will be more challenging than those given to the 18435 students.
18-636 Browser Security
Spring: 12 units
The Web continues to grow in popularity as platform for retail transactions, financial services, and rapidly evolving forms of communication. It is becoming an increasingly attractive target for attackers who wish to compromise users' systems or steal data from other sites. Browser vendors must stay ahead of these attacks by providing features that support secure web applications. This course will study vulnerabilities in existing web browsers and the applications they render, as well as new technologies that enable web applications that were never before possible. The material will be largely based on current research problems, and students will be expected to criticize and improve existing defenses. Topics of study include (but are not limited to) browser encryption, JavaScript security, plug-in security, sandboxing, web mashups, and authentication. The course will involve an intensive group research project focusing on protocols/algorithms, vulnerabilities, and attacks as well as several individual homework and programming tasks. Groups will perform a sequence of cumulative tasks (literature review, analysis, simulation, design, implementation) to address aspects of their chosen topic, occasionally reporting their results to the class through brief presentations, leading to a final report. This course is crosslisted with 18636. ECE graduate students will be prioritized for 18636, and ECE undergraduate students will be prioritized for 18436. Although students in 18436 will share lectures with students in 18636, students in 18636 will write a report critiquing research methodologies and validity of results for selected research papers on web and browser security.
18-640 Hardware Arithmetic for Machine Learning
Fall: 12 units
In this course, students explore the techniques for designing high-performance digital circuits for computation along with methods for evaluating their characteristics. We begin by reviewing number systems and digital arithmetic along with basic arithmetic circuits such as ripple-carry adders. From there, we move to more complex adders (carry-look-ahead, carry-skip, carry-bypass, etc.), multipliers, dividers, and floating-point units. For each circuit introduced, we will develop techniques and present theory for evaluating their functionality and speed. Other methods will be described for analyzing a circuit's power consumption, testability, silicon area requirements, correctness, and cost. In addition, we will utilize various CAD tools to evaluate the circuits described. Finally, advanced timing and clocking concepts will be investigated. For example, the notion of clock skew will be introduced and its impact on clock period for sequential circuits will be analyzed. We will also learn how to analyze and design asynchronous circuits, a class of sequential circuits that do not utilize a clock signal. Course projects focus on key arithmetic aspects of various machine learning algorithms including: K-nearest neighbors, neural networks, decision trees, and support vector machines. *Note: Although students in 18-340 and 18-640 will share lectures, labs, and recitations, students in 18-340 and 18-640 will receive different homework assignments, design projects, and exams. In some cases 18-640 students will also have different or additional lab sessions. The homework assignments, design projects, and exams that are given to the students registered for 18-640 will be more challenging than those given to the students registered for 18-340 in that they will have more complex designs, involve additional theoretical analysis, and have more stringent specifications (e.g., in area, power, performance, and robustness).
Prerequisite: 18-240
18-641 Design Patterns for Smartphone Development
Fall: 12 units
This course provides an intensive exploration of computer programming by reviewing the basics of Object-Orientated programming and moving quickly to advanced programming using design patterns and a multi-tiered architecture. As part of the course work, students will learn smartphone development and how to apply the learned programming techniques to create extensible, reusable and quality software. It is intended for master's students who have had some prior, but perhaps limited, programming experience in Java or another object-oriented programming language; it is not intended as a first course in programming.
18-642 Embedded System Software Engineering
Fall: 12 units
In a very real sense, embedded software is what makes our everyday world function. From self-driving cars to chemical processing plant equipment, and from medical devices to the electric grid, embedded software is everywhere. You already know how to write code for a microcontroller. Now, learn software quality, safety, and security skills that are required to make embedded systems that can handle the messiness of the real world. This course provides in-depth coverage of the topics that are essential to the success of embedded software projects based on case studies of industry project teams that have suffered or failed. Students will learn about a variety of topics including: lightweight but high quality embedded software processes, technical best practices for embedded software, effective testing and validation, causes of software system failures, software for safety-critical systems, and embedded-specific aspects of software security. The material will generally be broken up into a set of four related topics each week, with one assignment per topic weekly, involving a combination of programming assignments, tool use experiences, and research questions to get hands-on experience at dealing with the types of problems that are encountered in industry embedded projects. We assume you already know how to code in C and understand the basics of microcontrollers. This course is about getting you ready to build industry-strength embedded projects. Undergraduate students are required to take 18349 prior to enrolling in this course. Graduate students are strongly encouraged to take 18-613/15-213/15-513/18-213 before or concurrently with this course.
Prerequisite: 18-349 Min. grade C

Course Website: https://course.ece.cmu.edu/~ece642/policy.html
18-645 How to Write Fast Code I
Fall: 12 units
The fast evolution and increasing complexity of computing platforms pose a major challenge for developers of high performance software for engineering, science, and consumer applications: it becomes increasingly harder to harness the available computing power. Straightforward implementations may lose as much as one or two orders of magnitude in performance. On the other hand, creating optimal implementations requires the developer to have an understanding of algorithms, capabilities and limitations of compilers, and the target platform's architecture and microarchitecture. This interdisciplinary course introduces the student to the foundations and state-of-the-art techniques in high performance software development using important functionality such as linear algebra kernels, transforms, filters and other kernels that are utilized by many scientific, engineering and machine learning applications. The course will explain how to optimize for the memory hierarchy, take advantage of special instruction sets, and how to write parallel code for multicore, manycore, and cluster platforms, based on state-of-the-art research. Further, general strategies for performance analysis and optimization are introduced. Students will apply the lessons in group projects that accompany the course. Prerequisite: Senior ECE or CS undergraduate student or higher, solid C programming skills.

Course Website: http://www.ece.cmu.edu/~pueschel/teaching/18-645-CMU-spring08/course.html
18-648 Embedded Real-Time Systems
Fall: 12 units
Real-time embedded systems pervade many aspects of modern life ranging from household appliances, transportation and motion control systems, medical systems and devices, robotics, multimedia and mobile communications, video-games, energy generation/distribution/management, to aerospace and defense systems. This course has three complementary goals. One, it will cover the core concepts and principles underlying these systems, including resource management, scheduling, dependability and safety. Implications to multi-core platforms, SoCs, networks and communication buses will also be discussed. Mathematical models and analysis techniques will be presented. Two, the course will offer hands-on experience with implementing real-time embedded systems on realistic platforms. This will be facilitated by detailed discussions of hardware-software interfaces, concurrency and communications. Finally, application-level concepts such as signal processing, image processing, computer vision, sensor fusion and feedback control will complete an overview of the breadth and depth of real-time embedded systems. Knowledge of the C programming language, basic computer architecture and an assembly language will be assumed.
Prerequisites: (18-213 Min. grade C or 15-213 Min. grade C) and 18-447 Min. grade C
18-650 Policies of Wireless Systems
Fall: 12 units
This course will address public policy issues related to wireless systems. It investigates policies related to a wide variety of emerging wireless systems and technologies, including current and next-generation cellular systems, wifi and white space devices, emerging methods of accessing spectrum, communications systems for emergency responders (firefighters, police, emergency medical services), current and next-generation television, and satellite communications. This can include the government role in facilitating the creation of infrastructure, in advancing competition among broadcasters and communications service providers, in using scarce spectrum efficiently, in promoting public safety and homeland security, and in protecting privacy and security. Because these are inherently interdisciplinary issues, the course will include detailed discussions of technology, economics, and law, with no prerequisites in any of these areas. This course is cross-listed as 18-650, 19-403, 19-713, and 95-824. Senior or graduate standing required.
18-651 Full-Stack Software Development for Engineers
Fall: 12 units
This course introduces the principles, concepts, technologies, and practices of full-stack software development for creating end-to-end web applications using a classical client-server architecture and the model-view-controller pattern. Students acquire basic frontend and backend development skills and learn how to apply modern development practices in the context of an individual project using the plain web stack for the frontend, TypeScript and a NoSQL database layer for the backend, and other common libraries, light-weight frameworks, and tools as adjuncts. The course also reviews fundamental concepts including types, objects, multi-paradigm programming (functional and object-oriented), modularity, asynchronous and event-based computation, authentication and authorization, and dynamic updates. Students practice how to version-control their codebase, manage a small project, incrementally transform requirements expressed as user stories into working software, maintain code quality using static analysis tools, build their application on an integration server, and deploy it on the cloud. To enroll in this course, students must already be proficient in imperative programming using multiple languages and familiar with the basics of algorithms and data structures. Each student will need their own laptop computer to use in the course. This course is crosslisted with 18351. Although students in 18-351 and 18-651 will share lectures, quizzes, and all in-class components, students in 18-651 will be assigned two additional and more advanced deliverables for the project component.
Prerequisites: 18-213 Min. grade B or 18-613 Min. grade B
18-652 Foundations of Software Engineering
Fall and Spring: 12 units
In this course, you will learn about software engineering paradigms that have shaped the software industry over the past few decades. You will be exposed to fundamental disciplines of software engineering as well as engineering practices that crosscut system, project, and user perspectives. You will learn to iteratively define requirements, and architect, design, implement, integrate, test, and deploy a solution. You will work on self-organizing teams and manage the work collaboratively. You will also learn to solve a real problem subject to multiple constraints while keeping the stakeholders involved throughout the lifecycle and balancing the underlying engineering tradeoffs. The topics are applied in the context of a semester-long group project. Please note that this course is intended for ECE master students with a concentration in Software Engineering and will satisfy the "Software Engineering and Design" course area requirement. Students should be familiar with basic software development experience with proficiency in at least one modern programming language and modern programming concepts. As part of admission, students must successfully complete a programming assignment to demonstrate familiarity with required software technologies.
Prerequisites: 18-651 Min. grade C or 18-351 Min. grade C
18-654 Software Testing and Operations
Fall: 12 units
Testing is an integral part of any software endeavor and underpins building dependable systems. Testing activities, which nowadays rely greatly on automation and target both functional and non-functional requirements, form the backbone of a high-quality software solution that performs its function as intended. Operations activities involve configuration, monitoring, and troubleshooting software in a live environment. DevOps practices like containerization help streamline both testing and operations processes by encapsulating an application and its dependencies in a container to yield repeatable and resource-efficient testing environments. This course introduces the students to concepts, principles, theory, types, tools, and techniques of software testing. Students will learn fundamentals of testing principles, approaches to testing (specification-based and structural), input space analysis, and designing for testability. Moreover, students will gain sufficient breadth in testing types - targeting both functional requirements (unit and end-to-end testing) and quality attributes (security, performance testing). In its second half, the course syllabus introduces DevOps practices through a project component organized around micro services - an architectural style that gained significant adoption in the industry for building scalable and maintainable systems. Students will get practical experience with Docker to containerize such software and streamline testing automation. Each team will build various types of tests for one of the services whose quality they safeguard and put in place a resource-efficient and reliable testing process.
18-655 Entrepreneurial Engineering Project
Fall and Spring: 12 units
In this course, students participate in developing and/or advancing a viable entrepreneurial offering with an ECE flavor. Students propose a product idea, validate it using a process of simple customer discovery, and then design and deploy an initial round of customer testing. Students build whatever artifacts are necessary for that testing, whether it be mock-ups or working prototypes. Students can work in teams or alone, depending on the degree of maturity of their idea. The course is intended to support engineering students who are interested in tech startups but do not know how to get started. It can also cater to students who are a little farther along in the process. Students will complement their customer testing with some simple analysis for the financial viability of their business model, adjusting their technical offering accordingly. The final product of the class is a pitch deck presented to illustrate a viable business idea that students can pursue after the class is complete. There is also a focus on finding networking opportunities for students to get to talk to founders. Course admission is by instructor approval.
18-656 Functional Programming in Practice
Fall and Spring: 12 units
Functional programming is an increasingly important paradigm in modern software engineering for building data-rich, high-performance applications that need parallelism for efficient, scalable implementation. This course aims to develop an applied understanding of the functional programming style and associated techniques using the F-sharp language. Students will practice these concepts in a hands-on manner by tackling problems involving concurrent, big-data processing and asynchronous communication while keeping performance trade-offs in mind. The course adopts a business-oriented approach (domain-driven design) in developing systems with functional programming. Combining functional programming with domain-driven design has in particular been successful in the FinTech sector, which the course leverages as an example application domain.
18-658 Software Requirements and Interaction Design
Fall: 12 units
Good software systems should be engineered with user experience in mind. How can we design software systems that are at once useful, usable, and enjoyable to use? This course addresses these challenges by integrating two disciplines: requirements engineering and interaction design. Students learn to combine user research, design-based ideation and validation, and requirements definition, within an agile software development process. Students apply this knowledge during a semester-long project. Their goal is to envision and implement the first version of an innovative software system that could make a unique contribution to society. The system should address a real problem, satisfy real stakeholders' needs, and provide a superior user experience. Students collaborate closely with their stakeholders throughout the project for needs elicitation, design concepts validation, and usability testing. This course is intended for ECE master students with a concentration in Software Engineering. It is a core course of the MS-SE program satisfying the "Software Engineering and Design" course area requirement.
18-661 Introduction to Machine Learning for Engineers
Fall and Spring: 12 units
This course provides an introduction to machine learning with a special focus on engineering applications. The course starts with a mathematical background required for machine learning and covers approaches for supervised learning (linear models, kernel methods, decision trees, neural networks) and unsupervised learning (clustering, dimensionality reduction), as well as theoretical foundations of machine learning (learning theory, optimization). Evaluation will consist of mathematical problem sets and programming projects targeting real-world engineering applications. This course is crosslisted with 18461. ECE graduate students will be prioritized for 18661, and ECE undergraduate students will be prioritized for 18461. Although students in 18461 will share lectures with students in 18661, students in 18461 will receive distinct homework assignments, distinct programming projects, and distinct exams from the ones given to students in 18661. Specifically, the homework assignments, programming projects, and exams that are given to the 18661 students will be more challenging than those given to the 18461 students.
Prerequisites: 21-127 Min. grade C and 18-202 Min. grade C and 15-122 Min. grade C and (36-219 Min. grade C or 36-218 Min. grade C or 21-325 Min. grade C or 36-225 Min. grade C)
18-664 Software Refactoring
Spring: 12 units
Refactoring aims to improve the system's structural quality without changing its behavior. It is essential practice to guarantee programs' longevity since maintenance activities often degrade the system structure. Thus, it is in the software companies' best interests to ensure that developers know how to refactor their systems. Unfortunately, refactoring is not a trivial task; it can change the entire system structure! Undesirable effects can occur if developers do not know how to carry on these changes. They can degrade the structural quality and even introduce defects. The focus of the course is to learn how to confidently apply refactoring operations. Students will learn to apply refactoring for different granularity levels in a software system and additional resources such as APIs, databases, and test code. By the end of the course, students are expected to (i) recognize symptoms in the source code that warrant refactoring; (ii) apply refactoring at the architectural level and code level; (iii) evaluate the impact of the applied refactoring operations, (iv) design, implement, and deploy a tool to support software refactoring. This course is especially intended for ECE students pursuing a Master of Science degree in Software Engineering.
Prerequisite: 18-652 Min. grade C
18-667 Algorithms for Large-scale Distributed Machine Learning and Optimization
Spring: 12 units
The objective of this course is to introduce students to state-of-the-art algorithms in large-scale machine learning and distributed optimization. Students will read and critique a curated set of research papers. A key discussion topic will be distributed stochastic gradient descent, and how to scale it to federated learning frameworks. Topics to be covered include but are not limited to: mini-batch SGD and its convergence analysis, momentum and variance reduction methods, synchronous and asynchronous SGD, local-update SGD, gradient compression/quantization, differential privacy in federated learning, decentralized SGD, and hyperparameter optimization. Foundational knowledge in undergraduate probability and linear algebra is strongly encouraged as a pre-requisite.
Prerequisites: 10-301 or 18-661 or 10-601 or 10-701
18-668 Data Science for Software Engineering
Fall and Spring: 12 units
Building, operating and maintaining software systems generate large and diverse sets of data that capture process, product, and project information. As software systems and processes used to create them increase in complexity, software engineers, development teams, and engineering managers must rely on data-driven decisions to handle problems that arise from the system conception to its maintenance. This course applies data science techniques in the context of software engineering (SE). The richness and volume of data available make techniques rooted in machine learning and optimization particularly suitable in this context with many practical applications. The main focus of the course is on applications of machine learning, but also covering optimization techniques. Students will learn (1) how to solve SE problems through a data-driven approach, and (2) how to bootstrap SE principles to implement and evaluate data-driven applications. Applications include generation of requirement specifications, automatic code documentation; software project cost estimation; software quality prediction; semi-automatic refactoring; requirements and defect prioritization, automatic bug assignment and test cases generation. A variety of data science techniques will be used, including deep learning, supervised and semi-supervised learning, search-based methods, and topic modeling. At the end of the course, students are expected to (i) identify SE problems that can be addressed by data science techniques; (ii) identify the sources and nature of the data needed to solve these problems; (iii) choose the proper combinations of data science techniques to solve them; (iv) design, implement, and test data science applications using sound SE principles.
18-669 Special Topics in Integrated Systems Technology
Fall and Spring: 12 units
Please refer to the ECE website for topic descriptions: https://courses.ece.cmu.edu/
18-681 Power Electronics
Fall: 12 units
This course is aimed at developing Power Electronics expertise in Masters level students to develop knowledge and skills necessary for the formation of a power electronics engineer. Considerations of static and dynamic characteristics of power semiconductor devices including thermal management are followed by the analysis and design of principal types of power converters. Key applications are also considered so that the course provides a broad knowledge and skills in the field of power electronics in wide ranging applications. Assessment is based on assignments and examinations. It is assumed that students will have an understanding of electrical and amp; electronic principles, power systems, and electrical machines. Content includes: Power Semiconductor Devices Static and Dynamic Characteristics; Application of semiconductor devices and components in the medium to high voltage environment: Series and parallel operation, damping components; Spread of device characteristics, Thermal Management; Naturally commutated converters: Single phase and three phase up to 12 pulse, analysis and operation; Effect of supply side reactance; Grid applications; DC-DC Converters and energy storage: step up and step down operation, application to electric vehicles, battery management and PV systems; Self-commutated converters; Pulsewidth modulation; Multilevel converters; HVDC light; Voltage source converter based HVDC; AC to AC Converters: grid applications.
18-691 Digital Signal Processing
Spring: 12 units
This course addresses the mathematics, implementation, design and application of the digital signal processing algorithms widely used in areas such as multimedia telecommunications and speech and image processing. Topics include discrete-time signals and systems, discrete-time Fourier transforms and Z-transforms, discrete Fourier transforms and fast Fourier transforms, digital filter design and implementation, and multi-rate signal processing. The course will include introductory discussions of 2-dimensional signal processing, linear prediction, adaptive filtering, and selected application areas. Classroom lectures are supplemented with implementation exercises using MATLAB. Students in 18491 and 18691 will share the same lectures and recitations. Nevertheless, students receiving credit for 18691 will be required to complete an additional capstone project at the end of the semester. Students in 18691 may have additional homework problems on a weekly basis.
Prerequisite: 18-290 Min. grade B
18-719 Nonlinear Optics and Photonics
Fall: 12 units
Nonlinear optics plays an indispensable role in modern photonics and is the driving force behind many important applications. Examples include frequency mixing in the classical domain and entangled photon sources in the quantum domain. This course aims to provide a practical yet broad coverage on nonlinear optics, focusing both on the theoretical and experimental aspects of this subject. For example, by introducing nonlinear susceptibility to classical EM wave equations based on the coupled mode theory, we will study two key concepts of nonlinear optics: phase matching and energy conservation, in the context of various second- or third-order nonlinear processes. In addition, we will cover the basics of quantum optics relevant to this course, which will help prepare students for future research work in the quantum area. Quantum applications such as spontaneous parametric down-conversion and quantum frequency conversion will be discussed.
Prerequisite: 18-300 Min. grade B
18-726 Projects in Integrated Circuit Design: First Silicon
Fall: 12 units
Students who have fabricated a testchip in 18-725 or as part of their research learn how to design and implement testing infrastructure for their chip, write test vectors, and perform in lab testing of the chips. This includes chip packaging specification; test PCB design, fabrication, and population; test vector creation and test coverage evaluation; lab instrument automation; and in lab test and debug of the fabricated chips. Recommended for PhD students that plan to design chips for their thesis or MS students interested in careers in VLSI design.
Prerequisites: 18-725 Min. grade B or 18-525 Min. grade B
18-727 Board-Level RF Systems for the Internet-of-Things
Fall: 12 units
In this age when everything is connected to the internet-of-things (IOT), students should understand how RF Transceivers and Antennas can allow such devices to be connected without wires. This class will give students the chance to learn about cellular and IOT devices and how they communicate using radio frequency (RF) signals. Students will gain an understanding of antenna design and operation, a high-level understanding of RF signal propagation, an introduction to RF Transceiver design and operation and an overview of multi-input multi-output (MIMO) RF operation. A Laboratory section is included in this class. In Lab, students will learn how to assemble printed circuit board (PCBs) using the Tech Spark facility. Early Lab sessions will demonstrate RF signals, antennas, and constructive and destructive RF interference. Students control the RF transceiver ICs by programming several different types of software defined radios (SDRs). Several different PCB antenna designs will be explored in the Lab sessions. Lab exercises will culminate with students building up an SDR-controlled RF transmitter driving a PCB antenna and using it to send data from one student to another using MI O beam steering to increase spectral reuse. Although students in 18-727 will share lectures and recitations with students in 18-427, students in 18-727 will receive distinct homework assignments and grading scale from students in 18-427. Specifically, the homework assignments for 18-727 will be more complex than the homework assignments for 18-427.
Prerequisites: 18-290 Min. grade C and 18-320 Min. grade C
18-731 Network Security
Fall and Spring: 12 units
Some of today's most damaging attacks on computer systems involve exploitation of network infrastructure, either as the target of attack or as a vehicle to advance attacks on end systems. This course provides an in-depth study of network attack techniques and methods to defend against them. Topics include firewalls and virtual private networks; network intrusion detection; denial of service (DoS) and distributed denial-of-service (DDoS) attacks; DoS and DDoS detection and reaction; worm and virus propagation; tracing the source of attacks; traffic analysis; techniques for hiding the source or destination of network traffic; secure routing protocols; protocol scrubbing; and advanced techniques for reacting to network attacks. Prerequisite: 18-630 OR 18-730, and senior or graduate standing.
Prerequisites: 18-631 Min. grade C or 18-730 Min. grade C or 18-330 Min. grade C or 14-741 Min. grade C
18-734 Foundations of Privacy
Fall: 12 units
Privacy is a significant concern in modern society. Individuals share personal information with many different organizations - healthcare, financial and educational institutions, the census bureau, web services providers and online social networks - often in electronic form. Privacy violations occur when such personal information is inappropriately collected, shared or used. We will study privacy in a few settings where rigorous definitions and enforcement mechanisms are being developed - statistical disclosure limitation (as may be used by the census bureau in releasing statistics), semantics and logical specification of privacy policies that constrain information flow and use (e.g., by privacy regulations such as the HIPAA Privacy Rule and the Gramm-Leach-Bliley Act), principled audit and accountability mechanisms for enforcing privacy policies, anonymous communication protocols - and other settings in which privacy concerns have prompted much research, such as in social networks, location privacy and Web privacy (in particular, online tracking and amp; targeted advertising).
Prerequisite: 18-665 Min. grade C
18-739 Special Topics in Security:
Fall: 12 units
Please go to the ECE website to view "Special Topics in Security" course descriptions. http://www.ece.cmu.edu/courses/index.html
18-740 Modern Computer Architecture and Design
All Semesters: 12 units
Computer architecture deals with the art and science of designing and integrating hardware subsystems, and co-designing the hardware/software interface to create a computer system that achieves functional correctness, and meets design objectives in performance, power consumption, energy efficiency, and cost. This course provides a comprehensive view on how modern computer systems are architected, with a special focus on mass-market personal/mobile computer systems (e.g., smartphones, tablets, laptops, vehicular computers). Topics covered in this course span the design and evaluation of three major subsystems: (1) the Processing Subsystem (superscalar out-of-order cores, multicore processors, heterogeneous processors, purpose-specific accelerators), (2) the Memory Subsystem (multicore cache hierarchy, main memory and DRAM, non-volatile storage, aggressive memory management), and (3) the Interconnect Subsystem (NoC, 3D die stacking technology, intra-SoC/SIP/PoP interconnects, wireless Internet interfaces). Each subsystem will be studied from the perspective of several first-class design goals: performance, power consumption, and energy efficiency. This course places a strong emphasis on professional design tools (e.g., architecture/microarchitecture simulators, RTL synthesis tools, area/power/thermal modeling), with the goal of preparing students to be competent and productive in industry and/or research. Students who have not yet taken "Introduction to Computer Systems" (18-213/15-213/15-513) or "Foundation of Computer Systems" (18-600/18-613) are expected to be enrolled in the appropriate number concurrently.
Prerequisite: 18-447 Min. grade C
18-741 Computer Networks
Fall: 12 units
The Internet has transformed our everyday lives, bringing people closer together and powering multi-billion dollar industries. The mobile revolution has brought Internet connectivity to the last-mile, connecting billions of users worldwide. But how does the Internet work? What do oft repeated acronyms like "LTE", "TCP", "WWW" or a "HTTP" actually mean and how do they work? This course introduces fundamental concepts of computer networks that form the building blocks of the Internet. We trace the journey of messages sent over the Internet from bits in a computer or phone to packets and eventually signals over the air or wires. We describe concepts that are common to and differentiate traditional wired computer networks from wireless and mobile networks. Finally, we build up to exciting new trends in computer networks such as the Internet of Things, 5-G and software defined networking. Topics include: physical layer and coding (CDMA, OFDM, etc.); data link protocol; flow control, congestion control, routing; local area networks (Ethernet, Wi-Fi, etc.); transport layer; and introduction to cellular (LTE) and 5-G networks. A final project asks you to a build a HTTP video server of your own. This course is cross-listed with 18-441 - both editions will share Lectures and Recitations. However, students in the two courses will receive different exams and will have a different project. The students in the two versions of the course will be graded on a separate curve.
Prerequisite: 18-213 Min. grade C

Course Website: http://www.ece.cmu.edu/~ece741
18-746 Storage Systems
Fall: 12 units
This course covers the design, implementation, and use of storage systems, from the characteristics and operation of individual storage devices through the OS, database, and networking approaches involved in tying them together and making them useful to key applications' demands and technology trends. Topics to be covered include: network-attached storage, disk arrays, storage networking, storage management, advanced file systems, disk performance enhancement, wide-area data sharing, and storage security. 3 hrs. lec. The class will continue to be like previous years, with the same advanced content and high-level expectations.
Prerequisites: 18-613 Min. grade B or 18-600 Min. grade B or 15-513 Min. grade B or 14-513 Min. grade B or 18-213 Min. grade B or 15-213 Min. grade B
18-749 Building Reliable Distributed Systems
Intermittent: 12 units
The course provides an in-depth and hands-on overview of designing and developing reliable distributed systems, throughout a system's lifecycle, starting from fault-tolerant design and execution (replication, group communication, databases) to fault-recovery (fault-detection, logging, check-pointing, failure-diagnosis) for various classes of faults (crashes, communication errors, software upgrades). The course will cover real-world practices for reliability, supplemented by case studies of large-scale downtime incidents. The concepts will be taught in the context of contemporary cloud-computing platforms, and the course will include a hands-on project that involves the design, implementation and empirical evaluation of a reliable distributed cloud-based system. Students will be taught to write, review, and present a conference-style research paper by the end of the semester, with the goal of documenting the design, lessons learned and experimental results of their team project. Students can expect to learn about the reliability issues underlying cloud computing, the tools and best practices for implementing and evaluating reliability, and the strengths and weaknesses of current cloud-computing platforms from the perspective of reliability. Prerequisites: Graduate standing or instructor permission
18-751 Applied Stochastic Processes
Fall: 12 units
Basic probability concepts : Probability space, simple and compound events, statistical independence, and Bayes Rule. Total Probability Concept; Bernoulli trials; Poisson Law. De Moivre-Laplace Theorem. Definition of a Random Variable (RV); Probability distribution of an RV: cumulative distribution function (CDF) and probability density function (PDF). Two Random Variables; several Random Variables. Functions of RVs; conditional distributions; conditional expectations; joint distributions. Moments, generating functions, and characteristic functions of RVs. Chebyshev inequality. Estimation; linear estimation; minimum mean square estimation; and orthogonality principle. Limit theorems; Central Limit Theorem; Law of Large Numbers (both strong LLN and Weak LLN). Definition of a Random Process (RP). Different notions of stationarity. Poisson and Gaussian processes. Autocorrelation and Power Spectral Density (PSD) of an RP. Processing of random (stochastic) processes by linear systems. Ergodicity. Spectral analysis. Matched Filtering. Selected applications from telecommunications, data networking (queuing), Kalman filtering.
Prerequisites: (36-225 Min. grade C or 36-218 Min. grade C or 36-219 Min. grade C or 21-325 Min. grade C) and 18-290 Min. grade C
18-755 Networks in the Real World
Fall: 12 units
18-755 is a graduate-level course that focuses on networks and their applications to various natural and technological systems. Specifically, this class delves into the new science behind networks and their concrete applications technological, biological, and social systems, as well as various design synergies that exist when looking at these systems from a cyber-physical perspective. By scope and contents, this is not just another class on "networks." Want to know how complex networks dominate our world? How communities arise in social networks? How group behavior dominates Twitter? How swarms of bacteria can navigate inside the human body? How patterns of interaction can be identified in hardware and software systems? Want to work on cutting edge projects involving systems and synthetic biology? Or social networks? Or networks-on-chip and internet-of-things? Then this class is for you! Course requirements consist of a few homework assignments, a semester-long project, and in-class presentations of relevant papers. By structure and contents, this class targets primarily the computer engineering and computer science students, but it also provides a valuable foundation for interdisciplinary research to students in related disciplines. Senior or graduate standing standing is required to take this course.
18-756 Packet Switching and Computer Networks
Fall: 12 units
This course is designed to provide graduate students an understanding of the fundamental concepts in computer networks of the present and the future. In the past, the scarce and expensive resource in communication networks has been the bandwidth of transmission facilities. Accordingly, the techniques used for networking and switching have been chosen to optimize the efficient use of this resource. These techniques have differed according to the type of information carried: circuit switching for voice and packet switching for data. It is expected that elements of circuit and packet switching will be used in the integrated networks. This course focuses on packet switching for computer networks and protocol design. Topics in the course include: computer networks over-view; OSI layers, queuing theory; data link protocol; flow control; congestion control; routing; local area networks; transport layer. The current networks and applications will be introduced through the student seminars in the last weeks of the course. 4 hrs. lec. Prerequisites: 18-345 and senior or graduate standing.
18-758 Wireless Communications
Fall: 12 units
In this course, the communication problem will be introduced, and channel impairments such as noise, inter-symbol interference and fading will be described. Solutions to combat these impairments, based on digital communication theory, will be described. These will include signal space analysis, detection, equalization, coding and diversity. Examples drawn from communication standards will illustrate how the theory is implemented in practical communication systems.
Prerequisites: 36-219 Min. grade C or 36-225 Min. grade C
18-763 Systems & Toolchains for AI Engineers
Fall: 12 units
Adopting Artificial Intelligence in modern era has much more to it than learning the theoretical foundation of AI algorithms. The implementation of Machine Learning and Artificial Intelligence at large scale requires solid technical infrastructure to support its complex, heavy processes. In this course, students will learn to be effective users of AI systems. Students will gain hands-on experience with modern ML frameworks and infrastructure tools, in the context of large real-world datasets and under conditions requiring engineering design choices. This experience will be gained in conjunction with practical application of class topics in a real cloud environment. The premise of this course is to build a broad and solid foundation in Artificial Intelligence Infrastructure that will pay significant dividends throughout a student's research and work career across data science and Artificial Intelligence related fields. In this class, we will focus on the following topics: Data Collection and Storage; Data Streaming; Data Engineering; Modern ML Frameworks; Model Validation and Monitoring; Neural Network Design and Implementation; Embedded Machine Learning; Deployment of ML Models to the Cloud. The course material will focus on recent and landmark research papers and existing tools and software systems. Students will have substantial programming project work in which they design, implement, and analyze aspects of AI-model infrastructure. This course will use an IoT-relevant dataset throughout the semester. The format of this course will be a mix of lectures and hands-on labs. Students will be responsible for readings, and completing a hands-on project focused on developing applications on Apache Spark, TensorFlow, Apache Kafka, and PostgreSQL. Readings will be selected from recent conference proceedings and journals.
18-765 Digital System Testing and Testable Design
Fall: 12 units
For this course, time- and topic-indexed videos of lecture, homework, projects, etc. will be available from the online learning portal/website. In addition to these resources, two 1-hour live sessions are scheduled per week for recitation. Each student is strongly urged to attend one of these two sessions each week, either remotely or in the classroom on the Carnegie-Mellon Pittsburgh campus. This course examines in depth the theory and practice of fault analysis, test generation, and design for testability for digital ICs and systems. The topics to be covered include circuit and system modeling; fault sources and types; the single stuck-line (SSL), delay, and functional fault models; fault simulation methods; automatic test pattern generation (ATPG) algorithms for combinational and sequential circuits, including the D-algorithm, PODEM, FAN, and the genetic algorithm; testability measures; design-for-testability; scan design; test compression methods; logic-level diagnosis; built-in self-testing (BIST); VLSI testing issues; and processor and memory testing. Advance research issues, including topics on MEMS and mixed-signal testing are also discussed. 4 hours of lecture per week Prerequisites: 18-240 and 15-211 and (18-340 or 18-341) Senior or graduate standing required.
Prerequisites: 15-210 Min. grade C and 18-240 Min. grade C and (18-341 Min. grade C or 18-340 Min. grade C)

Course Website: http://www.ece.cmu.edu/~ee765/
18-768 Special Topics in Hardware Systems
All Semesters: 12 units
Please refer to the ECE website for descriptions of each topic: //courses.ece.cmu.edu/
18-781 Speech Recognition and Understanding
Fall: 12 units
The technology to allow humans to communicate by speech with machines or by which machines can understand when humans communicate with each other is rapidly maturing. This course provides an introduction to the theoretical tools as well as the experimental practice that has made the field what it is today. We will cover theoretical foundations, essential algorithms, major approaches, experimental strategies and current state-of-the-art systems and will introduce the participants to ongoing work in representation, algorithms and interface design. This course is suitable for graduate students with some background in computer science and electrical engineering, as well as for advanced undergraduates. 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-785 Data, Inference, and Applied Machine Learning
Fall: 12 units
This course will provide the methods and skills required to utilize data and quantitative models to automate predictive analytics and make improved decisions. From descriptive statistics to data analysis to machine learning the course will demonstrate the process of collecting, cleaning, interpreting, transforming, exploring, analyzing and modeling data with the goal of extracting information, communicating insights and supporting decision-making. The advantages and disadvantages of linear, nonlinear, parametric, nonparametric and ensemble methods will be discussed while exploring the challenges of both supervised and unsupervised learning. The importance of quantifying uncertainty, statistical hypothesis testing and communicating confidence in model results will be emphasized. The advantages of using visualization techniques to explore the data and communicate the outcomes will be highlighted throughout. Applications will include visualization, clustering, ranking, pattern recognition, anomaly detection, data mining, classification, regression, forecasting and risk analysis. Participants will obtain hands-on experience during project assignments that utilize publicly available datasets and address practical challenges.
18-790 Introduction to Deep Learning and Pattern Recognition for Computer Vision Part I
Fall: 6 units
This course covers the first half of 18794 - Introduction to Deep Learning and Pattern Recognition for Computer Vision, introducing the basic Deep Learning ML techniques in the course. The course will first introduce Neural networks and how they perform recognition and their evolution to Deep Neural Networks, as well as different DNN backbone architectures (e.g. VGG, ResNet + variations, MobileNets etc.) used for classification. We will overview DL architectures for object detection (to include a large range of algorithms such as anchor-based and anchor free, single stage, two-stage as well as well-known Yolo, SSD, FCOS, CornerNet, Mask-RCNN, DETR and others). We cover object recognition, semantic segmentation (with applications in robot vision, autonomous driving, general scene understanding, medical analysis), and other topics including instance segmentation, loss functions, feature extraction, Transformers, Generative Models, Neural Architecture Search (NAS), low form factor Deep Learning architectures for embedded platforms (e.g., Jetson Nano, AGX), TensorRT for model optimization on Nvidia embedded platforms, and ONNX model conversions.
18-792 Advanced Digital Signal Processing
Fall: 12 units
This course will examine a number of advanced topics and applications in one-dimensional digital signal processing, with emphasis on optimal signal processing techniques. Topics will include modern spectral estimation, linear prediction, short-time Fourier analysis, adaptive filtering, plus selected topics in array processing and homomorphic signal processing, with applications in speech and music processing. 4 hrs. lec.
Prerequisites: (21-325 Min. grade C or 36-225 Min. grade C or 36-218 Min. grade C or 36-219 Min. grade C) and (18-691 Min. grade C or 18-491 Min. grade C)
18-794 Introduction to Deep Learning and Pattern Recognition for Computer Vision
Fall: 12 units
Introduction to Deep Learning and Pattern Recognition for Computer Vision will focus on Deep Learning algorithms used in Computer Vision applications while explaining the pattern recognition aspect of these algorithms. The first half of this course is also available as a mini (18-790) which introduces students to the basic Deep Learning ML techniques in the course. The course will first introduce Neural networks and how they perform recognition and their evolution to Deep Neural Networks, as well as different DNN backbone architectures (e.g. VGG, ResNet + variations, MobileNets, etc.) used for classification. We will overview DL architectures for object detection (to include a large range of algorithms such as anchor-based and anchor free, single stage, two-stage as well as well-known Yolo, SSD, FCOS, CornerNet, Mask-RCNN, DETR and others). We cover object recognition, semantic segmentation (with applications in robot vision, autonomous driving, general scene understanding, medical analysis), and other topics including instance segmentation, loss functions, feature extraction, Transformers, Generative Models, Neural Architecture Search (NAS), low form factor Deep Learning architectures for embedded platforms (e.g., Jetson Nano, AGX), TensorRT for model optimization on Nvidia embedded platforms, and ONNX model conversions.
Prerequisite: 36-219 Min. grade C
18-799 Special Topics in Signal Processing
Fall and Spring: 12 units
Please go to the ECE Website to view "Special Topics in Signal Processing" course descriptions. http://www.ece.cmu.edu/courses/index.html
18-819 Special Topics in Applied Physics
Fall and Spring: 12 units
Please go the the ECE Website to view "Special Topics in Applied Physics" course descriptions. http://www.ece.cmu.edu/courses/index.html
18-843 Mobile and Pervasive Computing
Fall: 12 units
This is a course exploring research issues in the newly emerging field of mobile computing. Many traditional areas of computer science and computer engineering are impacted by the constraints and demands of mobility. Examples include network protocols, power management, user interfaces, file access, ergonomics, and security. This will be an "advanced" course in the truest sense and #8212;- most, if not all, the topics discussed will be ones where there is little consensus in the research community on the best approaches. The course will also offer significant "hand-on" experience in this area. Each student will have to present and lead the discussion on a number of papers. Students will work in groups of three under the guidance of a mentor on a hands-on project. Each student will also be required to write one of two documents: (a) a research proposal (similar in spirit to an NSF proposal) on an idea in mobile computing or (b) a short business plan for a commercial opportunity in mobile computing. Grading will be based on the quality of the presentations, the project, and the proposal or business plan. Prerequisites: 15-410 and senior or graduate standing.
Prerequisite: 15-410 Min. grade C
18-844 Embedded Machine Learning
Fall: 12 units
Embedded or "edge" devices with sensors generate a tremendous amount of data every second. Sending these data to the cloud for intelligent decision making by machine learning models consumes energy and imposes undesired latency and cost. Processing the data locally on the edge lowers latency, energy, and cost. This course introduces deep neural network architectures, such as dense, convolutional, and recurrent networks, and their respective applications and training in the cloud. Students then learn to downsize their trained models so they can deploy them for inferencing on microcontrollers running on the edge with power and computation constraints. Students are encouraged to create their own projects drawing from such fields as agriculture, environment, conservation, health, manufacturing, or home automation. This course is cross-listed as 18444 and 18844. Although students in 18444 and 18844 will share lectures, students in 18444 and 18844 will receive different homework assignments, design projects, and exams.
18-847 Special Topics in Computer Systems
Fall and Spring: 12 units
Please refer to the ECE website for descriptions of each topic: https://courses.ece.cmu.edu/

Course Website: https://courses.ece.cmu.edu/
18-848 Special Topics in Embedded Systems
Intermittent: 12 units
Please refer to the ECE website for descriptions of each topic: https://courses.ece.cmu.edu/
18-853 Introduction to XR Systems
Fall: 12 units
Digitization of reality is at the cusp of widespread adoption; it also embodies a unique convergence of techniques that span the gamut of electrical and computer engineering. This course introduces students to augmented/virtual/mixed reality systems, or what is broadly referred to as extended reality (XR). The course covers hardware and software topics central to XR systems, namely, content capture, streaming, and display, looking at both commercial and research- grade systems. A course project will allow students to experience and innovate in this space.
Prerequisites: 18-290 Min. grade C and (18-213 Min. grade C or 18-613 Min. grade C)
18-859 Special Topics in Communications
Fall: 12 units
Please go to the ECE Website to view "Special Topics in Communications" course descriptions. http://www.ece.cmu.edu/courses/index.html
18-861 Energy Project Development and Finance
Fall: 6 units
This course will introduce concepts and tools for the development and analysis of energy-sector or energy-enabled projects. Students will learn about the project development processes through cases studies in the African context. They will also develop the ability to perform basic technical and economic feasibility assessments through directed projects. Topics to be discussed include financial modeling, technical performance estimation, social and environmental impact assessment and regulatory/policy analysis.
18-862 Control of Grid-Connected Machines & Converters
Fall: 12 units
Electric machines are the backbone of power systems, and any production process in the world. However, if uncontrolled or uncoordinated, they cause blackouts. Converters for renewables and electric vehicles are also challenging engineers to revisit and revise electric machine analysis and control. This course offers a classically-based, yet forward looking understanding of electric machines, converters, their operation, control and applications in vehicular technology and distributed generation, as well as their effects at system level.
18-865 Photovoltaic Systems Engineering
Fall: 6 units
This course introduces basic engineering concepts for photovoltaic systems. Topics covered include solar resource assessment, PV cells and modules, system components, performance modeling, system sizing, loss mechanisms, energy yield assessment and project economics. Different applications and business models for PV technology will be discussed including utility scale PV power plants, rooftop systems and off-grid systems. The implications of relevant policy will be explored including net metering and independent power producers. The course will be interesting to a general audience but is focused in particular on applications in the developing world.
18-866 Off-Grid Electricity Systems
Spring: 6 units
Over one billion people in the world still lack access to electricity, many of them out of reach of the electricity grid in the near term. This course will explore the technologies and architectures used to provide electricity services in off-grid regions of the developing world. Basic system design principles will be discussed and applied. Students will use energy modeling software to characterize the performance and economic viability of off-grid electricity systems. In addition to studying off-grid technologies, the course will also explore the context in which these systems are deployed and their role in enabling development.
18-867 Applied Smart Grid Telecoms
Spring: 6 units
This course examines applications of standards for communications protocols in smart grids, covering relevant standards such as IEC61850 and DNP3. Participants will complete assignments based on real world examples that explore the implementation and limitations of smart grids telecommunications. Appropriate for communications engineers wanting to understand the power grid, and power engineers wanting to develop their applied knowledge of communications.
18-873 Spacecraft Design-Build-Fly Laboratory
Fall: 12 units
Spacecraft design is a truly interdisciplinary subject that draws from every branch of engineering. This course integrates broad skillsets from mechanical engineering, electrical and computer engineering, computer science, and robotics toward the goal of designing, building, testing, and flying a small spacecraft over the course of two semesters. Students will engage directly in all aspects of the spacecraft mission lifecycle from initial requirements definition through mission operations. YES, WE ARE REALLY GOING TO LAUNCH A SATELLITE INTO SPACE AS PART OF THIS COURSE. Students will work in subsystem teams, each focusing on some aspect of the spacecraft, but will be exposed to many different disciplines and challenges. Practical, hands-on, engineering skills will be emphasized, along with building and testing physical hardware and flight software.
18-883 Special Topics in Energy Systems
Fall and Spring: 6 units
Please see the ECE website for a full course description describing the sections of this course. https://courses.ece.cmu.edu/
18-898 Special Topics in Signal Processing
Fall and Spring: 12 units
Please refer to the ECE website for descriptions of each topic: https://courses.ece.cmu.edu/

Faculty

GEORGE AMVROSIADIS, Associate Research Professor of Electrical and Computer Engineering – Ph.D., University of Toronto, Canada; Carnegie Mellon, 2018–

JIM BAIN, Associate Department Head for Academic Affairs and Professor of Electrical and Computer Engineering and Materials Science Engineering; Associate Director, DSSC – Ph.D., Stanford University; Carnegie Mellon, 1993–

JAMES BARR VON OEHSEN, Research Professor of Electrical and Computer Engineering; Director, Pittsburgh Supercomputing Center (PSC) – Ph.D., Rutgers University ; Carnegie Mellon, 2023–

LUJO BAUER, Professor of Electrical and Computer Engineering – Ph.D., Princeton University; Carnegie Mellon, 2005–

THEO BENSON, Professor of Electrical and Computer Engineering – Ph.D., University of Wisconsin-Madison; Carnegie Mellon, 2022–

VIJAYAKUMAR BHAGAVATULA, Interim Dean, College of Engineering; U.A. and Helen Witaker Professor of Electrical and Computer Engineering, Affiliated Faculty, DSSC – Ph.D., Carnegie Mellon University; Carnegie Mellon, 1982–

SHAWN BLANTON, Associate Department Head for Research; Joseph F. and Nancy Keithley Professor of Electrical and Computer Engineering – Ph.D., University of Michigan; Carnegie Mellon, 1995–

DAVID BRUMLEY, Professor of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2008–

MARK BUDNIK, Teaching Professor of Electrical and Computer Engineering – Ph.D., Purdue University; Carnegie Mellon, 2021–

L. RICHARD CARLEY, Professor of Electrical and Computer Engineering; Affiliated Faculty, DSSC – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 1984–

SARAH CEN, Assistant Professor of Electrical and Computer Engineering – Ph.D., Stanford University; Carnegie Mellon, 2025–

MAYSAM CHAMANZAR, Dr. William D. and Nancy W. Strecker Career Development Associate Professor, Electrical and Computer Engineering – Ph.D., Georgia Institute of Technology; Carnegie Mellon, 2015–

JUSTIN CHAN, Assistant Professor of Electrical and Computer Engineering – Ph.D, University of Washington; Carnegie Mellon, 2024–

BEIDI CHEN, Assistant Professor of Electrical and Computer Engineering – Ph.D., Rice University; Carnegie Mellon, 2023–

VANESSA CHEN, Associate Professor of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2019–

MARC DANDIN, Associate Professor of Electrical and Computer Engineering – Ph.D., University of Maryland, College Park; Carnegie Mellon, 2019–

HAKAN ERDOGMUS, Teaching Professor of Electrical and Computer Engineering; Carnegie Mellon University Silicon Valley – Ph.D., Université du Québec; Carnegie Mellon, 2014–

GIULIA FANTI, Angel Jordan Associate Professor of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2017–

GARY FEDDER, Hamerschlag University Professor of Electrical and Computer Engineering; Co-Director MEMS, Affiliated Faculty DSSC – Ph.D., University of California at Berkeley; Carnegie Mellon, 1994–

FRANZ FRANCHETTI, Kavčić-Moura Professor of Electrical and Computer Engineering; Associate Dean for Research, College of Engineering and Director, Engineering Research Accelerator – Ph.D., Vienna University of Technology; Carnegie Mellon, 2005–

GREGORY R. GANGER, Jatras Professor of Electrical and Computer Engineering; Director, Parallel Data Lab – Ph.D., University of Michigan; Carnegie Mellon, 1997–

PHILLIP GIBBONS, Professor of Electrical and Computer Engineering and Computer Science – Ph.D., University of California at Berkeley; Carnegie Mellon, 2015–

VIRGIL GLIGOR, Professor of Electrical and Computer Engineering; Co-Director CyLab – Ph.D., University of California at Berkeley; Carnegie Mellon, 2008–

PULKIT GROVER, Professor of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2013–

JAMES HOE, Professor of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 2000–

LIMIN JIA, Research Professor of Electrical and Computer Engineering; Affiliated Faculty, CyLab – Ph.D., Princeton University; Carnegie Mellon, 2013–

CARLEE JOE-WONG, Robert E. Doherty Career Development Professor of Electrical and Computer Engineering – Ph.D., Princeton University; Carnegie Mellon, 2016–

GAURI JOSHI, Associate Professor of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 2017–

SOUMMYA KAR, The Buhl Professor of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2011–

GREGORY KESDEN, Teaching Professor of Electrical and Computer Engineering – MCS, Clemson University; Carnegie Mellon, 2017–

HYONG S. KIM, Drew D. Perkins Professor of Electrical and Computer Engineering; Director, CMU-Thailand – Ph.D., University of Toronto; Carnegie Mellon, 1990–

SWARUN S. KUMAR, Sathaye Family Foundation Career Development Professor of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 2016–

QING LI, Associate Professor of Electrical and Computer Engineering – Ph.D., Georgia Institute of Technology; Carnegie Mellon, 2018–

TZE MENG LOW, Associate Research Professor of Electrical and Computer Engineering – Ph.D., University of Texas at Austin; Carnegie Mellon, 2013–

BRANDON LUCIA, Kavčić-Moura Professor of Electrical and Computer Engineering – Ph.D., University of Washington; Carnegie Mellon, 2014–

KEN MAI, Principal Systems Scientist of Electrical and Computer Engineering – Ph.D., Stanford University; Carnegie Mellon, 2005–

THERESA MAYER, Professor of Electrical and Computer Engineering – Ph.D., Purdue University; Carnegie Mellon, 2023–

M. GRANGER MORGAN, Professor of Electrical and Computer Engineering; Hamerschlag University Professor of Engineering and Public Policy – Ph.D., University of California at San Diego; Carnegie Mellon, 1974–

JOSÉ M. F. MOURA, Philip L. and Marsha Dowd University Professor of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 1986–

TAMAL MUKHERJEE, Associate Department Head for Students and Professor of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 1996–

WILLIAM NACE, Teaching Professor of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2008–

YORIE NAKAHIRA, Assistant Professor of Electrical and Computer Engineering – Ph.D., California Institute of Technology; Carnegie Mellon, 2020–

PRIYA NARASIMHAN, Professor of Electrical and Computer Engineering – Ph.D., University of California at Santa Barbara; Carnegie Mellon, 2001–

ROHIT NEGI, Professor of Electrical and Computer Engineering – Ph.D., Stanford University; Carnegie Mellon, 2000–

SAMUEL PAGLIARINI, Special Professor of Electrical and Computer Engineering – Ph.D., Télécom Paris (now Institut Polytechnique de Paris), France; Carnegie Mellon, 2024–

BRYAN PARNO, Kavčić-Moura Professor of Electrical and Computer Engineering and Computer Science – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2017–

GIANLUCA PIAZZA, STMicroelectronics Professor of Electrical and Computer Engineering; Director, Nanofab – Ph.D., University of California at Berkeley; Carnegie Mellon, 2012–

LAWRENCE T. PILEGGI, Coraluppi Head and Tanoto Professor of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 1996–

CÉCILE PÉRAIRE, Teaching Professor of Electrical and Computer Engineering, Carnegie Mellon University Silicon Valley – Ph.D., École polytechnique fédérale de Lausanne, Switzerland; Carnegie Mellon, 2014–

GUANNAN QU, Assistant Professor of Electrical and Computer Engineering – Ph.D., Harvard University; Carnegie Mellon, 2021–

RAJ RAJKUMAR, George Westinghouse Professor of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 1992–

BARRY RAWN, Associate Teaching Professor of Electrical and Computer Engineering – Ph.D., University of Toronto; Carnegie Mellon, 2018–

ANTHONY ROWE, Siewiorek and Walker Family Professor of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2009–

ASWIN SANKARANARAYANAN, Professor of Electrical and Computer Engineering – Ph.D., University of Maryland; Carnegie Mellon, 2013–

MARIOS SAVVIDES, Bossa Nova Robotics Professor of Artificial Intelligence for Electrical and Computer Engineering; Director, CyLab Biometrics Center – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2005–

VYAS SEKAR, Tan Family Professor of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2013–

JOHN SHEN, Distinguished Service Professor of Electrical and Computer Engineering – Ph.D., University of Southern California; Carnegie Mellon, 2015–

MICHAEL SKIRPAN, Assistant Teaching Faculty for Electrical and Computer Engineering; Executive Director, Community Forge – Ph.D., Colorado University at Boulder; Carnegie Mellon, 2019–

LEONARDO DA SILVA SOUSA, Assistant Teaching Professor of Electrical and Computer Engineering; Carnegie Mellon University Silicon Valley – Ph.D., Pontifícia Universidade Católica do Rio de Janeiro; Carnegie Mellon, 2020–

TATHAGATA SRIMANI, Assistant Professor of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 2024–

AKSHITHA SRIRAMAN, Assistant Professor of Electrical and Computer Engineering – Ph.D., University of Michigan; Carnegie Mellon, 2021–

PETER STEENKISTE, Professor of Electrical and Computer Engineering and Computer Science – Ph.D., Stanford University; Carnegie Mellon, 1993–

RICHARD STERN, Professor of Electrical and Computer Engineering; Language Technologies Institute, Computer Science, and BioMedical Engineering; Lecturer, Music – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 1977–

THOMAS SULLIVAN, Teaching Professor of Electrical and Computer Engineering; Lecturer, Music – Ph.D., Carnegie Mellon University; Carnegie Mellon, 1996–

OZAN TONGUZ, Professor of Electrical and Computer Engineering – Ph.D., Rutgers University; Carnegie Mellon, 2000–

ELIAS TOWE, Professor of Electrical and Computer Engineering; Grobstein Professor of Materials Science and Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 2001–

RIAD WAHBY, Assistant Professor of Electrical and Computer Engineering – Ph.D., Stanford University; Carnegie Mellon, 2022–

RAFAL WLODARSKI, Assistant Teaching Professor of Electrical and Computer Engineering; Carnegie Mellon University Silicon Valley – Ph.D., Lodz University of Technology, Poland; Carnegie Mellon, 2022–

OSMAN YAĞAN, Research Professor of Electrical and Computer Engineering – Ph.D., University of Maryland at College Park; Carnegie Mellon, 2013–

ZIAD YOUSSFI, Teaching Professor of Electrical and Computer Engineering – Ph.D., Michigan State University; Carnegie Mellon, 2022–

BYRON YU, Professor of Electrical and Computer Engineering; Gerard G. Elia Career Development Professor of Biomedical Engineering – Ph.D., Stanford University; Carnegie Mellon, 2010–

TOM ZAJDEL, Assistant Teaching Professor of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2021–

ANDREA ZANETTE, Assistant Professor of Electrical and Computer Engineering – Ph.D., Stanford University ; Carnegie Mellon, 2024–

XU ZHANG, Associate Professor of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 2019–

SIYANG ZHENG, Professor of Electrical and Computer Engineering and Biomedical Engineering – Ph.D., California Institute of Technology; Carnegie Mellon, 2019–

JIMMY (JIAN-GANG) ZHU, ABB Professor of Electrical and Computer Engineering; Director DSSC; Professor of Materials Science and Engineering – Ph.D., University of California at San Diego; Carnegie Mellon, 1997–

Courtesy

YURVRAJ AGARWAL, Assistant Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at San Diego; Carnegie Mellon, 2014–

BURCU AKINCI, Paul Christiano Professor and Department Head of Civil and Environmental Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Stanford University; Carnegie Mellon, 2000–

JOÃO BARROS, Research Professor of Carnegie Mellon University Africa; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Technische Universitaet Muenchen, Germany; Carnegie Mellon, 2004–

NATHAN BECKMANN, Associate Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 2017–

SARAH BERGBREITER, Professor of Mechanical Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2018–

MARIO BERGES, Assistant Professor of Civil and Environmental Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2017–

FRASER BROWN, Assistant Professor of Computer Science (Software and Societal Systems Department); Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Stanford University; Carnegie Mellon, 2022–

TIMOTHY X. BROWN, Distinguished Service Professor of Engineering and Public Policy, Director of Kigali Collaborative Research Center Carnegie Mellon University Africa; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., California Institute of Technology; Carnegie Mellon, 2013–

KATHLEEN CARLEY, Professor of Computer Science (Software and Societal Systems Department), Director of the Center for Computational Analysis of Social and Organizational Systems; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Harvard University; Carnegie Mellon, 2011–

STEVE CHASE, Professor of BioMedical Engineering and Center for the Neural Basis of Cognition, Dietrich College Humanities and Social Sciences; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Johns Hopkins University; Carnegie Mellon, 2012–

TIANQI CHEN, Assistant Professor of Machine Learning, Courtesy Faculty Of Electrical and Computer Engineering – Ph.D., University of Washington; Carnegie Mellon, 2024–

NICOLAS CHRISTIN, Professor of Computer Science (Software and Societal Systems Department) and Professor of Engineering & Public Policy; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Virginia; Carnegie Mellon, 2005–

KEENAN CRANE, Associate Professor of Computer Science, Courtesy Faculty of Electrical and Computer Engineering – Ph.D., California Institute of Technology; Carnegie Mellon, 2015–

LORRIE FAITH CRANOR, Associate Department Head and FORE Systems Professor of Engineering and Public Policy; Director CyLab Usable Privacy and Security Laboratory; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Washington University; Carnegie Mellon, 2008–

FERNANDO DE LA TORRE, Associate Research Professor of Robotics Institute, Director of the Human Sensing Laboratory; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Ramon Llull University, Barcelona; Carnegie Mellon, 2002–

JOHN DOLAN, Senior Systems Scientist of Robotics Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2006–

MATT FREDRIKSON, Assistant Professor of Institute for Software Research; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Wisconsin-Madison; Carnegie Mellon, 2016–

IOANNIS GKIOULEKAS, Assistant Professor of Robotics Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Harvard University; Carnegie Mellon, 2017–

ASSANE GUEYE, Assistant Teaching Professor of Carnegie Mellon University Africa; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2020–

BIN HE, Trustee Professor of Biomedical Engineering; Professor of Center for the Neural Basis of Cognition; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Tokyo Institute of Technology; Carnegie Mellon, 2018–

FARNAM JAHANIAN, President of Carnegie Mellon University; Coutesy Faculty of Electrical and Computer Engineering – Ph.D., University of Texas at Austin; Carnegie Mellon, 2014–

B. REEJA JAYAN, Professor of Mechanical Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Texas at Austin; Carnegie Mellon, 2015–

AARON JOHNSON, Assistant Professor of Mechanical Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Pennsylvania; Carnegie Mellon, 2016–

JANA KAINERSTORFER, Professor of Biomedical Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Vienna/NIH; Carnegie Mellon, 2015–

SHAWN KELLY, Senior Systems Scientist of Engineering Research Accelerator; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 2012–

KRIS KITANI, Associate Research Professor of Robotics Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Tokyo; Carnegie Mellon, 2016–

ZICO KOLTER, Assistant Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Stanford University; Carnegie Mellon, 2012–

DAVE LAUGHLIN, ALCOA Professor of Materials Science Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 1974–

PHILIP LEDUC, William J. Brown Professor of Mechanical Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Johns Hopkins University; Carnegie Mellon, 2002–

CHANGLIU LIU, Assistant Professor of Robotics Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2019–

SARA MAJETICH, Professor of Physics; Courtesy Faculty of Electrical and Computer Engineering; Affiliated Faculty DSSC – Ph.D., University of Georgia; Carnegie Mellon, 2010–

ZACHARY MANCHESTER, Assistant Professor of Robotics Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Cornell University; Carnegie Mellon, 2020–

SCOTT MCMILLAN, Principal Research Engineer of Advanced Computing Laboratory, Software Engineering Institute; Courtesy Professor of Electrical and Computer Engineering – Ph.D., The Ohio State University; Carnegie Mellon, 2013–

TODD MOWRY, Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering; – Ph.D., Stanford University; Carnegie Mellon, 1997–

SRINIVASA NARASIMHAN, Associate Professor of Robotics Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Columbia University; Carnegie Mellon, 2016–

DESTENIE NOCK, Assistant Professor of Engineering and Public Policy, Assistant Professor of Civil and Environmental Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Massachusetts Amherst; Carnegie Mellon, 2020–

MATTHEW O'TOOLE, Assistant Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Toronto; Carnegie Mellon, 2018–

RICCARDO PACCAGNELLA, Assistant Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Illinois at Urbana-Champaign; Carnegie Mellon, 2023–

CORINA PASAREANU, Senior Research Scientist, Carnegie Mellon University Silicon Valley; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Kansas State University; Carnegie Mellon, 2015–

JON M. PEHA, Professor of Engineering and Public Policy; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Stanford University; Carnegie Mellon, 1991–

ANDRE PLATZER, Associate Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Oldenburg, Germany; Carnegie Mellon, 2010–

BHIKSHA RAJ RAMAKRISHNAN, Professor of Language Technologies Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2009–

PRADEEP RAVIKUMAR, Professor of Machine Learning, Courtesy Professor of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2009–

RAJ REDDY, Mozah Bint Nasser University Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Stanford University; Carnegie Mellon, 2000–

MAJD SAKR, Teaching Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Pittsburgh; Carnegie Mellon, 2015–

MAHADEV SATYANARAYANAN, Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 1983–

SEBASTIAN SCHERER, Associate Research Professor of Robotics Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Carnegie Mellon University; Carnegie Mellon, 2019–

JEFF SCHNEIDER, Research Professor of Robotics Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Rochester; Carnegie Mellon, 2013–

SRINIVASAN SESHAN, Associate Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2000–

NIHAR SHAH, Assistant Professor of Machine Learning: Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2017–

SHENG SHEN, Professor of Mechanical Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 2011–

JUSTINE SHERRY, Assistant Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2017–

GUANYA SHI, Assistant Professor of Robotics Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., California Institute of Technology; Carnegie Mellon, 2023–

BARBARA SHINN-CUNNIGHAM, Glen de Vries Dean, Mellon College of Science; Director of Neuroscience Institute; George A. and Helen Dunham Cowan Professor of Auditory Neuroscience, Psychology and Biomedical Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 2018–

RAMTEEN SIOSHANSI, Professor of Engineering and Public Policy; Director of the Carnegie Mellon Electricity Industry Center; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2023–

MARVIN A. SIRBU, Professor of Engineering and Public Policy; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Massachusetts Institute of Technology; Carnegie Mellon, 1985–

DIMITRIOS SKARLATOS, Assistant Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Illinois at Urbana-Champaign; Carnegie Mellon, 2021–

VIRGINIA SMITH, Associate Professor of Machine Learning; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2018–

REBECCA TAYLOR, Assistant Professor of Mechanical Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Stanford University; Carnegie Mellon, 2016–

SRIDHAR TAYUR, Ford Distinguished Research Chair and Professor of Tepper School of Business; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Cornell University; Carnegie Mellon, 2017–

BENJAMIN TITZER, Principal Researcher of Software and Societal Systems; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Los Angeles; Carnegie Mellon, 2022–

RASHMI VINAYAK, Assistant Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2017–

WEINA WANG, Assistant Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Arizona State University; Carnegie Mellon, 2018–

SHINJI WATANABE, Associate Professor of Language Technologies Institute; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., Waseda University, Tokyo, Japan; Carnegie Mellon, 2020–

SOSSENA WOOD, Assistant Professor of Biomedical Engineering; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Pittsburgh; Carnegie Mellon, 2022–

MIN XU, Associate Professor of Computational Biology; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of Southern California; Carnegie Mellon, 2009–

WENTING ZHENG, Assistant Professor of Computer Science; Courtesy Faculty of Electrical and Computer Engineering – Ph.D., University of California at Berkeley; Carnegie Mellon, 2021–

Back to top