USC
University of Southern California
black horizontal bar for print styles

Computer Engineering

Undergraduate Degree

Education Program Objectives

The undergraduate program in Computer Engineering and Computer Science has the following objectives:

(1) Graduates will design and develop computer hardware that reflects the exigencies imposed by software design and development considerations.

(2) Graduates will develop software that makes efficient use of current and developing hardware technologies.

(3) Graduates will continue to develop the scientific and engineering skills and knowledge that will enable them to design and implement computer systems that effectively and efficiently integrate developing hardware and software technologies.

(4) Graduates will be exposed to extensive work experiences in both the areas of computer engineering and computer science.

(5) Most graduates will enter employment in their field.

(6) Some graduates will undertake graduate education in computer engineering and/or computer science.

(7) Graduates will engage in lifelong learning and understand contemporary developments in the field.

(8) The reputations of the Electrical Engineering and Computer Science departments, which jointly sponsor the CECS program, for attracting quality students and producing quality graduates, will be continuously improved.

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.

In order to earn the Bachelor of Science degree in Computer Engineering and Computer Science, the student must: (1) earn 128 class units as described below; (2) achieve a minimum grade point average of 2.0 on all course work undertaken at USC; (3) attain a minimum grade point average of 2.0 on all course work completed in Electrical Engineering and Computer Science at USC.

In addition, CECS majors must complete a minimum of 30 units of course work in Humanities and Social Sciences.

The following sample four-year program is only an example of how the required courses might be scheduled. A student does not have to take the required course work in the order specified in the sample program although it would be appropriate to try and follow it as closely as possible.

First Year, First SemesterUnits
EE 106LIntroduction to Computer Engineering/Computer Science3
MATH 125Calculus I4
WRIT 140*Writing and Critical Reasoning4
General Education Category VI*4
15

First Year, Second SemesterUnits
CSCI 101LFundamentals of Computer Programming3
EE 101Introduction to Digital Logic3
MATH 126Calculus II4
General Education Category V4
Free elective2
16

Second Year, First SemesterUnits
CSCI 105Object-Oriented Programming2
EE 201LIntroduction to Digital Circuits2
MATH 226Calculus III4
PHYS 151L**Fundamentals of Physics I: Mechanics and Thermodynamics4
General Education Category II4
16

Second Year, Second SemesterUnits
CSCI 102LData Structures3
EE 357Basic Organization of Computer Systems3
PHYS 152LFundamentals of Physics II: Electricity and Magnetism4
MATH 225Linear Algebra and Differential Equations4
General Education Category I4
18

Third Year, First SemesterUnits
CSCI 201LPrinciples of Software Development4
CSCI 271Discrete Methods in Computer Science3
EE 328LxCircuits and Electronics for Computer Engineers4
EE 457xComputer Systems Organization3
Free elective2-3
16-17

Third Year, Second SemesterUnits
CSCI 303Design and Analysis of Algorithms3
EE 364Introduction to Probability and Statistics for Electrical Engineering, or3
MATH 407Probability Theory4
EE 454LIntroduction to Systems Using Microprocessors4
General Education Category IV+4
Technical elective***3
17-18

Fourth Year, First SemesterUnits
CSCI 377Introduction to Software Engineering3
CSCI 402Operating Systems3
WRIT 340Advanced Writing3
Science elective****4
Technical elective***3
16

Fourth Year, Second SemesterUnits
CSCI 477Design and Construction of Large Software Systems, or
EE 459LEmbedded Systems Design Laboratory3
ISE 460Engineering Economy3
400-level math elective++4
Technical elective***3
13

Minimum total units for degree128

* Taken concurrently.

** Satisfies general education requirement for category III.

*** Three courses are required. Applicable courses include: CSCI 351, CSCI 377, CSCI 410x, CSCI 445, CSCI 459, CSCI 460, CSCI 477L, CSCI 480, CSCI 485, CSCI 490x, CSCI 499; EE 321, EE 450, EE 459L, EE 465, EE 469, EE 477L, EE 478L, EE 479, EE 490x, EE 499; MATH 458. Other courses may be applicable; please see an advisor for approval.

**** Any course in physics, biology or chemistry beyond the basic science requirement or in another scientific discipline. See department for approval.

+The university allows Engineering majors to replace the General Education Category IV with a second course in Categories I, II, or VI. Choosing this option is the most efficient way to satisfy the 30-unit requirement in Humanities and Social Sciences.
++Any 400-level mathematics course can be taken to satisfy this requirement except MATH 450.

Accelerated Dual Degree Programs: Bachelor of Science in Computer Engineering and Computer Science/Master of Science in Computer Engineering; Bachelor of Science in Computer Engineering and Computer Science/Master of Science in Computer Science

Two accelerated dual degrees are offered: B.S., Computer Engineering and Computer Science/M.S., Computer Engineering and B.S., Computer Engineering and Computer Science/M.S., Computer Science.

