Computer Engineering Technical Electives

The following requirements apply to students who matriculated in Spring 2019 or any prior semesters.

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

Please note the following restrictions:

  • Courses listed below may not be counted for two different categories
  • Disciplinary foundation CMSC or ENEE courses (i.e. CMSC412, ENEE447, CMSC330, CMSC351, ENEE303, ENEE307, ENEE350, and ENEE446) may not be used to fulfill the categories below.
  • Courses listed in the prohibited course list may not be used for any technical elective categories.
Category A: Mathematics and Basic Science Electives
(minimum 6 credits, of which 3 must be 400-level)

For the latest course syllabi/information please visit the following sites: Math coursesPhysics coursesCS courses.

  • CMSC/MATH456/ENEE456 [6] Cryptography (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 403 Albebraic Structures (3)
  • MATH 405 Linear Algebra 
  • MATH 406 Introduction to Number Theory (3)
  • MATH 410 Advanced Calculus I (3)
  • MATH 411 Advanced Calculus II (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)

For the latest CMSC course syllabi, please visit the CS Class Web Pages.

  • 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 422 Intro to Machine Learning (3)
  • CMSC 423 Bioinf. Algorithms, Databases, & Tools (3)
  • CMSC 424 Database Design (3)
  • CMSC 425 Game Programming (3)
  • CMSC 426 Computer Vision (3)
  • CMSC 427 Computer Graphics (3)
  • CMSC 430 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: Special topic courses must be approved by the ECE Department. 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)

*Course has prerequisite not included in CpE major requirements.

Category D: Advanced Laboratory
(minimum 2 credits)

Category E: Capstone Design  (minimum 3 credits)

*Course has prerequisite not included in CpE major requirements.

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 (these ENEE or CMSC courses cannot be courses used to fulfill other CpE major requirements)

For more details, please visit the General Technical Electives page.


[1] May be used for only one (1) category. Students taking any of these courses as a Category B course, they must enroll in the course under CMSC.

[2] MATH240 may be used with permission of the ECE Department, however, student will need to take a 400-level Math course as their second Cat. A course. 

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

[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 ENEE456. Students CAN NOT use ENEE456 as a Category C course; nor can they use CMSC456 as a Category B course.