Computer Science (Games) questions

I’m an incoming CS Games Freshman at Viterbi. I private messaged an alumni for this major a bunch of questions, but thought I should make them public to help other students and allow other alumni and upper classmen their input.

  1. Which specific labs or professors would be willing to take freshmen for research? Do you know of any labs that do mainly Virtual Reality research that I could volunteer at?
  2. What kind of laptop did you have to start off with? What specs would be ideal for a CS Games major? Do the computer labs come equipped with game dev tools, and are they available 24/7? Is a really good gaming laptop needed my first year?
  3. When did you start learning how to utilize game engines in classes? Did you use Unity or Unreal Engine more?
  4. Are there specific professors I should opt to get and ones that I should avoid at all costs? Which ones for each?
  5. Since CS Games is not ABET accredited, did you ever find that as a disadvantage when searching for job opportunities?
  6. What did you do your PDP masters on (for those of you who did progressive degree)? Would you recommend the CS Master's program at USC, compared to other options for a graduate degree?
  7. Around how many people know how to code coming into CS? I only have basic knowledge in C++ and Python (through watching YouTube tutorials).
  8. Any internships that specifically take people who just finished freshman year (for me next summer) you know of?

Any other general advice for CS Games or CS in general would be greatly appreciated ^.^

Also, some of these are not CS-specific so whoever reads this and wants to chime in, please do!

  1. Since USC is the #1 gaming school not being accredited makes no difference but moreso because it is engineering programs that are ABET accredited, not CS.

Besides #2, any of your other questions can be answered when you get there or when you are well into the program. Your curiosity is great, but you have lots of time to learn most of that once you are in the program. I guess you are in the market for a laptop so that would be good to get info on. Some kids will have amazing gaming computers from day 1 (it is USC afterall), others won’t ever have them, you can get by with whatever you have (particularly the first year) and they have systems there to use. That question is totally budget dependent. A lot of kids have a certain machine and start adding bigger and better components to them through the years as well.

+1 for open data

  1. Which specific labs or professors would be willing to take freshmen for research? Do you know of any labs that do mainly Virtual Reality research that I could volunteer at?

Frankly, doing research as a freshman is not important for 99% of people. I would highly recommend you focus on being a freshman, adjusting to college, doing well, meeting new people, and having fun. During your first year it can be a side thing for you to get in contact with and pursue your areas of interest. For VR and games research, the things that come to mind:
http://ict.usc.edu/
http://interactive.usc.edu/game-innovation-lab/
http://www.isi.edu/home

Unless you already have VR/Game dev experience, consider working with other students on side projects so you have a bit more to show when you apply to research/positions/internships sophomore year.

  1. What kind of laptop did you have to start off with? What specs would be ideal for a CS Games major? Do the computer labs come equipped with game dev tools, and are they available 24/7? Is a really good gaming laptop needed my first year?

Pretty much anything will do for the first year. I had classmates with everything from beastly computers to netbooks. You will have access to multiple computer labs, mostly 24/7, which have the software you need. I think having a really good laptop is great because then you can work wherever you want and it should last several years. I lost a great (and pricey) laptop due to an electric circuit issue and for a few months used an iPad in my room/class/meetings and went to computer labs to do real work. Admittedly it sucked not being able to get together with friends to complete assignments unless I could convince them to join me in lab. If you are considering getting a good computer, which I recommend, then I suggest a laptop for portability. I actually really like Macs (if budget allows) and you can use one no problem, especially with Bootcamp or Parallels.

Any decent computer will do, but here are some spec guidelines. If you’re aiming to get a computer that should last 4 years then go for better.
Processor: Intel i5 2.3 GHz but aim for i7 2.5 GHz (Skylake) or better (idk what the AMD equiv is).
Memory: 8 GB but aim for 16 GB or more. I aim for 32 GB because I would get diminishing returns with 64 GB.
Harddrive: 500 GB (side note, I love my SSD).
Graphics: Dedicated card w/at least 1 GB memory. Just make sure it’s a recent, good card and you should be fine.
Screen: Personally I think 13" is crammed and I will always get 15" or more, at least 1920x1080 if not 2560x1440.

Check out http://www.costco.com/laptops.html for great deals and they have a 90 day return policy and offer a much better warranty then most places. If you’re considering a Mac but are budget conscious then you can check out the edu section and the refurb section and (at least in the past) can try stacking an edu discount on a refurb.

  1. When did you start learning how to utilize game engines in classes? Did you use Unity or Unreal Engine more?

I think you’ll first use game engines in classes sophomore year. If you can get into them before that, such as for a game jam (see MEGA), awesome. Using Unreal will be required for some courses, but in others you may have the option of using Unity. Learning both is a good idea because the capstone class usually has an even split of which game engine a project uses. I’d recommend Unity first because I know it was a ton of resources and it’s easier to get small projects running. Admittedly I’m biased because it’s what I use almost all the time for mobile game development.

  1. Are there specific professors I should opt to get and ones that I should avoid at all costs? Which ones for each?

A number of professors no longer teach (including most bad ones) since I was in undergrad courses. One of the best is The Game Programming Professor Sanjay Madhav. Try to take all the games classes with him that you can, and also I’ve heard his Pro C++ class is great. Michael Crowley is another great professor I had, and I learned a ton from him. If Anthony Borquez is teaching his class ITP-280 try to take it, it’s really good.

