## Computer Engineering Technical Electives

Computer Engineering majors are required to complete twenty-two (22) credits of computer engineering technical electives. These electives must be selected from among six categories, each of which has minimum credit requirements. The categories and links to approved courses are listed below. (Note: Please note that the some courses listed below may not be offered every single semester. Be sure to check both in the Testudo website and with your advisor to make sure the course is available.)

**Category A: Mathematics and Basic Science Electives**

(minimum 6 credits, of which 3 must be 400-level)

(minimum 6 credits, of which 3 must be 400-level)

- CMSC/MATH456/CMSC498R/ENEE459E
^{[6]}Cryptology (3) - CMSC/AMSC 460
^{[1]}Computational Methods (3) - CMSC/AMSC 466
^{[1]}Introduction to Numerical Analysis I (3) - CMSC/AMSC 475
^{[1]}Combinatorics and Graph Theory (3) - MATH 241 Calculus III (4)
- MATH 401 Applications of Linear Algebra (3)
- MATH 406 Introduction to Number Theory (3)
- MATH 461
^{[2]}Linear Algebra for Scientists and Engineers (3) - MATH 462 Partial Differential Equations (3)
- MATH 463 Complex Variables for Scientists and Engineers (3)
- MATH 464 Transform Methods for Scientists and Engineers (3)
- MATH 4XX
^{[3]}Most 400-level Math courses, except for MATH 416 (3) - PHYS 270/271 General Physics III: Electrodynamics, Light, Relativity and Modern Physics (4)
- PHYS 406 Optics (3)
- PHYS 420 Principles of Modern Physics (3)
- PHYS 499I Physical Foundations of Information Technology (3)
- PHYS 4XX
^{[3]}Most 400-level Physics courses (3)

**Category B: Computer Science Theory and Applications **

(minimum 3 credits)

(minimum 3 credits)

- CMSC 414 Computer and Network Security (3)
- CMSC 417 Computer Networks (3)
- CMSC 420 Data Structures (3)
- CMSC 421 Intro to Artificial Intelligence (3)
- CMSC422 Intro to Machine Learning (3)
- CMSC 423 Bioinf. Algorithms, Databases, & Tools (3)
- CMSC 424 Database Design (3)
- CMSC 426 Image Processing (3)
- CMSC 427 Computer Graphics (3)
- CMSC 430
^{[4]}Introduction to Compilers (3) - CMSC 433 Prog. Lang. Technologies & Paradigms (3)
- CMSC 434 Human Factors in Comp. & Information (3)
- CMSC 436 Programming Handheld Systems (3)
- CMSC 451 Design & Analysis of Comp. Algorithms (3)
- CMSC 452 Elementary Theory of Computation (3)
- CMSC 474 Introduction to Computational Game Theory (3)
- CMSC498x Special Topics (3) -
**NOTE: CMSC498 courses which are crosslisted with 400-level ENEE courses cannot be used to fulfill the Category B requirements.** - CMSC/AMSC 460
^{[1]}Computational Methods (3) - CMSC/AMSC 466
^{[1]}Introduction to Numerical Analysis I (3) - CMSC/AMSC 475
^{[1]}Combinatorics and Graph Theory (3)

**Category C: Electrical Engineering Theory and Applications**

(minimum 3 credits)

(minimum 3 credits)

- ENEE 313 Introduction to Device Physics (3)
- ENEE 380 Electromagnetic Theory (3)
- ENEE 411 (formerly 419A) Analog & Digital Electronics II (3)
- ENEE 413 (formerly 480) Fundamentals of Solid State Electronics (3)
- ENEE419R Renewable Energy
- ENEE 420 Communication Systems (3)
- ENEE 425 Digital Signal Processing (3)
- ENEE 426 Communication Networks (3)
- ENEE 440 Microprocessors (3)
- ENEE 457 Computer Security (3)
- ENEE 459A CAD Tools (1)
*NOTE: This course alone cannot satisfy category C requirement, since it is a 1-credit course.* - ENEE 459D Security Data Science (3)
- ENEE 459P Parallel Algorithms (3)
- ENEE 459V Embedded Systems (3)
- ENEE 460 Control Systems (3)
- ENEE 463 Digital Control Systems (3)
- ENEE 474 Power Systems (3)
- ENEE 475 Power Electronics (3)
- ENEE 488
^{[5]}Directed Study (1-3) - ENEE 489Q Quantum Phenomena in EE (3)
- ENEE 490 Physical Principles of Wireless Comm. (3)
- ENEE 496 Lasers & Electro-optic Devices (3)
- ENEE 499
^{[5]}Senior Research Projects in ECE (1-3)

**Category D: Advanced Laboratory
(minimum 2 credits)**

- ENEE 359F Hardware FPGA Design wieth Verilog (3)
- ENEE459B
^{[1]}Reverse Engineering and Hardware Security Laboratory (3) - ENEE 416 Integrated Circuit Fabrication Laboratory (3)
- ENEE 417 Microelectronics Design Laboratory (2)
- ENEE 428 Communication Design Laboratory (2)
- ENEE 445 Computer Laboratory (2)
- ENEE 461 Control Systems Laboratory (3)
- ENEE 473 Electric Machines Laboratory (2)
- ENEE 486 Optoelectronics Laboratory (2)
- ENEE 499L
^{[5]}Senior Research Projects in ECE (2-3)

**Category E: Capstone Design (minimum 3 credits)**

- ENEE 408A Microprocessor-Based Design (3)
- ENEE 408B Digital VLSI Design (3)
- ENEE 408C Modern Digital System Design (3)
- ENEE 408D Mixed Signal VLSI Design (3)
- ENEE 408G Multi-Media Signal Processing (3)
- ENEE 408I Autonomous Robots for Control & Co-op. (3)
- CMSC 435 Software Engineering (3)
- ENES 489P Systems Engineering

**Category F: General Technical Elective (3 credit minimum)**

Category F consists of 300 and 400-level courses outside of the Computer Engineering major. Students have the option of taking an additional ENEE or CMSC course to fulfill this requirement. For more details, please visit the General Technical Electives page.

**Footnotes**

[1] May be used for only one (1) category

[2] MATH240 may be used with permission of the ECE Department

[3] Courses on the Prohibited List cannot be used to satisfy this requirement

[4] Students may take CMSC430 or ENEE459R but not both

[5] Only 5 total credits of ENEE488/ENEE499/ENEE499L may be applied to the degree requirements

[6] Students can only take one of these courses: CMSC/MATH456 ** OR** CMSC498R

__ENEE459E. Students__

**OR****CAN NOT**use ENEE459E as a Category C course.