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 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.
Composition/Writing requirement | Units |
WRIT 140* | Writing and Critical Reasoning | 4 |
WRIT 340** | Advanced Writing | 3 |
General Education (see here) | Units |
General education* + | 20 |
pre-Major requirements | Units |
Math Requirement |
MATH 125 | Calculus I | 4 |
MATH 126 | Calculus II | 4 |
MATH 225 | Linear Algebra and Differential Equations | 4 |
MATH 226 | Calculus III | 4 |
MATH 407 | Probability Theory, or | 4 |
EE 364 | Introduction to Probability and Statistics for Electrical Engineering and Computer Science | 3 |
Basic Science |
One of the following two course sequences: | |
BISC 120L*** and BISC 220L, or | |
CHEM 105aLbL***, or | |
PHYS 151L*** and PHYS 152L | 8 |
Other Requirements |
Science elective**** | 4 |
Foreign language | 12 |
Major Requirements | Units |
Computer Science |
CSCI 101L | Fundamentals of Computer Programming | 3 |
CSCI 102L | Data Structures | 4 |
CSCI 105 | Object Oriented Programming | 2 |
CSCI 201L | Principles of Software Development | 4 |
CSCI 271 | Discrete Methods in Computer Science | 3 |
CSCI 303 | Design and Analysis of Algorithms | 3 |
CSCI 377 | Introduction to SoftwareEngineering | 3 |
CSCI 402x | Operating Systems | 3 |
CSCI 477 | Design and Construction of Large Software Systems | 3 |
Electrical Engineering |
EE 101 | Introduction to Digital Logic | 3 |
EE 106Lx | Introduction to Computer Engineering/Computer Science | 2 |
EE 201L | Introduction to Digital Circuits | 4 |
EE 357 | Basic Organization of Computer Systems | 3 |
EE 457x | Computer Systems Organization | 3 |
Free electives | 8 |
Technical electives | 6 |
Total units: | | 128 |
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 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.
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 (37 units) | Units |
CSCI 101L | Fundamentals of Computer Programming | 3 |
CSCI 102L | Data Structures | 4 |
CSCI 105 | Object-Oriented Programming | 2 |
CSCI 201L | Principles of Software Development | 4 |
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 (42 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 461x | Artificial Intelligence in Video Games | 1 |
ITP 481x | Video Game Graphics | 1 |
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. | |
Technical Electives |
Choose a minimum of 6 units from the following: |
CSCI 351 | Programming and Multimedia on the World Wide Web | 3 |
CSCI 410x*** | Translation of Programming Languages | 3 |
CSCI 477*** | Design and Construction of Large Software Systems | 3 |
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 | Programming for Interactivity | 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.
Bachelor of Science in Computer Science/Bachelor of Science in 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.
Engineering Requirements | Units |
CSCI 101L | Fundamentals of Computer Programming | 3 |
CSCI 102L | Data Structures | 4 |
CSCI 105 | Object-Oriented Programming | 2 |
CSCI 201L | Principles of Software Development | 4 |
CSCI 271 | Discrete Methods in Computer Science | 3 |
CSCI 303 | Design and Analysis of Algorithms | 3 |
CSCI 351 | Programming and Multimedia on the World Wide Web | 3 |
CSCI 377 | Introduction to Software Engineering | 3 |
CSCI 460 | Introduction to Artificial Intelligence, or | |
CSCI 480 | Computer Graphics, or |
CSCI 485 | File and Database Management | 3 |
CSCI 477 | Design and Construction of Large Software Systems | 3 |
CSCI technical electives (see department for approved list) | 6 |
EE 101 | Introduction to Digital Logic | 3 |
EE 201L | Introduction to Digital Circuits | 4 |
ENGR 102 | Freshmen Academy Seminar | 2 |
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 |
Basic science requirements I and II* | 4-4 |
Total engineering units: | 65-66 |
Business Requirements | Units |
ACCT 410x | Accounting for Non-Business Majors | 4 |
BUAD 302 | Communication Strategy in Business | 4 |
BUAD 304 | Organizational Behavior | 4 |
BUAD 306 | Business Finance | 4 |
BUAD 307 | Marketing Fundamentals | 4 |
BUAD 497 | Strategic Management | 4 |
BUAD concentration** | 8 |
ECON 203 | Principles of Microeconomics | 4 |
ECON 205 | Principles of Macroeconomics | 4 |
MATH 218 | Probability for Business, or | 4 |
EE 364 | Introduction to Probability and Statistics for Electrical Engineering | 3 |
Total business units | 43-44 |
Total program units: | 108-110 |
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 |
Lower division (13 units) |
CSCI 101L | Fundamentals of Computer Programming | 3 |
CSCI 102L | Data Structures | 4 |
CSCI 105 | Object-Oriented Programming | 2 |
CSCI 201L | Principles of Software Development | 4 |
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 477 | Design and Construction of Large Software Systems | 3 |
CSCI 480 | Computer Graphics | 3 |
CSCI 485 | File and Database Management | 3 |
CSCI 499 | Special Topics | 2-4 |
Total: 25 units
Minor in Engineering Technology Commercialization
See listing under the
Special Educational Opportunities section.
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.