Skip to main content

My USC journey has been a wild ride. I first came to USC as a Biomedical Engineering student because I wanted to research problems in genetics and genomics. Within a semester, I switched to Computer Science despite barely knowing how to code.  I transferred majors because I wanted to better learn computational skills so I could better contribute to my projects. Since then, I’ve been able to make strides in my genetics research by publishing and presenting at conferences. These successes are largely due to my ability to quickly implement experiments and analyze results, all attributed to the coding skills I developed as a CS student at USC. Below, I’ve outlined a list of reasons why the USC Computer Science curriculum allowed me to be successful. Why the program is not for everyone, I strongly believe it is a great match for many students, particularly if you want to be involved in campus life.


  • No Curves

There are no curves at USC. Instead, professors prefer scaling grades to enable people to pass. I genuinely believe that if you show up to class, complete assignments, ask for help, and study for exams, you will easily pass every computer science class at USC.

  • No training wheels

USC’s computer science curriculum was an optimal place to teach me programming from the ground up. The curriculum is based around C++ which let me develop robust debugging skills and understand how to design memory-efficient programs. Plus, once you learn the syntax heavy C++, practically every other language becomes easy to learn.

  • Approachability

In my previous point, I talked about how the curriculum has no training wheels. Do not mistake this point for the curriculum being unnecessarily difficult. I liked that the curriculum allowed anyone, regardless of their prior experience, to learn how to code, and code well. This key fact was one of the reasons how I have become both a successful computer scientist and researcher.

  • Collaboration

Classes revolve around collaboration. While some classes encourage you to work alone with severe coding plagiarism penalties, all professors encourage study groups to discuss class concepts and materials

  • Flexibility

USC allowed me to focus on extracurricular endeavors. While being a computer science student, I was extremely involved in the non-profit student organization Novus Think Tank, as well as the premier artificial intelligence society CAIS++. Don’t get me wrong – classes are important. But the curriculum is not meant to consume your entire life. Viterbi wants you to be involved!! Hence the curriculum is built in mind to let you pursue your non-academic interests.

  • Interview Prep & Recruitment

USC front loads classes. Most people take the data structures class (CSCI 104) and algorithms class (CSCI 270) before the end of their sophomore year so they will be well prepared to ace their programming exams. Additionally, many organizations host technical interview prep sessions in addition to the many recruiters that visit campus to allow students to secure an internship.


Of course, these are my opinions on why I think the Computer Science curriculum worked for me. Depending on your situation, you may prefer other attributes in your classes. Regardless, I hope this gives you a detailed look at why I chose (and stayed) at USC.

Jordan Cahoon