Computer Engineering Major

Notice of Addendum: The program description on this page was updated via an addendum. To see the update, visit ADDENDA TO THIS CATALOG.

Program Director: Donald Yeung, Ph.D.

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

The Bachelor of Science degree in Computer Engineering degree program at the University of Maryland is accredited by the Engineering Accreditation Commission of ABET, https://www.abet.org, under the General Criteria and the Computer Engineering Program Criteria.

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
CHEM1353ENES10013
CMSC1314CMSC13224
ENEE10113PHYS1613
MATH1404MATH1414
General Education33General Education33
 17 17
Sophomore Year
Semester 1CreditsSemester 2Credits
ENEE2443ENEE2224
MATH2463ENEE2054
PHYS260
PHYS261
4CMSC2164
CMSC2504ENEE2452
General Education33General Education33
 17 17
Junior Year
Semester 1CreditsSemester 2Credits
ENEE2003ENEE324 or STAT 40043
ENEE303 or 32253ENEE4463
ENEE3503CMSC3513
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 128
1

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.

2

Students may need to take CMSC131 or the computer science exemption exam before taking CMSC132.

3

Note: Please see www.4yearplans.umd.edu

4

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

5

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. They 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.  Students may use an upper level course (300 level or higher) whose prefix is not given in the list above, assuming they received approval to use such courses and the following conditions are met: (i) a student selects two or more such courses which are closely related by a theme and (ii) the student demonstrates how these courses complement their professional goals.  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. 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 Computer Engineering major requirements).
  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 EE technical elective requirements is five, except for students in the departmental honors program, who may take up to six credits.
  4. Additional Capstone Design courses can be used as substitutes for the required Electrical Engineering Theory and Applications course, and/or the required Advanced Laboratory course, provided one of the following is completed: ENEE408A, ENEE408B or ENEE408C.
  5. Courses may not be counted for two different Technical Elective categories.
  6. 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.
  7. Courses listed in the prohibited course list may not be used for any technical electives category.
  8. 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 four-year plans in the A. James Clark School of Engineering.

Additional information on developing a four-year academic plan can be found on the following pages: