## 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)
- 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)
- CMSC498I/F/K Special Topics (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) - CMSC/AMSC 477
^{[1]}Optimization (3) - ENEE459B
^{[1]}Reverse Engineering and Hardware Security Laboratory (3) - ENEE 459R
^{[1][4]}Compliers^{[4] }(3)

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

(minimum 3 credits)

(minimum 3 credits)

- ENEE 313 Introduction to Device Physics (3)
- ENEE 359V Advanced Digital Design with HDL (2)
- 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 435 Computing Models of the Brain (3)
- ENEE 440 Microprocessors (3)
- ENEE 459A CAC Tools (1)
- ENEE 459C Computer Security (3)
- ENEE 459J Consumer Electronics (3)
- ENEE 459P Parallel Algorithms (3)
- ENEE 459R
^{[1]}Compilers (3) - ENEE 460 Control Systems (3)
- ENEE 463 Digital Control Systems (3)
- ENEE 469A On Modeling and Controller Design (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 419W Advanced Operational Amps Laboratory (3)
- 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 that meet the following criteria:

- The course prefix must be one of the following: AMSC, ASTR, BCHM, BIOE, BSCI, CHEM, CMSC, ENAE, ENBE, ENCE, ENCH, ENEE, ENES, ENFP, ENMA, ENME, ENNU, ENRE, MATH, PHYS, or STAT
- The course does not appear on the list of prohibited courses.

Upper-level courses which do not begin with the prefixes in the list above may be approved on a case-by-case basis. To qualify for approval, more than one off-list course must be selected and they must be connected by a theme which is consistent with the student's stated professional goals. However, under no circumstances with exceptions be granted for courses on the prohibited list.

**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__

**OR**