Stanford University, based in Stanford, California offers a fully funded PhD program in Computer Science. Students begin by completing 3 breadth requirements in mathematical and theoretical foundations, computer systems and applications to form a foundation in the program. After completing these requirements, students select an advisor and pursue independent research to complete their thesis. Students are encouraged to collaborate with other departments across the university to broaden their research and utilize the Stanford network. All PhD students are fully supported through fellowships, teaching assistantships and research assistantships.