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

General admission requirements for the undergraduate program are the same as those of the university and the USC Viterbi School of Engineering and include 3 to 5 units of mathematics and one unit of science (biology, chemistry or physics) together with satisfactory scores on the Scholastic Aptitude Test and Achievement Tests.

A grade of C (2.0) or better is required for each of the core courses CSCI 103, CSCI 170, CSCI 104 and CSCI 201.

Courses with a grade of C- or below must be repeated; courses may only be retaken once.

Departmental approval is required in order to retake a course.

Students who do not satisfy the degree requirement after repeating a class will be disqualified from the program.

A cumulative grade point average of C (2.0) is required for all courses taken at USC as well as all upper division courses applied toward the major, regardless of the department in which the courses are taken. Candidates must complete general education requirements; see the General Education Program.

The minimum requirement for the degree is 128 units.

- WRIT 150 – Writing and Critical Reasoning–Thematic Approaches (4)
- WRIT 340 – Advanced Writing* (3-4)

** WRIT 340 Advanced Writing (Communication for Engineers, 3 units) is strongly recommended for CECS majors.*

**Engineering (2 units)**

- ENGR 102 – Engineering Freshman Academy (2)

Mathematics (16 units)

**Mathematics (16 units)**

- MATH 125g – Calculus I (4) ***
- MATH 126 – Calculus II (4)

or

MATH 129 – Calculus II for Engineers and Scientists (4) - MATH 225 – Linear Algebra and Linear Differential Equations (4)
- MATH 226 – Calculus III (4)

or

MATH 229 – Calculus III for Engineers and Scientists (4)

Statistics and Probability (3-4 units)

**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)

**Physics (8 units)**

- PHYS 151Lg – Fundamentals of Physics I: Mechanics and Thermodynamics (4) ** and
- PHYS 152L – Fundamentals of Physics II: Electricity and Magnetism (4)

or - PHYS 161Lg – Advanced Principles of Physics I (4) and
- PHYS 162L – Advanced Principles of Physics II (4)

****Satisfies General Education requirement.**

**Computer Science (28 units)**

- CSCI 103L – Introduction to Programming (4)
- 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 (24 units)**

- EE 109L – Introduction to Embedded Systems (4)
- EE 209 – Foundations of Digital System Design (4)
- EE 354L – Introduction to Digital Circuits (4)
- EE 457 – Computer Systems Organization (4)

**And two of the following courses:**

- EE 451 – Parallel and Distributed Computation (4)
- EE 454L – Introduction to System-on-Chip (4)
- EE 477L – MOS VLSI Circuit Design (4)

** Senior Design Project (3-4 units)**

- CSCI 401 – Capstone: Design and Construction of Large Software Systems (4)

or - CSCI 404 – Capstone: Creating Your High-Tech Startup (4)

or - EE 459Lx – Embedded Systems Design Laboratory (3)

**Technical Electives (8 units)**

Suggested courses include:

- CSCI 310 – Software Engineering (4)
- CSCI 360L – Introduction to Artificial Intelligence (4)
- CSCI 420 – Computer Graphics (4)
- CSCI 445L – Introduction to Robotics (4)
- CSCI 459 – Computer Systems and Applications Modeling Fundamentals (3)
- CSCI 476 – Cryptography: Secure Communication and Computation (4)
- CSCI 485 – File and Database Management (4)
- CSCI 490x – Directed Research (variable units)
- CSCI 491aL – Final Game Project (4)
- CSCI 491bL – Final Game Project (2)
- CSCI 499 – Special Topics (4)
- EE 454L – Introduction to System-on-Chip (4)
- EE 459Lx – Embedded Systems Design Laboratory (3)
- EE 477L – MOS VLSI Circuit Design (4)
- EE 490x – Directed Research (variable units)
- EE 499 – Special Topics (4)
- ITP 466 – Building the High Tech Startup (4)
- MATH 458 – Numerical Methods (4)

**Note: Students may choose one adviser-approved course from the 300- and 400-level ITP offerings. Other courses may be applicable; please see an adviser for approval.**