PREPARATORY COURSES
Not everyone is able to take the required Computer Science courses that are pre-requisites to our game-development program. Or, you might be a high school student who is not even at UCSB not yet, but is eager to get a head start!
Listed below are the required courses (and their online alternatives) that will give you the necessary programming background to succeed in our program. For every requirement, we try to provide free alternatives to make our program as accessible as possible to everyone. If you find other courses that you think might be good alternatives, please email us to ask!
Required courses
Introduction to Programming (take one):- UCSB ECE 3 - Introduction to Python Programming For Engineers [in person @UCSB]
- UCSB CS 8 - Introduction to Computer Science [in person @UCSB]
- Harvard CS50 - Introduction to Computer Science [edX] *free*
- MIT 6.100L - Introduction to CS and Programming using Python [OpenCourseWare] *free*
- Princeton - Computer Science: Programming with a Purpose [Coursera] *free*
- UC Santa Cruz - C for Everyone: Programming Fundamentals [Coursera] *free*
- UCSB CS 16 - Problem Solving with Computers I and CS 24 - Problem Solving with Computers II [in person @UCSB]
- Getting Started with C++, Practice It C++: Common Data Structures, and Modern C++: Advanced Techniques and Features [LinkedIn] *free to UCSB*
- The C++20 Masterclass : From Fundamentals to Advanced [Udemy]
- Beginning C++ Programming - From Beginner to Beyond [Udemy]
- Learn C++ Programming - Beginner to Advance- Deep Dive in C++ [Udemy]
- UC Santa Cruz - Coding for Everyone: C and C++ Specialization [Coursera] *free*
- UCSB CS 32 - Object Oriented Design and Implementation [in person @UCSB]
- University of London - Object Oriented Programming Specialization [Coursera] *free*
- UCSB CS 130A - Data Structures and Algorithms I and CS 130B - Data Structures and Algorithms II [in person @UCSB]
- Princeton - Algorithms, Part I and Algorithms, Part II [Coursera] *free*
- MIT 6.006 - Introduction to Algorithms and 6.046J - Design and Analysis of Algorithms [OpenCourseWare] *free*
- University of Illinois - Accelerated Computer Science Fundamentals Specialization [Coursera] *free*
- Mastering Data Structures & Algorithms using C and C++ [Udemy]
Strongly recommended, but not required
Software Engineering:- UCSB CS 156 - Advanced Applications Programming [in person @UCSB]
- IBM DevOps and Software Engineering Professional Certificate, specifically Introduction to DevOps, Introduction to Agile Development and Scrum, Introduction to Software Engineering, Getting Started with Git and GitHub, and Introduction to Test and Behavior Driven Development [Coursera] *free*
- Software Engineering 101: Plan and Execute Better Software [Udemy]
Very helpful, but not required
C# Programming:- Learning C# and Object-Oriented Programming with C# [LinkedIn] *free to UCSB*
- Complete C# Masterclass [Udemy]
- C# for .NET Developers [Coursera] *free*
- MIT CMS.611J - Creating Video Games [OpenCourseWare] *free*
- C# Programming for Unity Game Development Specialization [Coursera] *free*
- Game Design and Development with Unity 2020 Specialization [Coursera] *free*
- Unity Essentials [Unity]
- Junior Programmer [Unity]
- Creative Core [Unity]
- Master the Coding Interview: Data Structures + Algorithms [Udemy]
- Object-Oriented Design [Coursera] *free*
- How to write SOLID C++ [Udemy]
- Computer Science 101: Master the Theory Behind Programming [Udemy]
- XXX