The accelerated dual degree program offers qualified students the opportunity to simultaneously complete the requirements for the B.S. and M.S. degrees in five years. Students are eligible for the accelerated dual degree program upon completing 96 or more units toward their B.S. with a GPA of 3.2 or higher. Qualified students who are interested should see their advisor in their junior year to begin planning for the inclusion of graduate courses during their senior year. Students should apply to the graduate program in the fall of their senior year. Eligible students will be automatically accepted to the M.S. program without needing to take the GRE. All requirements for both the B.S. and M.S. degrees must be met; however, up to six units of course work will be counted toward satisfying the unit requirements of both degrees for the B.S., Computer Engineering and Computer Science/M.S., Computer Engineering accelerated dual degree program. Up to nine units of course work will be counted toward satisfying the unit requirements for the B.S., Computer Engineering and Computer Science/M.S., Computer Science accelerated dual degree program. Application information may be obtained in the Viterbi School of Engineering Office of Admissions and Student Affairs. Students should see their departmental advisors for assistance with course selection.

Minor in Multimedia and Creative Technologies

See listing under Multimedia and Creative Technologies.

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.

It is expected that all applicants have taken the following required courses in order to be admitted to the program. If not, the student may be required to take these courses in addition to their 27 units.

Entrance Requirement CoursesUnits
CSCI 455xIntroduction to Programming Systems Design4
EE 357Basic Organization of Computer Systems3
EE 454LIntroduction to Systems Design Using Microprocessors4

In addition, it is expected that each student in this program take or have taken the equivalent of the following fundamental courses:

Fundamental CoursesUnits
CSCI 402xOperating Systems3
CSCI 410xTranslation of Programming Languages3
EE 450Introduction to Computer Networks3
EE 457xComputer Systems Organization3
EE 465Probabilistic Methods in Computer Systems Modeling3
EE 477LMOS VLSI Circuit Design4

Students must take the following core courses:

Core CoursesUnits
EE 557Computer Systems Architecture3
EE 577aVLSI System Design3

Depth Courses
Each student must choose one of four areas of specialization: networks, computer architecture, VLSI and CAD. Six units of depth courses must be taken in the area of specialization.

CAD: CSCI 570, EE 552, EE 599, EE 658, EE 680, EE 681.

Computer Architecture: CSCI 565 or CSCI 595, EE 554, EE 653, EE 657, EE 659,
SAE 549.

Networks: CSCI 551, CSCI 558L, EE 549, EE 550, EE 555, EE 558, EE 650.

VLSI: EE 504L, EE 533ab, EE 536, EE 552, EE 560, EE 577b, EE 630, EE 677.

Breadth Courses
The student must also take 6 units from the following list of breadth courses associated with his or her chosen area of specialization. For example, a student who chooses a specialization in VLSI must take 6 units from the VLSI breadth list.

CAD: CSCI 551, CSCI 565, EE 504L, EE 533a, EE 536, EE 550, EE 554, EE 555,
EE 577b, EE 657, SAE 549.

Computer Architecture: CSCI 551, CSCI 570, EE 504L, EE 533a, EE 536, EE 549,
EE 550, EE 552, EE 555, EE 577b, EE 658, EE 680, EE 681.

Networks: CSCI 565, CSCI 570, EE 504L, EE 533a, EE 536, EE 552, EE 554, EE 577b, EE 657, EE 658, EE 659, EE 680, EE 681, SAE 549.

VLSI: CSCI 551, CSCI 565, CSCI 570, EE 550, EE 554, EE 555, EE 657, EE 658, EE 659, EE 680, EE 681, SAE 549.

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. For more information, go to the M.S. in Electrical Engineering (VLSI Design) and the M.S. in Electrical Engineering (Computer Networks) degrees section.

Doctor of Philosophy in Computer Engineering

The requirements for the Doctor of Philosophy (Ph.D.) degree 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.

Major Areas in Computer Engineering and Relevant Courses (not applicable to M.S., Computer Engineering requirements)

Computer Systems ArchitectureUnits
EE 457xComputer Systems Organization3
EE 554Real Time Computer Systems3
EE 557Computer Systems Architecture3
EE 653Advanced Topics in Microarchitecture3
EE 657Parallel and Distributed Computing3
EE 659Interconnection Networks3

Artificial IntelligenceUnits
CSCI 544Natural Language Processing3
CSCI 561Foundations of Artificial Intelligence3
CSCI 574Computer Vision3
CSCI 674aAdvanced Topics in Computer Vision3
EE 559Mathematical Pattern Recognition3

RoboticsUnits
AME 541Linear Control Systems II3
AME 548Analytical Methods in Robotics3
CSCI 545Robotics3
CSCI 547Sensing and Planning in Robotics3

Computer Networks and Distributed SystemsUnits
CSCI 551Computer Communications3
CSCI 555Advanced Operating Systems3
EE 450Introduction to Computer Networks3
EE 532Wireless Internet and Pervasive Computing3
EE 549Queueing Theory for Performance Modeling3
EE 550Design and Analysis of Computer Communication Networks3
EE 555Broadband Network Architectures3
EE 650Advanced Topics in Computer Networks3

Digital Systems DesignUnits
EE 552Logic Design and Switching Theory3
EE 560Digital System Design -- Tools and Techniques3
EE 577abVLSI System Design3-2
EE 658Diagnosis and Design of Reliable Digital Systems3
EE 680Computer Aided Design of Digital Systems I3
EE 681Computer-Aided Design of Digital Systems II3