Bachelor of Science

Educational Program Objectives

(1) Technical Competence

Graduates have solved problems encountered in modern practice using the mathematics skills and knowledge about computer hardware and software learned at the university.

Graduates have worked on projects in which they were required to model, analyze, design and experimentally evaluate components or systems to achieve desired technical specifications subject to the reality of economic constraints.

(2) Professional Development

Graduates have followed a career path for which they have been trained either through suitable employment or graduate studies.

Graduates have adapted or extended their professional skills in order to compete effectively in a world of rapid technological change.

Graduates have moved into fields with strong information technology components, such as business, law, cinema and music, through graduate-level studies and the process of lifelong learning.

(3) Citizenship in the Global Community

Graduates have shown the capabilities and communication skills necessary to function effectively either as individuals, members or leaders of multidisciplinary teams in a diverse global economy.

Graduates have shown an understanding of the importance of high ethical and professional standards as well as the significance of engineering decisions and solutions in a global, environmental and societal context.

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 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 Viterbi School of Engineering; however, the Bachelor of Science degree with a major in computer science is awarded through the USC College. Candidates must complete general education requirements; see here and here.

Engineering Economy/Business Elective (one course)

Applicable courses include: BUAD 301, BAEP 450x, ISE 460

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. This degree will be offered by the College of Letters, Arts and Sciences.

Requirements for the B.S. in Computer Science (Games):

Computer Science and Computer Engineering (36 units)

units

CSCI 101L

Fundamentals of Computer Programming

3

CSCI 102L

Data Structures

3

CSCI 200

Object-Oriented Programming

3

CSCI 201L

Principles of Software Development

3

CSCI 271

Discrete Methods in Computer Science

3

CSCI 303

Design and Analysis of Algorithms

3

CSCI 377

Introduction to Software Engineering

3

CSCI 402x

Operating Systems

3

CSCI 460

Introduction to Artificial Intelligence

3

CSCI 480

Computer Graphics

3

EE 352L

Computer Organization and Architecture

3

EE 450

Introduction to Computer Networks

3

Game Development (40 units)

units

CSCI 180

Survey of Digital Games and Their Technologies

3

CSCI 281

Pipelines for Games and Interactives

3

CSCI 486

Serious Games Development

3

CSCI 491abL

Final Game Project

4-2

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

EE 452L

Game Hardware Architectures

3

ITP 280

Video Game Production

4

ITP 380

Video Game Programming

4

ITP 485

Programming Game Engines

4

Math (11-12 Units)

units

MATH 125

Calculus I

4

MATH 126

Calculus II

4

MATH 225

Linear Algebra and Linear Differential Equations, or

4

EE 241

Applied Linear Algebra for Engineering

3

Science (4 units)

units

PHYS 151L*

Fundamentals of Physics I: Mechanics and Thermodynamics

4

Writing (7 units)

units

WRIT 140

Writing and Critical Reasoning

4

WRIT 340

Advanced Writing

3

General Education (20 units)**

units

The major will comply with the university general education and diversity requirements.

**The foreign language requirement will be waived for students in this program.

Technical Electives

Choose a minimum of 6 units from the following:

CSCI 351

Programming and Multimedia on the World Wide Web

3

CSCI 477ab***

Design and Construction of Large Software Systems

2-2

CSCI 485

File and Database Management

3

CSCI 490x

Directed Research

2-8

CSCI 499

Special Topics

2-4

CTAN 330

Animation Fundamentals

2

CTAN 443L

3-D Animation and Character Design

2

CTIN 401L

Interface Design for Games

2

CTIN 403

Advanced Visual Design for Gamers

2

CTIN 404L

Usability Testing for Games

2

CTIN 405L

Design and Technology for Mobile Experiences

2

CTIN 406L

Sound Design for Games

2

CTIN 458

Business and Management of Games

2

CTIN 459L***

Game Industry Workshop

4

CTIN 462

Critical Theory and Analysis of Games

4

CTIN 463

Anatomy of a Game

4

CTIN 482

Designing Online Multiplayer Game Environments

2

CTIN 483

Introduction to Game Development

4

CTIN 492L

Experimental Game Topics

4

EE 320

Digital Media Basics for Multimedia

3

ENGR 395abc***

Cooperative Education Work Experience (students who take 3 units of Co-op may use it as one technical elective).

1 or 2, max 5

Total units required for degree:

128

Other courses may be eligible subject to advisor approval.

***highly recommended

Note: Students are strongly encouraged to take at least 1 unit of internship

Note: Free elective units: (3-4 units)

Note: If a student chooses MATH 225 (4), then no units of free electives would be needed to complete the degree requirements. If EE 241 (3) is chosen, then the student would require 4 units of free electives.

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. Students must meet the admission requirements for both the Computer Science department in the Viterbi School of Engineering and the Marshall School of Business. The degree is administered by the Computer Science department.

Students should work with advisors in both the Marshall School and the Viterbi School in making appropriate course selections. A minimum of 135 units is required. A GPA of C (2.0) or higher is required for all upper division course, including any approved substitutes for these courses.

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

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

Lower division (12 units)

CSCI 101L

Fundamentals of Computer Programming

3

CSCI 102L

Data Structures

3

CSCI 200

Object-Oriented Programming

3

CSCI 201L

Principles of Software Development

3

Electives

12 units selected from the following courses:

CSCI 351

Programming and Multimedia on the World Wide Web

3

CSCI 377

Introduction to Software Engineering

3

CSCI 445

Introduction to Robotics

4

CSCI 460

Introduction to Artificial Intelligence

3

CSCI 477ab

Design and Construction of Large Software Systems

2-2

CSCI 480

Computer Graphics

3

CSCI 485

File and Database Management

3

CSCI 499

Special Topics

2-4

Total: 24 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 cinematic arts 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 Engineering Technology Commercialization

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 Roski School of Fine Arts.

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 Roski School of Fine Arts.