USC School of 
Engineering
spacer

Undergraduate Degree

Email: eesystem@ceng.usc.edu

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

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.


Sample Four-Year Program

First Year, First Semester Units

CSCI 101L Fundamentals of Computer Programming 3
MATH 125 Calculus I 4
General education* Social Issues 4
WRIT 140* Writing and Critical Reasoning 4
____
15

First Year, Second Semester Units

EE 101 Introduction to Digital Logic 3
EE 105 Introduction to Electrical Engineering, or
CSCI 105 Introduction to Computer Science 3
MATH 126 Calculus II 4
General education 4
____
14

Second Year, First Semester Units

CSCI 102L Data Structures 4
EE 102L Introduction to Digital Circuits 2
MATH 226 Calculus III 4
PHYS 151L** Fundamentals of Physics I:
Mechanics and Thermodynamics
4
General education 4
____
18

Second Year, Second Semester Units

CSCI 201L Principles of Software Development 4
EE 357 Basic Organization of Computer Systems 3
MATH 225 Linear Algebra and Differential Equations 4
PHYS 152L Fundamentals of Physics II:
Electricity and Magnetism
WRIT 340 Advanced Writing 3
____
18

Third Year, First Semester Units

CSCI 271 Discrete Methods in Computer Science 4
EE 326L Essentials of Electrical Engineering 4
EE 457 Computer Systems Organization 3
ISE 460 Engineering Economy 3
Science elective*** 4
____
18

Third Year, Second Semester Units

CSCI 301 Theory of Computation 3
CSCI 402 Operating Systems 3
EE 327 Digital Electronics 3
MATH 407 Probability Theory 4
General education 4
____
17

Fourth Year, First Semester Units

CSCI 303 Analysis and Design of Algorithms 3
EE 454L Introduction to Systems Using Microprocessors 4
General education 4
Electives**** technical 6
____
17

Fourth Year, Second Semester Units

EE 459L Senior Design Project, or
CS 477 Design and Construction of Large
Software Systems
3 or 4
A 400-level Math course***** 4
Electives**** technical 8
____
15 or 16

*Taken concurrently.

**Satisfies general education requirement for category III.

***See an advisor for a list of science courses that can satisfy this requirement.

****See an advisor for a list of courses that can satisfy the technical elective requirement. A CECS major must take a set of courses for at least one of the following four areas of specialization as part of his or her 14 technical elective units.
a. Theory – CSCI 301, CSCI 410, CSCI 430
b. Multimedia and Graphics – EE 320, CSCI 351, CSCI 480
c. Advanced Circuit Design – EE 477, EE 478, EE 479
d. Software Systems – CSCI 351, CSCI 477, CSCI 485

*****Any 400-level Mathematics course can be taken to satisfy this requirement except MATH 406 or MATH 450.


Minor in Multimedia and Creative Technologies

See 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 Courses Units

CSCI 455 Introduction to Programming Systems Design 4
EE 357 Basic Organization of Computer Systems 3
EE 454L Introduction to Systems Design Using Microprocessors 4

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

Fundamental Courses Units

CSCI 402x Operating Systems 3
CSCI 410x Translation of Programming Languages 4
EE 450 Introduction to Computer Networks 3
EE 457x Computer Systems Organization 3
EE 465 Probabilistic Methods in Computer Systems Modeling 3
EE 477L MOS VLSI Circuit Design 3

Students must take the following core courses:

Core Courses Units

EE 557 Computer Systems Architecture 3
EE 577a VLSI System Design 3


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.

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

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

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

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


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.

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

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

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

Networks: AE 549a, CSCI 565, CSCI 570, EE 504L, EE 533a, EE 536, EE 552, EE 554, EE 577b, EE 582, EE 657, EE 658, EE 659, 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 School of Engineering requirements for the Master of Science apply. See M.S. in Electrical Engineering VLSI Design and the M.S. in Electrical Engineering Computer Network 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 Architecture Units

EE 457x Computer Systems Organization 3
EE 554 Real Time Computer Systems 3
EE 557 Computer Systems Architecture 3
EE 653 Multithreaded Architectures, Data-Flow Computing and Functional Programming 3
EE 657 Parallel Processing 3
EE 659 Interconnection Networks 3

Artificial Intelligence Units

CSCI 544 Natural Language Processing 3
CSCI 561a Artificial Intelligence 3
CSCI 574 Computer Vision 3
CSCI 598 Expert Systems 3
CSCI 674a Advanced Topics in Computer Vision 3
EE 559 Mathematical Pattern Recognition 3

Robotics Units

CSCI 545 Robotics 3
CSCI 547 Sensing and Planning in Robotics 3
EE 546L Basic Robotics 1
ME 548 Analytical Methods in Robotic 3
ME 541 Linear Control Systems II 3

Computer Networks and Distributed Systems Units

CSCI 551 Computer Communications 3
CSCI 555 Advanced Operating Systems 3
CSCI 579 Graph and Combinatorial Algorithms 3
EE 450 Introduction to Computer Networks 3
EE 549 Queueing Theory for Performance Modeling 3
EE 550 Design and Analysis of Computer Communication Networks 3
EE 555 Broadband Network Architectures 3
EE 650 Advanced Topics in Computer Networks

Digital Systems Design Units

EE 552 Logic Design and Switching Theory 3
EE 577ab VLSI System Design 3-2
EE 582 Technical Seminar on VLSI Design 1
EE 658 Diagnosis and Design of Reliable Digital Systems 3
EE 680 Computer Aided Design of Digital Systems I 3
Computer-Aided Design of Digital Systems II 3