University of Southern California

Viterbi School of Engineering

Computer Engineering

Undergraduate Degree

Undergraduate Program Educational Objectives

Graduates of the Computer Engineering and Computer Science program are expected to attain the following educational objectives within a few years of graduation:

  • Graduates will apply analytical and critical thinking principles of both computer engineering and computer science to their chosen professions.
  • Graduates will successfully engage in life-long learning to continue to be contributing members of their communities in fields within and outside the traditional scope of computer engineering.
  • Graduates will exhibit high professional and ethical standards to become productive leaders in society.

Undergraduate Program Criteria

The program leading to a Bachelor of Science in Computer Engineering and Computer Science provides both breadth and depth across the range of engineering topics implied by the title. The curriculum includes probability and statistics, including appropriate applications; mathematics, including discrete mathematics through differential and integral calculus; sciences (defined as biological, chemical or physical science) to develop an understanding of the scientific method and provide students with an opportunity to experience this mode of inquiry in courses for science or engineering majors that provide some exposure to lab work; and engineering topics (including computing science) necessary to analyze and design complex electrical and electronic devices, software and systems containing hardware and software components.

The computer science portion of the curriculum covers the fundamentals of algorithms, data structures, software design, concepts of programming languages and computer organization and software; provides an exposure to a variety of programming languages and systems, including at least one higher-level language; and includes advanced course work that builds on the fundamental course work to provide depth.

Bachelor of Science in Computer Engineering and Computer Science

Students attaining the bachelor of science degree in computer engineering and computer science would possess the scientific and engineering skills and knowledge that would enable them to design and implement computer systems that effectively and efficiently integrate developing hardware and software technologies. This degree is administered jointly by the departments of Computer Science and Electrical Engineering.

The requirement for the degree is 128 units. A cumulative grade point average of C (2.0) is required in all upper division courses applied toward the major, regardless of the department in which the courses are taken.

composition/writing requirements (7 units) Units
WRIT 150 Writing and Critical Reasoning — Thematic Approaches 4
WRIT 340* Advanced Writing 3
General Education (24 units) Units
General education+ 24
Pre-Major Requirements (29-30 units) units
Engineering (2 units)
ENGR 102 Engineering Freshman Academy 2
Mathematics (16 units)
MATH 125** Calculus I 4
MATH 126 Calculus II 4
MATH 225 Linear Algebra and Differential Equations 4
MATH 226 Calculus III 4
Statistics and Probability (3-4 units)
EE 364 Introduction to Probability and Statistics for Electrical Engineering and Computer Science (3), or
MATH 407 Probability Theory (4) 3-4
Physics (8 units)
PHYS 151L** Fundamentals of Physics I: Mechanics and Thermodynamics, and 4
PHYS 152L Fundamentals of Physics II: Electricity and Magnetism; or 4
PHYS 161L Advanced Principles of Physics I, and 4
PHYS 162L Advanced Principles of Physics II 4
major requirements (51-52 units) Units
Computer Science (27 units)
CSCI 103L Introduction to Programming 3
CSCI 104L Data Structures and Object-Oriented Design 4
CSCI 170 Discrete Methods in Computer Science 4
CSCI 201L Principles of Software Development 4
CSCI 270 Introduction to Algorithms and Theory of Computing 4
CSCI 350 Introduction to Operating Systems 4
CSCI 353 Introduction to Internetworking 4
Electrical Engineering (21-22 units)
EE 109 Introduction to Embedded Systems 3
EE 209 Foundations of Digital System Design 4
EE 354L Introduction to Digital Circuits 4
EE 457 Computer Systems Organization 3
And two from the following courses:
EE 451 Parallel and Distributed Computation (3)
EE 454 Introduction to System-on-Chip (4)
EE 477L MOS VLSI Circuit Design (4) 7-8
Senior Design Project (3-4 units)
CSCI 477ab Design and Construction of Large Software Systems (2-2), or
EE 459L Embedded Systems Design Laboratory (3) 3-4
Technical electives ++ 8
Free electives 6-9
Total units 128

**Satisfies GE requirement.

++Technical Electives (8 units) Applicable courses include: CSCI 300, CSCI 310, CSCI 360, CSCI 420, CSCI 445L, CSCI 459, CSCI 460, CSCI 464, CSCI 476, CSCI 477ab, CSCI 485, CSCI 490x, CSCI 491ab, CSCI 499; EE 454L, EE 477L, EE 459L, EE 477L, EE 490x, EE 499; MATH 458. Students may also choose one adviser-approved course from the 300- and 400-level ITP offerings. Other courses may be applicable; please see an adviser for approval.

Graduate Degrees

The graduate program in computer engineering, offered through the Department of Electrical Engineering, is designed to provide students with an intensive background in the analysis, structure, design and function of digital computers and information processing systems. In addition to giving each student a fundamental background in digital logic, computer architecture and operating systems, a wide variety of elective courses allows for study in the following specialized areas: artificial intelligence; computer architecture; computer networks; computer system performance; design automation; fault-tolerant computers; microprocessors; parallel processing; real-time systems; robotics; and VLSI design.