Professors I haven’t had but heard things about:
Schindler and Miller are good.
Cote is really good but difficult (take him to learn a ton but be prepared to work your ass off). Adleman is not as good as Cote but noticeably easier (plus he’s the A in RSA so that’s pretty cool).
CSCI 281 is a stupid class so just hit all goals and don’t spend extra time on it. The prof Easley is chill and has some good stories though.

  1. Since CS Games is not ABET accredited, did you ever find that as a disadvantage when searching for job opportunities?

We were literally laughing about this in a meeting today (we were interviewing a solid candidate from a different non-ABET program). So… literal lol. I’ve never encountered a company that cared. Your resume, portfolio, and connections are the most important things to get your foot in the door for internships/jobs.

Also, we (speaking for how I know my and other companies work) don’t care about your GPA. If it’s under 3.5 don’t include it, if it’s above 3.5 consider including it. If we don’t see a GPA on your resume we keep skimming to the stuff we care about more: experience, projects, skills, etc. Also don’t include irrelevant things on your resume and keep it to a page!

  1. What did you do your PDP masters on (for those of you who did progressive degree)? Would you recommend the CS Master's program at USC, compared to other options for a graduate degree?

I did PDP and am very happy I did. Not so much for the paper as for the opportunity to learn more, have another capstone project, and have another internship. This made me very competitive when seeking my first entry-level position. Plus friends who had been at games jobs for a year (because they didn’t stay for PDP) hooked me up with some interviews. My PDP was just regular CS because at that time it was not allowed to PDP for CS (Game Design). That was ok because I took the 3 most important grad level games classes anyway. PDP can be used to do research but I knew I wanted to go into industry and make awesome games. I would recommend doing PDP and simply taking the grad level games classes if you want the benefits: additional learning opportunities and portfolio pieces, time to network and have another internship, and a piece of paper that says M.S. Once you enter industry it is really hard to ever go back to school for a grad degree.

I’ll also add that I only considered a grad degree at USC because of PDP. I’m not familiar with other grad programs. If I had had to go to a different school I probably wouldn’t have bothered. Another year at USC was amazing!

  1. Around how many people know how to code coming into CS? I only have basic knowledge in C++ and Python (through watching YouTube tutorials).

You’ll be fine. Now probably a lot of people coming into CS know some basic coding, but the first semester, and indeed first year, really evens the playing field. I came in middle of the pack (basic HTML) and was fine. There were some people that had been coding for years (legit brilliant) and some that had never even tried to code. In the end, some people found it wasn’t for them but most beginners got past learning curves and did well. Sometimes I’d do just as well as the more experienced people because I put in a lot of effort and they already knew most of it so got lazy. Pro-tip: Ask the people better than you for help, CS is less competitive than many other majors. If you want to get ahead spend some time this summer doing some Unity tutorials and coding up some search algorithms, such as Dijkstra’s, in C++.

  1. Any internships that specifically take people who just finished freshman year (for me next summer) you know of?

Not really. Maybe this https://www.scec.org/internships but even that is way more likely when you finish sophomore year. It’s rare to find an internship after freshman year so consider it a summer to have a regular job and/or work on a portfolio piece with friends. Or travel to a different country or w/e. Just don’t be worried. So many more doors open up during sophomore year.

I’ll also dump some other relevant info mentioned in other threads that may be hard to dig up.

CS vs CSGM
Basically the CSGM curriculum was made by taking out classes unnecessary for CS, such as foreign language, and replacing them with relevant classes, such as Video Game Programming. In either major you get a quality education and learn what you need for a job in software. Anyone with good CS fundamentals and programming skills can get a job at a software company. Good CSGM grads can go anywhere good CS grads can go. Good CS grads can not necessarily go anywhere good CSGM grad can go because a game company doesn’t want to hire someone with little to no experience in games. Rare exceptions exist, but it sucks when I have to deny a great vanilla CS candidate because their only games experience is from https://www.raywenderlich.com/category/unity (great tutorials btw).

IMGD vs CSGM
In the USC Cinema school there’s the Interactive Entertainment degree, which is like the ‘soft’ version of CS Games (B.S. vs B.A.) Both degrees take roughly the same required game design classes, but we have more required engineering (mostly CS) classes whereas they have some required Cinema classes. If you want a little more game design and less engineering (cuz we have a few units of tech electives and they have a few units of game design electives) consider Interactive Entertainment, but I highly recommend CS Games. If you think about it, with an Interactive Entertainment degree you’re trained for game design and if you don’t get a job in the games industry your skills are limited in what they apply to; however, with a CS Games degree you can go into a number of non-games fields - pretty much the same as any regular CS major.

Clubs (the links go to www . facebook . com )
Being involved in MEGA (highly recommend - https://www.facebook.com/groups/USCMEGA/) and ACM (https://www.facebook.com/groups/uscacm/) allows more experiences with Game Jams, mini-lectures about a particular language or topic, and Hackathons. I wish I would’ve done that more because it’s a great way to network and build your portfolio through hands-on doing. Learning a language outside of class, such as Obj-C if you want to do iOS dev, is also great.

General advice?
Grades don’t matter like they do in high school, so it’s not worth slaving over a class to move your grade a tick e.g. A- to A. Do a good job on all of your work and submit everything on time and excel on exams and you’ll do well.

HAVE FUN, BE AWESOME.