Computer Programming

Write programs for desktop applications, mobile apps, web applications, and video games by practicing coding, design, and debugging in multiple languages. Upon completion of the minor, students will have strong experience with the application of programming languages in several different contexts.

Learn about:
Image
Skills
  • C++, Java, and Python
  • Object-oriented programming
  • Software development
  • Debugging
Careers
  • Software Developer
  • DevOps Engineer
  • Web Developer
  • Mobile Developer

Requirements

  • All minors at USC need 16 units that only meet minor requirements and do not meet any other major, minor, or GE requirement.
  • All courses completed for your minor or specialization must be completed for a letter grade.
  • You must earn a 2.0 minimum cumulative GPA in the courses completed for your minor or specialization.

Minor (18 units)
Core requirements (10 units):
  • ITP-115 “Programming in Python” (2 units)
        or ITP-116 "Accelerated Python for Programmers" (2 units)
  • ITP-265 “Object-Oriented Programming” (4 units) [prerequisite: ITP-115 or ITP-116]
  • ITP-365 “Managing Data in C++” (4 units) [prerequisite: ITP-265]
Electives (8 units):
  • ITP-303 “Full-Stack Web Development” (4 units) [prerequisite: ITP-265 or CSCI-103]
  • ITP-341 “Android App Development” (4 units) [prerequisite: ITP-265 or CSCI-103]
  • ITP-342 “iOS App Development” (4 units) [prerequisite: ITP-265 or CSCI-103]
  • ITP-344 “Advanced iOS App Development” (4 units) [prerequisite: ITP-342]
  • ITP-345 “Advanced Android App Development” (4 units) [prerequisite: ITP-341]
  • ITP-368 “Programming Graphical User Interfaces” (4 units) [prerequisite: ITP-265 or CSCI-103]
  • ITP-380 “Video Game Programming” (4 units) [prerequisite: ITP-365 or CSCI-104]
  • ITP-435 “Professional C++” (4 units) [prerequisite: ITP-365 or CSCI-104]
  • ITP-439 “Compiler Development” (4 units) [prerequisite: ITP-365 or CSCI-104]
Substitutions:

The following courses are also pre-approved electives for the minor. If you enroll in one of the following courses, please email our academic advisors so that they can update your STARS report. Substitution courses are not automatically applied to your minor requirements, so you will need to ask our academic advisors to make the change for you.

  • ITP-216 "Applied Python" (2 units) [prerequisite: ITP-115 or ITP-116]
  • ITP-330 "Computational Thinking Through Programming" (4 units)[corequisite: ITP-115 or ITP-165 or CSCI-102]
  • ITP-348 “Introduction to Physical Computing” (4 units) [prerequisite: ITP-115]
  • ITP-382 “Mobile Game Development” (4 units) [prerequisite: ITP-265 or CSCI-103]
  • ITP-404 “Advanced Front-End Web Development” (4 units) [prerequisite: ITP-303]
  • ITP-405 “Advanced Back-End Web Development” (4 units) [prerequisite: ITP-303]
  • ITP-430 "Computing Education Capstone" (4 units)[prerequisite: ITP 115, ITP 330; one of the following: EDUC 435, EDUC 436]
  • ITP-499 “Game Programming in Unreal” (4 units) [recommended preparation: ITP-380]

Specialization (10 units)
Core requirements (6 units):
  • ITP-115 “Programming in Python” (2 units)
        or ITP-116 "Accelerated Python for Programmers" (2 units)
  • ITP-265 “Object-Oriented Programming” (4 units) [prerequisite: ITP-115 or ITP-116]
Elective (4 units):
  • ITP-303 “Full-Stack Web Development” (4 units) [prerequisite: ITP-265 or CSCI-103]
  • ITP-341 “Android App Development” (4 units) [prerequisite: ITP-265 or CSCI-103]
  • ITP-342 “iOS App Development” (4 units) [prerequisite: ITP-265 or CSCI-103]
  • ITP-344 “Advanced iOS App Development” (4 units) [prerequisite: ITP-342]
  • ITP-345 “Advanced Android App Development” (4 units) [prerequisite: ITP-341]
  • ITP-365 “Managing Data in C++” (4 units) [prerequisite: ITP-265]
  • ITP-368 “Programming Graphical User Interfaces” (4 units) [prerequisite: ITP-265 or CSCI-103]
  • ITP-380 “Video Game Programming” (4 units) [prerequisite: ITP-365 or CSCI-104]
  • ITP-435 “Professional C++” (4 units) [prerequisite: ITP-365 or CSCI-104]
  • ITP-439 “Compiler Development” (4 units) [prerequisite: ITP-365 or CSCI-104]

Course Plan

Use the chart below to plan your course schedule to complete your minor. Pay careful attention to prerequisites. Make sure you consult with your major advisor about how best to incorporate the requirements for your minor with your major and general education requirements.

Please contact our academic advisors with questions about course sequencing, departmental clearance and course substitutions.

-Rebecca Clemmons, Economics "Taking this minor has opened so many doors for my career. I have been working at a music-tech start ups for the last year now and completed internships in data analytics for bigger music companies, simply because I had a bit of technical proficiency." -Rebecca Clemmons, Economics Class of 2021 -Daniel Pham, Electrical Engineering "I initially thought that taking ITP minor would help my hobby projects after graduation. I was wrong. My career is dependent on all of the skills I learned from ITP classes. The minor program was designed for hands-on experience from game/app development to data analytics and serious algorithm classes. These helped me tremendously in my day to day job." -Daniel Pham, Electrical Engineering Class of 2017 What our students and alumni say
Next steps

How can I add this program?

Apply online

Current USC students can use our online application to declare a minor or specialization. Your application will be processed within 4 to 9 business days, and you will be notified at your official USC email address of your admission to the program of your choice.

Complete your application >
Contact us with questions

If you have a question about the program, you're welcome to write to us or schedule an advisement appointment. We can help you navigate our program requirements and resources and refer you to other offices as needed.

Contact our advisors >