Master of Science in Computer Engineering

The Master of Science in Computer Engineering is earned by completing an integrated program of at least 27 units of approved course work in computer engineering and computer science. No more than three courses (maximum 12 units) may be counted at the 400 level — at least 18 adviser-approved units must be taken at the 500 or 600 level.

All applicants must have taken the entrance requirement courses (or equivalent in other institutions) in order to be admitted to the program. Entrance requirement course credit cannot be applied toward the degree. A fundamental course may be waived by taking a placement exam. In case a placement exam is not offered, a fundamental course may be waived by a designated faculty member upon proof (in the form of prior course work or a placement examination, etc.) that the student already has equivalent knowledge of the course material. At least 18 units must be taken in electrical engineering, 15 of which must be taken at USC. Units taken outside of electrical engineering or computer science must be approved in advance by a computer engineering adviser and must be substantive in content and related to the degree objective. Up to 3 units of Directed Research (EE 590) with a computer engineering faculty member may be applied toward the degree.

Entrance Requirement Courses Units
CSCI 455x Introduction to Programming Systems Design 4
EE 357 Basic Organization of Computer Systems 3
Students must take or waive all four of the following fundamental courses (with the option of EE 450 or EE 503):
Fundamental Courses Units
CSCI 402x Operating Systems 4
EE 450 Introduction to Computer Networks (3), or
EE 503 Probability for Electrical and Computer Engineers (4) 3-4
EE 457 Computer Systems Organization 3
EE 477L MOS VLSI Circuit Design 4
Students must take at least two of the following core courses (with the option of EE 550 or EE 555):
Core Courses Units
EE 550 Design and Analysis of Computer Communication Networks, or
EE 555 Broadband Network Architectures 3
EE 557 Computer Systems Architecture 3
EE 577a VLSI System Design 3
Students must take at least 6 units from the following list of elective courses (cannot overlap with the core courses):
Computer Science: CSCI 545, CSCI 546, CSCI 547, CSCI 551, CSCI 555, CSCI 558L, CSCI 561, CSCI 565, CSCI 570, CSCI 584, CSCI 585, CSCI 595
Electrical Engineering: EE 532, EE 536ab, EE 550, EE 552, EE 554, EE 555, EE 557, EE 558, EE 560L, EE 577ab, EE 579, EE 630, EE 650, EE 652, EE 653, EE 657, EE 658, EE 659, EE 677, EE 680, EE 681

A minimum grade point average of 3.0 (A = 4.0) must be earned on all course work applied toward the master’s degree in computer engineering. This average must also be achieved on all 400-level and above course work attempted at USC beyond the bachelor’s degree. Transfer units which count as credit (CR) toward the master’s degree are not computed in the grade point average. All other Viterbi School of Engineering requirements for the Master of Science apply.

Doctor of Philosophy in Computer Engineering

The requirements for the Doctor of Philosophy (Ph.D.) in Computer Engineering are in strict conformity with the requirements of the Graduate School. Program requirements for the Ph.D. in Computer Engineering are the same as those for the Ph.D. in Electrical Engineering except that the major field is computer engineering. See general requirements for graduate degrees.

Screening and qualifying examinations are administered by the computer engineering faculty. Students should contact the Electrical Engineering Systems Department Office for further information.

Course Requirements units
The following course work must be completed; these courses can be included in the 60-unit course work requirement:
Take two courses from theory area and four courses from the other three areas (hardware, software and systems), including at least one course from each area to total six courses.
Theory Area Courses
CSCI 570 Analysis of Algorithms 4
EE 503 Probability for Electrical and Computer Engineers 4
EE 562 Random Processes in Engineering 3
EE 565 Information Theory 3
MATH 410 Fundamental Concepts of Modern Algebra, or
MATH 425a Fundamental Concepts of Analysis 4
MATH 432 Applied Combinatorics, or
MATH 533 Combinatorical Analysis and Algebra 4
Hardware Area Courses
EE 536a Mixed Signal Integrated Circuit Design 4
EE 552 Asynchronous VLSI Design 3
EE 557 Computer Systems Architecture 3
Software Area Courses
CSCI 565 Compiler Design, or
CSCI 595 Advanced Compiler Design 4
CSCI 577a Software Engineering 4
CSCI 585 Database Systems 4
Systems Area Courses
CSCI 551 Computer Communications 4
CSCI 555L Advanced Operating Systems 4
CSCI 561 Foundations of Artificial Intelligence 4
EE 543a Digital Control Systems 3
EE 554 Real Time Computer Systems 3
EE 550 Design and Analysis of Computer Communication Networks, or
EE 555 Broadband Network Architectures 3
EE 569 Introduction to Digital Image Processing 3