University of Southern CaliforniaWebsiteAcademic Catalog
Computer ScienceDepartment Website
BS Degree in Computer Sciencesource 1source 2ABET
CS Courses
- Introduction to Algorithms and Theory of ComputingCSCI 270 (4)algsCSCI 270: Introduction to Algorithms and Theory of Computing
Algorithm analysis. Greedy algorithms, divide and conquer, dynamic programming, graph algorithms. NP-completeness and basic recursion theory and undecidability. Sorting lower bounds. Number-theory based cryptography.
- Introduction to Operating SystemsCSCI 350 (4)sysCSCI 350: Introduction to Operating Systems
Basic issues in concurrency, deadlock control, synchronization scheduling, memory management, protection and access control, inter-process communication, and structured design. Laboratory experiences with Unix-like operating system.
- Introduction to InternetworkingCSCI 353 (4)sysCSCI 353: Introduction to Internetworking
Global Internet: design principles, layering, protocol design/analysis. Networked applications, Internet structure/architecture, Protocols for transport/congestion control, network layer/routing, link layer/MAC. Network security.
- Introduction to Computer SystemsCSCI 356 (4)sysCSCI 356: Introduction to Computer Systems
Computer organization; entity abstraction and representation; program execution; code optimization; memory usage; exception handling; processing control; computer performance; hands-on work done in C and assembly.
- Capstone: Design and Construction of Large Software SystemsorCSCI 401 (4)capstoneCSCI 401: Capstone: Design and Construction of Large Software Systems
Group project with an outside stakeholder to develop real-world software solutions to large-scale problems. Topics include software engineering, professional preparation, and recent computer science research.
Math/Stat Courses
- or
- or
- or
- orIntroduction to Probability and Statistics for Electrical Engineering and Computer ScienceEE 364 (4)engrEE 364: Introduction to Probability and Statistics for Electrical Engineering and Computer Science
Introduction to concepts of randomness and uncertainty: probability, random variables, statistics. Applications to digital communications, signal processing, automatic control, computer engineering and computer science.
Engineering Courses
- Engineering Freshman AcademyENGR 102 (2)engrENGR 102: Engineering Freshman Academy
Introduction to the profession of engineering. Ethical, political and societal consequences of engineering innovations and the impact of engineering on everyday life. Team projects and guest lectures. Open to freshmen only.
Science Courses
- orororFundamentals of Physics I: Mechanics and ThermodynamicsPHYS 151Lg (4)sciPHYS 151Lg: Fundamentals of Physics I: Mechanics and Thermodynamics
Gateway to the majors and minors in Physics and Astronomy. Statics and dynamics of particles and rigid bodies, conservation principles, gravitation, simple harmonic oscillators, thermodynamics, heat engines, entropy.
orAdvanced Principles of Physics IPHYS 161Lg (4)sciPHYS 161Lg: Advanced Principles of Physics IGateway to the majors and minors in Physics and Astronomy. Introductory treatment intended for well-qualified students. Dynamics of particles and rigid bodies, conservation laws, wave motion, thermodynamics, heat engines, entropy.
or
Other Courses
- 2 × Free Elective
Program Educational Objectives
Graduates of the undergraduate program in Computer Science are expected to attain the following objectives within a few years of graduation:
- Graduates apply the computational and analytical approaches of computer science to their chosen professions.
- 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.
- Graduates exhibit high professional ethical standards to become productive leaders in society.
Student Outcomes
Graduates of the program will have an ability to:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
History of the Major
2024 | |
2023 | Add option of MATH 235 (Linear Algebra and Applications). |
2022 | |
2021 | |
2020 | Add CSCI 102L (Fundamentals of Computation). Add CSCI 353 (Introduction to Internetworking). Drop CSCI 109 (Introduction to Computer Science). Drop 1/2 Technical Elective. Drop 1/2 Free Elective. |
2019 | |
2018 | Raise EE 364 (Introduction to Probability and Statistics for Electrical Engineering and Computer Science) from 3 → 4 units. |
2017 |