Undergraduate Degree
E-mail: eesystem@pollux.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 course work required to attain the Bachelor of Science degree in Computer Engineering and Computer Science is outlined below in the sample four-year degree program. The course work specified in the sample program must be satisfactorily completed, but can be completed in a sequence differing from the sample program as long as the course corequisites and prerequisites are satisfied.
Sample Four-Year Program
First Year, First Semester Units COMP 101* Introduction to Expository Writing 4 CSCI 101L Fundamentals of Computer Programming 3 EE 101 Introduction to Digital Logic 3 MATH 125 Calculus I 4 ____ 14
First Year, Second Semester Units COMP 102* Topics in Expository Writing 4 CSCI 102L Data Structures 4 EE 102L Introduction to Digital Circuits 2 MATH 126 Calculus II 4 Elective general education** 4 ____ 18
Second Year, First Semester Units CSCI 271 Discrete Methods in Computer Science 4 MATH 226 Calculus III 4 PHYS 151L Fundamentals of Physics I: Mechanics, Waves, and Sound 4 Elective general education** 4 ____ 16
Second Year, Second Semester Units EE 357 Basic Organization of Computer Systems 3 MATH 225 Linear Algebra and Differential Equations 4 PHYS 152L Fundamentals of Physics II: Thermodynamics, Electricity, and Magnetism 4 Elective mathematics***** 4 ____ 15
Third Year, First Semester Units CSCI 301 Theory of Computation 3 CSCI 402x Operating Systems 3 EE 326L Essentials of Electrical Engineering 4 MATH 407 Probability Theory 4 Elective general education** 4 ____ 18
Third Year, Second Semester Units CSCI 303 Analyses and Design of Algorithms 3 EE 327 Digital Electronics 3 EE 457x Computer Systems Organization 3 Elective science*** 4 Elective general education** 4 ____ 17
Fourth Year, First Semester Units EE 454L Introduction to Systems Using Microprocessors 4 Elective general education** 4 Electives technical**** 9 ____ 17
Fourth Year, Second Semester Units EE 459L Senior Design Project, or CS 477 Design and Construction of Large Software Systems 3 or 4 Electives technical**** 9 Electives science*** 4 ____ 16 or 17 *Composition: Expository Writing 111 and 112 can be taken by foreign students in place of Expository Writing 101 and 102.
**The humanities and social sciences courses must be consistent with the common requirements for a degree in Engineering and must be selected from those published in the General Education section and in the General Education Addendum.
***Science electives can be taken from the following list: PHYS 153L, CHEM 105aL or other science courses as approved by the student's advisor.
****Eighteen units of technical electives may be taken from the following list: EE 450, 465, 478L, 479; CSCI 201L, 410, 420, 460, 480, 485; or other EE and CSCI courses as approved by the student's advisor.
*****Any 400-level mathematics course which can count toward the B.S. degree in mathematics with the exception of MATH 407.
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. At most, nine units at the 400 level may be counted toward the degree, and the remaining units must be at the 500 or 600 level. At least 15 units must be taken at the 500 or 600 level in the computer engineering major. (Those courses in computer science cross-listed with electrical engineering are considered computer engineering.) All course work requires the prior approval of a computer engineering faculty member. Elective units may be chosen from a list of computer engineering, computer science, electrophysics, signal processing and mathematics courses.These elective units will be recommended and approved by the individual computer engineering faculty advisor. A minimum grade point average of 3.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 count as credit (CR) toward the master's degree and are not computed in the grade point average. All other School of Engineering requirements for the Master of Science apply. For the M.S., Electrical Engineering VLSI Design and M.S., Electrical Engineering Computer Network degrees, see Electical Engineering VLSI Design and M.S..
Required courses Units EE 557 Computer Systems Architecture, and 3 CSCI 402x Operating Systems, or CSCI 555 Advanced Operating Systems 3
and one of the following: CSCI 545 Robotics 3 EE 549 Queueing Theory for Performance Modeling 3 EE 550 Design and Analysis of Computer Communication Networks 3 EE 552 Logic Design and Switching Theory 3 EE 554 Real-Time Computer Systems 3 EE/CSCI 561 Artificial Intelligence 3 EE 577 VLSI System Design 3 and approved electives 18 ____ 27
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 656 Fault Tolerant Computer Systems 3 EE 657 Parallel Processing 3 EE 659 Interconnection Networks 3
Artificial Intelligence Units CSCI 544 Natural Language Processing 3 CSCI 598 Expert Systems 3 CSCI 674 Advanced Topics in Computer Vision 3 EE 559 Mathematical Pattern Recognition 3 CSCI 561 Artificial Intelligence 3 CSCI 574 Computer Vision 3 CSCI 592 Symbolic Computation for Artificial Intelligence 3
Robotics Units CSCI 545 Robotics 3 EE 546L Basic Robotics Laboratory 3 EE 547 Software Methods in Robotics 3 EE 548 Analytical Methods in Robotics 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/EE 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 649 Applied Performance Evaluation for Computer Systems 3 EE 650 Advanced Topics in Computer Networks 3
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 677 VLSI Architectures and Algorithms 3 EE 680 Computer Aided Design of Digital Systems I 3 EE 681 Computer Aided Design of Digital Systems II 3
Produced by the USC Division of Student Affairs,
Office of University Publications
univpub@usc.edu