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 131 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.
Sample Four-Year Program
First Year, First Semester | Units | |
---|---|---|
CSCI 101L | Fundamentals of Computer Programming | 3 |
MATH 125 | Calculus I | 4 |
WRIT 140* | Writing and Critical Reasoning | 4 |
General education VI* | 4 | |
15 |
First Year, Second Semester | Units | |
---|---|---|
CSCI 105 | Object-Oriented Programming | 2 |
CSCI 107 | Computers and Society | 3 |
EE 105 | Introduction to Electrical Engineering | 3 |
MATH 126 | Calculus II | 4 |
General education V | 4 | |
16 |
Second Year, First Semester | Units | |
---|---|---|
CSCI 102L | Data Structures | 4 |
EE 101L | Introduction to Digital Logic | 3 |
MATH 226 | Calculus III | 4 |
PHYS 151L** | Fundamentals of Physics I: Mechanics and Thermodynamics | 4 |
15 |
Second Year, Second Semester | Units | |
---|---|---|
CSCI 201L | Principles of Software Development | 4 |
CSCI 271 | Discrete Methods in Computer Science | 3 |
EE 102L | Introduction to Digital Circuits | 2 |
MATH 225 | Linear Algebra and Differential Equations | 4 |
PHYS 152L | Fundamentals of Physics II: Electricity and Magnetism | 4 |
17 |
Third Year, First Semester | Units | |
---|---|---|
CSCI 303 | Analysis and Design of Algorithms | 3 |
EE 326Lx | Essentials of Electrical Engineering | 4 |
EE 357Lx | Basic Organization of Computer Systems | 3 |
Science elective*** | 4 | |
Technical elective I**** | 3 | |
17 |
Third Year, Second Semester | Units | |
---|---|---|
CSCI 377 | Introduction to Software Engineering | 3 |
EE 327x | Digital Electronics | 3 |
EE 454L | Introduction to Systems Using Microprocessors | 4 |
MATH 407 | Probability Theory | 4 |
General education IV+ | 4 | |
18 |
Fourth Year, First Semester | Units | |
---|---|---|
CSCI 402 | Operating Systems | 3 |
EE 459L | Senior Design Project | 3 |
WRIT 340 | Advanced Writing | 3 |
General education I | 4 | |
General education II | 4 | |
17 |
Fourth Year, Second Semester | Units | |
---|---|---|
CSCI 477 | Design and Construction of Large Software Systems | 3 |
EE 457Lx | Computer Systems Organization | 3 |
ISE 460 | Engineering Economy 3 | |
400-level Math elective++ | 4 | |
Technical elective II | 3 | |
16 | ||
Total: | 131 |
**Satisfies general education requirement for category III.
***See an advisor for a list of science courses that can satisfy this requirement.
****Four 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 479L, EE 490x, EE 499; MATH 458. Other courses may be applicable; please see an advisor for approval.
+The university allows Engineering majors to replce the Category IV GE 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.
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 Courses | Units | |
---|---|---|
CSCI 455x | 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 | 3 |
EE 450 | Introduction to Computer Networks | 3 |
EE 457Lx | Computer Systems Organization | 3 |
EE 465 | Probabilistic Methods in Computer Systems Modeling | 3 |
EE 477L | MOS VLSI Circuit Design | 4 |
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.CAD: CSCI 570, EE 552, EE 599, EE 658, EE 680, EE 681.
Computer Architecture: AE 549a, CSCI 565 or CSCI 595, EE 554, EE 653, EE 657, EE 659.
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 582, 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: AME 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, 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: AME 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.
VLSI: AME 549a, CSCI 551, CSCI 565, CSCI 570, EE 550, EE 554, EE 555, 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. For the M.S. in Electrical Engineering (VLSI Design) and the M.S. in Electrical Engineering (Computer Networks) degrees section, see Electrical Engineering Graduate 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 457Lx | 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 561 | Foundations of Artificial Intelligence | 3 |
CSCI 574 | Computer Vision | 3 |
CSCI 674a | Advanced Topics in Computer Vision | 3 |
EE 559 | Mathematical Pattern Recognition | 3 |
Robotics | Units | |
---|---|---|
AME 541 | Linear Control Systems II | 3 |
AME 548 | Analytical Methods in Robotics | 3 |
CSCI 545 | Robotics | 3 |
CSCI 547 | Sensing and Planning in Robotics | 3 |
Computer Networks and Distributed Systems | Units | |
---|---|---|
CSCI 551 | Computer Communications | 3 |
CSCI 555 | Advanced Operating Systems | 3 |
EE 450 | Introduction to Computer Networks | 3 |
EE 532 | Wireless Internet and Pervasive Computing | 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 | 3 |
Digital Systems Design | Units | |
---|---|---|
EE 552 | Logic Design and Switching Theory | 3 |
EE 560 | Digital System Design -- Tools and Techniques | 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 |
EE 681 | Computer-Aided Design of Digital Systems II | 3 |