Minor

Computer Programming

DESCRIPTION

Skills Explored Target Audience
Students will gain the skills necessary for analytic problem solving, programming fundamentals, mobile, web, cloud, and video games Any student who wants to gain programming skills. Not open to Computer Science majors.
Minor Description

Students in this minor will learn the practical programming skills necessary to solve technical problems on computers, mobile devices, the web, the cloud, and video games. Expert programmers are in extremely high demand across a wide range of disciplines including business, science, finance, technology, mobile apps, and video games. Learning computer programming will increase your job opportunities in any field!


Students with a declared major in Computer Science, Computer Science and Computer Engineering, Computer Science (Games), or Computer Science and Business Administration are not eligible for this minor. Students with a declared minor in Computer Science are likewise not eligible.

Requirements for completion (two core courses plus 12 units of electives)
Minimum units: 17


All of the following courses (5 units)
ITP 165 - Introduction to C++ Programming (2 units)*
ITP 365 - Managing Data in C++ (3 units)**
Note: Students must take ITP 165 prior to taking ITP 365.

*ITP 109x, ITP 115, or a CSCI programming course can be substituted for ITP 165x, through ITP 165x is recommended. Contact itpadvising@usc.edu to discuss a potential substitution.
**CSCI 104 or EE 355 may be substituted for ITP 365.


Electives (minimum of 12 units)
ITP 341 - App Development for Phones and Tablets [Android]* (3 units)
ITP 342 - Mobile Application Development [iOS]* (3 units)
ITP 368 - Programming Graphical User Interfaces (3 units)
ITP 380 - Video Game Programming (4 units)
ITP 404 - Modern Technologies of Web Development (3 units)**
ITP 435 - Professional C++ (3 units)
ITP 439 - Compiler Development (3 units)

*Students must take ITP 365 prior to taking the electives.
**ITP 404x has additional prerequisites outside the minor, though these prerequisites can be waived for students in the minor (subject to faculty approval)
Why Students Take It
Students in math, sciences, business, and many other fields, can greatly increase their job options by having an understanding of how to solve problems as a programmer.
Industry & Career Info Companies Hiring
Technology and computers are everywhere. Whether it's your mobile device or your car, so many things in the modern era are powered by computers. Understanding and being able to program effectively is, in some ways, the 21st century version of magic. Because of this, programmers are in extraordinarily high demand in industry. Google
Apple
Microsoft
Facebook
IBM
Intel
Adobe
Riot Games
Bloomberg
Apply for this Minor Contact Advisor

COURSES

Required Courses (5 units)










ITP-1652Introduction to C++ Programming
ITP-3653Managing Data in C++

Elective Courses (12 units)











Not offered in Spring 2017




ITP-3413App Development for Phones and Tablets
ITP-3423Mobile Application Development
ITP-3683Programming Graphical User Interfaces
ITP-3804Video Game Programming
ITP-4043Modern Technologies of Web Development
ITP-4353Professional C++
ITP-4393Compiler Development

Additional Info

*ITP 109x or ITP 115 can be substituted for ITP 165x, though ITP 165 is recommended.

**ITP 404x has additional prerequisites outside of the minor, though these prerequisites can be waived for students in the minor (subject to faculty approval).

***ITP 165 and ITP 365 can be waived for students who have taken CSCI 103 and 104. However, these students must take an additional elective course in order to have the appropriate number of upper-division units.

ITP COURSES OFFERED IN Spring 2017

Required Courses










ITP-1652Introduction to C++ Programming
ITP-3653Managing Data in C++

Elective Courses















ITP-3413App Development for Phones and Tablets
ITP-3423Mobile Application Development
ITP-3683Programming Graphical User Interfaces
ITP-3804Video Game Programming
ITP-4353Professional C++
ITP-4393Compiler Development