Computer Engineering Major

Program Director: Donald Yeung, Ph.D.

The Bachelor of Science in Computer Engineering degree program at the University of Maryland is accredited by the Engineering Accreditation Commission of ABET,, under the General Criteria and Program Criteria for Electrical, Computer, Communications, Telecommunication(s) and Similarly Named Engineering Programs.

The computer engineering major combines the strengths of both the Department of Electrical and Computer Engineering and the Department of Computer Science to prepare students for careers in the computer industry. The program encompasses the study of hardware, software, and systems questions that arise in the design, development, and application of computers and embedded systems. Specifically, computer engineering students will have a knowledge of hardware systems (electrical networks, electronics, and VLSI); a knowledge of software systems (algorithms, data structures, and operating systems); and a knowledge of how these two domains interact (digital logic, signal and system theory, computer architecture and performance analysis). Computer Engineering students will learn about everything that goes into digital and computing systems, from solid state physics to CMOS VLSI design, to computer architecture to programming, and from operating systems to compiler and language theory. Courses offered by this department may be found under the following acronym: ENEE and CMSC.

Program Educational Objectives

Broadly stated, the Program Educational Objectives (PEOs) for the undergraduate major in computer engineering pertain to the accomplishments and performance of our students within a few years from graduation. These objectives are determined in consultation with the various constituencies of the computer engineering program and agreed upon and approved by a consensus of the faculty.

Within a few years from graduation, a graduate of computer engineering will have engaged in professional development, and will have attained any of the following program educational objectives:

  1. Achieve advanced technical expertise and/or advance to a leadership position in industry or government.
  2. Earn a graduate degree from a respected graduate program in computer engineering, electrical engineering, or related field.
  3. Become an innovator and/or entrepreneur in computer engineering, electrical engineering, or related space
  4. Use their professional knowledge, skills and abilities, as well as their sense of ethical responsibility, to make a positive impact on societal and environmental concerns and/or to improve the climate for diversity, equity and inclusiveness within the profession

Student Learning Outcomes

A comprehensive set of Student Learning Outcomes (SLOs) has been derived from the Program Educational Objectives (PEOs). These SLOs comprise the knowledge and skills all Computer Engineering students are expected to possess by the time they graduate so the PEOs can be accomplished. The SLOs are:

  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.

As in all engineering degrees, the student starts out with a core curriculum in mathematics and basic science. Subsequent years of study involve courses covering a balanced mixture of hardware, software, hardware-software trade-offs, and basic modeling techniques used to represent the computing process. Courses covering algorithms, data structures, digital systems, computer organization and architecture, software and hardware design and testing, operating systems, and programming languages will be included. Elective courses must include electrical engineering and computer science courses and technical courses outside the departments. Students must earn a grade of "C-" or higher in all engineering, mathematics, and science courses as well as the prerequisites for these courses. A sample program is shown below.

Freshman Year
Semester 1CreditsSemester 2Credits
General Education33General Education33
 17 17
Sophomore Year
Semester 1CreditsSemester 2Credits
General Education33General Education33
 18 17
Junior Year
Semester 1CreditsSemester 2Credits
ENEE2003ENEE324 or STAT 40043
ENEE304 or 32253CMSC3513
CMSC3303Major Technical Elective Category A3
Major Technical Elective Category A3General Education33
 15 15
Senior Year
Semester 1CreditsSemester 2Credits
Major Technical Elective Category B3Major Technical Elective Category D2
Major Technical Elective Category C3Major Technical Elective Category E3
Major Technical Elective Category C3CMSC412 or ENEE 4474
Major Technical Elective Category F3Major Technical Elective3
General Education33Professional Writing Requirement3
 15 15
Total Credits 129

ENEE101 and ENES100 cannot be taken in the same semester. Students may take these courses consecutively within their first year in the order of choice.


Students are required to complete CMSC131 prior to taking CMSC132 unless they have AP credit for CMSC131 (5 on the JAVA A exam, 4 or 5 on the JAVA AB) or have satisfactorily passed the Computer Science exemption exam.


Note: Please see


Some category C, D, and E courses require ENEE324 as a prerequisite.


Course selection will determine courses taken in Category C, D, and E courses.

Technical Elective Requirements 

Computer Engineering Majors are required to complete 26 credits of computer engineering technical electives. These electives must be selected from the six following categories, each of which has minimum credit requirements. 

Category Electives Credits
Category A Mathematics and Basic Science Electives minimum of 6
Category B Computer Science Theory and Applications minimum of 3
Category C Electrical Engineering Theory and Applications minimum of 6
Category D Advanced Laboratory minimum of 2
Category E Capstone Design minimum of 3
Category F General Technical Electives minimum of 3

Please read carefully, and make a note of the following special cases and other items:

  1. General Technical Electives. The 3 credits may be any upper-level course (300 level or higher) from the math, engineering, and basic science disciplines whose courses start with the following prefixes and who do not appear on the list of unacceptable courses available from the Undergraduate Studies Office: AMSC, BCHM, BIOE, BSCI, CHEM, CMSC, ENAE, ENCE, ENCH, ENEE, ENES, ENFP, ENMA, ENME, ENNU, ENRE, MATH, PHYS, and STAT.  The most up-to-date list of approved and unacceptable courses will always be available from the Undergraduate Studies Office and on the ECE website. The 3 credits may be any upper-level course (300 level or higher) whose prefix is not given in the list above, assuming that the student:
    1. completes the application to allow the course to count as a general elective,
    2. demonstrates how this course complements the student's professional goals, and
    3. receives signed approval of the Associate Chair for Undergraduate Education.
  2. Additional Computer Engineering Technical Electives (3 Credits). In order to meet the required 26 credits of Computer Engineering Technical Electives, students may take an additional course from Categories A-F. The additional Technical Elective Course cannot be a course already used to satisfy any of the categories. Students opting to take a second Category D or E course should note the registration restrictions the ECE Department has on second advanced lab and/or capstone design courses (see your advisor for details).
  3. Two credits of ENEE499 may be used to satisfy the Advanced Laboratory requirement subject to approval by the faculty supervisor and the Associate Chair. The maximum number of ENEE499/ENEE499L credits that may be applied towards Category C requirements is five, except for students in the departmental honors program, who may take up to six credits.
  4. Courses may not be counted for two different Technical Elective categories.
  5. Disciplinary foundation CMSC or ENEE courses (i.e. CMSC412, ENEE447, CMSC330, CMSC351, ENEE303, ENEE322, ENEE350, and ENEE446) may not be used to fulfill any Technical Elective Categories.
  6. Courses listed in the prohibited course list may not be used for any technical electives category.
  7. If you have any questions on how these requirements affect your current selection of technical electives, please contact an advisor.

Click here for roadmaps for graduation plans in the A. James Clark School of Engineering.

Additional information on developing a graduation plan can be found on the following pages: