USC
University of Southern California
black horizontal bar for print styles

Bachelor of Science

Bachelor of Science in 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 three to five units of mathematics and one unit of science (biology, chemistry or physics) together with satisfactory scores on the Scholastic Aptitude Test and Achievement Tests. The requirement for the degree is 128 units. A cumulative scholarship average of C (2.0) is required for all courses taken at USC as well as for all computer science courses taken in the program. Computer science is a department in the USC School of Engineering; however, the Bachelor of Science degree with a major in computer science is awarded through the USC College of Letters, Arts and Sciences. Candidates must complete general education requirements; click here and here for more information..

First Year, First SemesterUnits
CSCI 101LFundamentals of Computer Programming3
MATH 125Calculus I4
WRIT 140*Writing and Critical Reasoning4
General education VI*4
15

First Year, Second SemesterUnits
CSCI 105Object Oriented Programming2
CSCI 107Computers and Society3
MATH 126Calculus II4
General education V4
Foreign language I4
17

Second Year, First SemesterUnits
CSCI 102LData Structures4
EE 101Introduction to Digital Logic3
MATH 226Calculus III4
Foreign language II4
Free elective2
17

Second Year, Second SemesterUnits
CSCI 201LPrinciples of Software Development4
CSCI 271Discrete Methods in Computer Science3
EE 201LIntroduction to Digital Circuits2
MATH 225Linear Algebra and Differential Equations4
Foreign language III4
17

Third Year, First SemesterUnits
CSCI 303Design and Analysis of Algorithms3
EE 357Basic Organization of Computer Systems 3
MATH 407 Probability Theory, or4
EE 364Introduction to Probability and Statistics for Electrical Engineering3
Technical elective I3
Basic science requirement I**4
16-17

Third Year, Second SemesterUnits
CSCI 377Introduction to Software Engineering3
EE 457xComputer Systems Organization3
General education IV4
Technical elective II3
Basic science requirement II **4
17

Fourth Year, First SemesterUnits
CSCI 402xOperating Systems3
General education I4
Science elective***4
Free elective4
15

Fourth Year, Second SemesterUnits
CSCI 477Design and Construction of Large Software Systems3
WRIT 340Advanced Writing3
General education II4
Free elective 3
13

*Taken concurrently.

**Basic science requirement: PHYS 151L and PHYS 152L or CHEM 105aLbL or BISC 120L and BISC 220L.

***Any course in physics, biology or chemistry beyond the basic science requirement or in another scientific discipline. See department for approval.

Foreign Language Requirement
Three semesters of a single language and passing the skill level examination in that language or passing the skill level examination in a foreign language.

Technical Electives (two courses)
Applicable courses include: CSCI 351, CSCI 410, CSCI 445, CSCI 459, CSCI 460, CSCI 464, CSCI 480, CSCI 485, CSCI 490x, CSCI 499; EE 321, EE 450, EE 454L, EE 459L, EE 465, EE 477L, EE 490x, EE 499; MATH 458. Other courses may be applicable; please see an advisor for approval.

Physics/Computer Science Major Requirements for the Bachelor of Science

This program is intended for students with dual interests in physics and computer science who wish to complete the essential courses for both majors within their normal four year career. See the Physics and Astronomy Department section, for course requirements.

Bachelor of Science in Computer Engineering and Computer Science

See the listing under Computer Engineering.

Minor in Computer Science

The computer science minor introduces the concepts, tools and techniques that are involved in the programming of computers. The minor prepares students to achieve mastery in several current programming languages. In addition, the student will learn about creating effective user interfaces and how to build applications that are available on the World Wide Web.

Required Courses (22 units)

Lower division (16 units)
CSCI 101LFundamentals of Computer Programming3
CSCI 102LData Structures4
CSCI 105Object-Oriented Programming2
CSCI 107Computers and Society3
CSCI 201LPrinciples of Software Development4

Upper division (6 units)
CSCI 351Programming and Multimedia on the World Wide Web3
CSCI 377Introduction to Software Engineering3

Electives

10 units selected from the following courses:
CSCI 445Introduction to Robotics4
CSCI 460Introduction to Artificial Intelligence3
CSCI 477Design and Construction of Large Software Systems3
CSCI 480Computer Graphics3
CSCI 485File and Database Management3
CSCI 499Special Topics2-4

Total: 32 units

Note: Students majoring in business may wish to take CSCI 477 and CSCI 485: These courses will prepare them to utilize computers in a corporate setting.

Students majoring in fine arts or cinema-television may wish to take CSCI 460 and CSCI 480: These courses will prepare them to apply computers to movies and online games.

Students majoring in chemistry or physics may prefer to take CSCI 445 and CSCI 460: These courses will prepare them to create sophisticated software for scientific applications.

Minor in Multimedia and Creative Technologies

See listing under Multimedia and Creative Technologies.

Accelerated Dual Degree Programs: Bachelor of Science in Computer Engineering and Computer Science/Master of Science in Computer Engineering; Bachelor of Science in Computer Engineering and Computer Science/Master of Science in Computer Science

Two accelerated dual degrees are offered: B.S., Computer Engineering and Computer Science/M.S., Computer Engineering and B.S., Computer Engineering and Computer Science/M.S., Computer Science.

The accelerated dual degree program offers qualified students the opportunity to simultaneously complete the requirements for the B.S. and M.S. degrees in five years. Students are eligible for the accelerated dual degree program upon completing 96 or more units toward their B.S. with a GPA of 3.2 or higher. Qualified students who are interested should see their advisor in their junior year to begin planning for the inclusion of graduate courses during their senior year. Students should apply to the graduate program in the fall of their senior year. Eligible students will be automatically accepted to the M.S. program without needing to take the GRE. All requirements for both the B.S. and M.S. degrees must be met; however, up to nine units of course work will be counted toward satisfying the unit requirements of both degrees for the B.S., Computer Engineering and Computer Science/M.S., Computer Engineering accelerated dual degree program. Up to nine units of course work will be counted toward satisfying the unit requirements for the B.S., Computer Engineering and Computer Science/M.S., Computer Science accelerated dual degree program. Application information may be obtained in the Viterbi School of Engineering Office of Admissions and Student Affairs. Students should see their departmental advisors for assistance with course selection.