University of Southern California

Viterbi School of Engineering

Computer Science

Bachelor of Science

Undergraduate Program Educational Objectives

Graduates of the undergraduate program in Computer Science are expected to attain the following objectives within a few years of graduation:

(1) Graduates apply the computational and analytical approaches of computer science to their chosen professions.

(2) Graduates successfully engage in life-long learning to continue to be contributing members of their communities in fields within and outside the traditional scope of computer science.

(3) Graduates exhibit high professional and ethical standards to become productive leaders in society.

Undergraduate Program Criteria

The program leading to a Bachelor of Science in Computer Science includes at least one and one-third years of computer science that covers the fundamentals of algorithms, data structures, software design, concepts of programming languages and computer organization and software; provides an exposure to a variety of programming languages and systems, including at least one higher-level language; and includes advanced course work that builds on the fundamental course work to provide depth.

The program includes at least one year of science and mathematics, including at least one-half year of mathematics, including discrete mathematics. Additional mathematics might consist of calculus, linear algebra, numerical methods, probability, statistics, number theory, geometry, or symbolic logic. The science component develops an understanding of the scientific method and provides an opportunity to experience this mode of inquiry in courses for science or engineering majors that provide some exposure to laboratory work.

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 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. The requirement for the degree is 128 units. 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 towards the major, regardless of the department in which the courses are taken. Candidates must complete general education requirements; see The USC Core and the General Education Program.

Composition/Writing requirement (7 units) units
WRIT 150 Writing and Critical Reasoning — Thematic Approaches 4
WRIT 340* Advanced Writing 3
General Education (20 units) Units
General education+ 20
pre-Major requirements (33-34 units) units
Engineering (2 units)
ENGR 102 Engineering Freshman Academy 2
Mathematics (16 units)
MATH 125 Calculus I 4
MATH 126 Calculus II 4
MATH 225 Linear Algebra and Differential Equations 4
MATH 226 Calculus III 4
Statistics and Probability (3-4 units)
EE 364 Introduction to Probability and Statistics for Electrical Engineering and Computer Science, or
MATH 407 Probability Theory 3-4
Basic Science (8 units)
One of the following science area course sequences:
Biology: BISC 120L** and BISC 220L or BISC 121L** and BISC 221L
Chemistry: CHEM 105abL** or CHEM 115abL**
Physics: PHYS 151L** and PHYS 152L or PHYS 161L and PHYS 162L 8
Other Requirements
Science elective*** 4
Major Requirements (68 units) Units
Computer Science (38 units)
CSCI 103L Introduction to Programming 3
CSCI 104L Data Structures and Object-Oriented Design 4
CSCI 109 Introduction to Computing 3
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 Introduction to Software Engineering 4
CSCI 350 Introduction to Operating Systems 4
CSCI 360 Introduction to Artificial Intelligence 4
CSCI 477ab Design and Construction of Large Software Systems 2-2
Electrical Engineering (6 units)
EE 101 Introduction to Digital Logic 3
EE 352 Computer Organization and Architecture 3
Technical electives++ (at least four courses for a minimum of 14 units) 14
Free electives 10
Total units 128

*WRIT 340 Advanced Writing (Communication for Engineers) is strongly recommended for CSCI majors
**Satisfies general education requirement.
***Any course in physics, biology or chemistry beyond the basic science requirement or in another scientific discipline. See adviser for a list of approved electives.
+The university allows engineering students to replace GE Category IV with a second course in Categories I, II or VI.
++Applicable courses include: CSCI 300, CSCI 351, CSCI 352, CSCI 353, CSCI 420, CSCI 445L, CSCI 459, CSCI 464, CSCI 485, CSCI 490x, CSCI 499; EE 450, EE 454L, EE 459L, EE 465, EE 477L, EE 490x, EE 499; MATH 458. 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.

Bachelor of Science in Computer Science (Games)

The goal of the B.S. in Computer Science (Games) program is to graduate students with a solid grounding in computer science and a cross-disciplinary background in game development. Topics covered in the cross-disciplinary game development portion of the degree program include game production, visual design for games and interactives, computer animation, video game programming, game hardware architectures, game engine programming, serious game development, introductory and intermediate game design, and two semester-long final game projects. Students graduating from this program will be capable of engineering next-generation games and simulations and their technologies in the entertainment and serious game fields. Additionally, graduates from this program will be able to further their education in graduate programs in game development and computer science.

The requirement for the degree is 128 units. 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.

Composition/Writing requirement (7 units) units
WRIT 150 Writing and Critical Reasoning — Thematic Approaches 4
WRIT 340* Advanced Writing 3
General Education (20 units) Units
General education+ 20
pre-Major requirements (17-18 units) units
Engineering (2 units)
ENGR 102 Engineering Freshman Academy 2
Mathematics (8 units)
MATH 125 Calculus I 4
MATH 126 Calculus II 4
Linear Algebra (3-4 units)
MATH 225 Linear Algebra and Linear Differential Equations, or 4
EE 241 Applied Linear Algebra for Engineering 3
Physics (4 units)
PHYS 151L* Fundamentals of Physics I: Mechanics and Thermodynamics, or 4
PHYS 161L Advanced Principles of Physics 4
MAJOR REQUIREMENTS (84 UNITS) units
CSCI 103L Introduction to Programming 3
CSCI 104L Data Structures and Object-Oriented Design 4
CSCI 109 Introduction to Computing 3
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
CSCI 360 Introduction to Artificial Intelligence 4
CSCI 420 Computer Graphics 4
CSCI 423 Native Console Multiplayer Game Development 4
CSCI 424 Game Engine Tool Development 4
CSCI 425 Immersive Game Design 4
EE 352L Computer Organization and Architecture 4
Game Development (31 UNITS) units
CTIN 190 Introduction to Interactive Entertainment 4
CSCI 281 Pipelines for Games and Interactives 3
CSCI 491abL Final Game Project (4-2) 6
CTAN 452 Introduction to 3-D Computer Animation 2
CTIN 484L Intermediate Game Development 2
CTIN 488 Game Design Workshop 4
CTIN 489 Intermediate Game Design Workshop 2
ITP 380 Video Game Programming 4
ITP 485 Programming Game Engines 4
Total units 128-129

