Viterbi School of Engineering
Computer Science
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 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 140 |
Writing and Critical Reasoning |
4 |
WRIT 340* |
Advanced Writing |
3 |
General Education (20 units) |
Units |
General education+ |
20 |
pre-Major requirements (31 units) |
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 |
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 |
Major Requirements (70 units) |
Units |
Engineering |
ENGR 102 |
Engineering Freshman Academy |
2 |
Computer Science |
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 402x |
Operating Systems |
4 |
CSCI 477ab |
Design and Construction of Large Software Systems |
2-2 |
Electrical Engineering |
EE 101 |
Introduction to Digital Logic |
3 |
EE 201L |
Introduction to Digital Circuits |
4 |
EE 357 |
Basic Organization of Computer Systems |
3 |
Engineering economy/business elective |
3-4 |
Technical electives |
12 |
Free electives |
|
12-13 |
Total units: |
|
128 |
Technical Electives (four courses)
Applicable courses include: CSCI 300, CSCI 351, 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 adviser for approval.
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.
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.
Computer Science and Computer Engineering (38 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 402x |
Operating Systems |
4 |
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 (39 units) |
units |
CSCI 180 |
Survey of Digital Games and Their Technologies |
3 |
CSCI 281 |
Pipelines for Games and Interactives |
3 |
CSCI 491abL |
Final Game Project |
4-2 |
CSCI 492 |
Immersive Game Design |
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 (4), or |
|
EE 241 |
Applied Linear Algebra for Engineering (3) |
3-4 |
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. |
20 |
Technical Electives (8 units) |
units |
Choose a minimum of 8 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 |
1-8 |
CSCI 499 |
Special Topics |
2-4 |
CTAN 330 |
Animation Fundamentals |
2 |
CTAN 443L |
Character Development for 3-D Animation and Games |
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, max 8 |
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 |
Free Electives |
|
2-3 |
Total units required for degree: |
128 |
Other courses may be eligible subject to adviser approval. |
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 130 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 140 |
Writing and Critical Reasoning |
4 |
WRIT 340 |
Advanced Writing |
3 |
general education (20 UNITS) |
UNITS |
General education* |
20 |
Engineering Requirements (56-57 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 477ab |
Design and Construction of Large Software Systems |
2-2 |
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 (4), or |
|
EE 241 |
Applied Linear Algebra for Engineering (3) |
3-4 |
PHYS 151L |
Fundamentals of Physics II: Electricity and Magnetism |
4 |
Total engineering units: |
56-57 |
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 311 |
Operations Management |
4 |
BUAD 497 |
Strategic Management |
4 |
ECON 351x |
Microeconomics for Business |
4 |
ECON 352x |
Macroeconomics for Business |
4 |
BUAD 310 |
Applied Business Statistics (4), or |
EE 364 |
Introduction to Probability and Statistics for Electrical Engineering (3) |
3-4 |
Business Electives |
300- or 400-level ACCT, BAEP, non-required BUAD, BUCO, FBE, IOM, MKT or MOR |
8 |
Total business units |
47-48 |
Total program units: 130–132 |
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 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 |
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 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.