Computer Science


The undergraduate program in computer science is an interdisciplinary program leading to the Bachelor of Science in Computer Science. The program is designed to provide both an academic and professional orientation.

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.

Visit USC Dornsife’s General Education website for more information: http://dornsife.usc.edu/2015ge/2015ge-requirements/

Engineering (2 units)

  • ENGR 102 – Engineering Freshman Academy (2)

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)

  • EE 364 – Introduction to Probability and Statistics for Electrical Engineering and Computer Science (3)
    or
  • MATH 407 – Probability Theory (4)

Basic Science (8 units)


One of the following science area course sequences:

Biology:

  • BISC 120Lg – General Biology: Organismal Biology and Evolution (4) ** and
  • BISC 220Lg – General Biology: Cell Biology and Physiology (4) or
  • BISC 121Lg – Advanced General Biology: Organismal Biology and Evolution (4) ** and
  • BISC 221Lg – Advanced General Biology: Cell Biology and Physiology (4)

Chemistry:

  • CHEM 105aLg – General Chemistry (4) ** and
  • CHEM 105bL – General Chemistry (4) ** or
  • CHEM 115aLg – Advanced General Chemistry (4) ** and
  • CHEM 115bL – Advanced General Chemistry (4) **

Physics:

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

**Courses selected to meet the general education life science and physical science requirements must be approved by the CSCI department to ensure that students achieve the required level of basic science content in their programs.
***Satisfies General Education requirement.

Computer Science (42 units)

  • CSCI 103L – Introduction to Programming (4)
  • CSCI 104L – Data Structures and Object Oriented Design (4)
  • CSCI 109 – Introduction to Computer Science (2)
  • 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 310 – Software Engineering (4)
  • CSCI 350 – Introduction to Operating Systems (4)
  • CSCI 356 – Introduction to Computer Systems (4)
  • CSCI 360L – Introduction to Artificial Intelligence (4)
  • CSCI 401 – Capstone: Design and Construction of Large Software Systems (4)
    or
  • CSCI 404 – Capstone: Creating Your High-Tech Startup (4)

Electrical Engineering (4 units)

  • EE 109 – Introduction to Embedded Systems (4)

Technical Electives (14 units)

(at least four courses for a minimum of 14 units)

Suggested courses include:

  • CSCI 353 – Introduction to Internetworking (4)
  • CSCI 401 – Capstone: Design and Construction of Large Software Systems (4)
  • CSCI 404 – Capstone: Creating Your High-Tech Startup (4)
  • CSCI 420 – Computer Graphics (4)
  • CSCI 423 – Native Console Multiplayer Game Development (4)
  • CSCI 430 – Introduction to Computer and Network Security (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 491a – Final Game Project (4)
  • CSCI 491b – Final Game Project (2)
  • CSCI 499 – Special Topics (4)
  • EE 354 – Introduction to Digital Circuits (4)
  • EE 450 – Introduction to Computer Networks (3)
  • EE 451 – Parallel and Distributed Computation (4)
  • EE 454L – Introduction to System-on-Chip (4)
  • EE 457 – Computer Systems Organization (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)
  • ENGR 395abcx – Cooperative Education Work Experience (1-2)
  • ITP 368 – Programming Graphical User Interfaces (3)
  • ITP 380 – Video Game Programming (4)
  • ITP 435 – Professional C++ (3)
  • ITP 439 – Compiler Development (3)
  • ITP 466 – Building the High Tech Startup (4)
  • ITP 485 – Programming Game Engines (4)
  • MATH 458 – Numerical Methods (4)

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

Degree applicable electives of the student’s choice.