*Satisfies GE requirement.

Bachelor of Science in Computer Science/Business Administration

The combined Bachelor of Science degree program in computer science/business administration offers qualified students the opportunity to gain an educational foundation in both areas. The degree is administered by the Computer Science Department.

The minimum requirement for the degree is 128 units. 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.

COMPOSITION/WRITING REQUIREMENT (7 UNITS) UNITS
WRIT 150 Writing and Critical Reasoning — Thematic Approaches 4
WRIT 340 Advanced Writing 3
general education (20 UNITS) UNITS
General education 20
Pre-Major requirements (14 units) units
Engineering (2 units)
ENGR 102 Engineering Freshman Academy 2
Mathematics (8 units)
MATH 125 Calculus I 4
MATH 126 Calculus II 4
Basic Science (4 units)*
PHYS 151L Fundamentals of Physics I: Mechanics and Thermodynamics, or
PHYS 161L Advanced Principles of Physics, or 4
BISC 120L General Biology: Organismal Biology and Evolution, or
BISC 121L Advanced General Biology: Organismal Biology and Evolution, or 4
CHEM 105aL General Chemistry, or
CHEM 115aL Advanced General Chemistry 4
Major Requirements (88-90 units) Units
Statistics and Probability (3-4 units)
BUAD 310 Applied Business Statistics (4), or
EE 364 Introduction to Probability and Statistics for Electrical Engineering and Computer Science (3), or
MATH 407 Probability Theory (4) 3-4
Linear Algebra (3-4 units)
EE 241 Applied Linear Algebra for Engineering (3), or
MATH 225 Linear Algebra and Linear Differential Equations (4) 3-4
Computer Science Requirements (30 units)
CSCI 103L Introduction to Programming 3
CSCI 104L Data Structures and Object-Oriented Design 4
CSCI 109 Introduction to Computing 3
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 Introduction to Software Engineering 4
CSCI 477ab Design and Construction of Large Software Systems (2-2) 4
Computer Science Electives (8 units minimum)
Take one of the following courses:
CSCI 351 Programming and Multimedia on the World Wide Web 3
CSCI 360L Introduction to Artificial Intelligence 4
CSCI 430 Security Systems 4
CSCI 485 File and Database Management 3
And take one approved Computer Science elective (see adviser) 4
Business Requirements (36 units)
ACCT 410x Accounting for Non-Business Majors 4
BUAD 302 Communication Strategy in Business 4
BUAD 304 Organizational Behavior and Leadership 4
BUAD 306 Business Finance 4
BUAD 307 Marketing Fundamentals 4
BUAD 311 Operations Management 4
BUAD 497 Strategic Management 4
ECON 351x Microeconomics for Business 4
ECON 352x Macroeconomics for Business 4
Business Electives (8 units)
Take two of the following courses:
BAEP 452 Feasibility Analysis 4
BAEP 453 Venture Management 4
BUAD 301 Technical Entrepreneurship 3
DSO 431 Managing the Digital Revolution for Your Business 4
DSO 433 Business Information Systems Analysis and Design 4
DSO 443 The Business of Interactive Digital Media 4
DSO 462 Managing a Small Business on the Internet 4
MKT 425 Marketing on the Internet 4
Total units 129-131

*Satisfies GE requirement.

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

Required Courses units
Lower division (18 units)
CSCI 103L Introduction to Programming 3
CSCI 104L Data Structures and Object-Oriented Design 4
CSCI 109 Introduction to Computing 3
CSCI 170 Discrete Methods in Computer Science 4
CSCI 201L Principles of Software Development (3), or
CSCI 270 Introduction to Algorithms and Theory of Computing (4) 3-4
Electives units
12 units selected from the following courses:
CSCI 351 Programming and Multimedia on the World Wide Web 3
CSCI 445L Introduction to Robotics 4
CSCI 460 Introduction to Artificial Intelligence 3
CSCI 477ab Design and Construction of Large Software Systems 2-2
CSCI 485 File and Database Management 3
CSCI 499 Special Topics 2-4
Total units 30

Minor in 2-D Art for Games

This interdisciplinary minor integrates three major disciplines (fine arts, computer science and interactive media) to develop the 2-D visual skills necessary to conceptualize and illustrate images for games. For more information, see USC Roski School of Art and Design.

Minor in 3-D Art for Games

The focus of the 3-D Art for Games minor is a trans-disciplinary approach that incorporates the creative, technological and team-based communication skills necessary to develop 3-D art skills for video games. For more information, see USC Roski School of Art and Design.