Computer Science at Stanford

<p>Hey everyone,</p>

<p>I'm a soon-to-be freshman at Stanford and have just about decided to major in Computer Science (for someone who swore up and down to become a doctor, this was a pretty huge change) and I need some advice</p>

<p>(A) Because I do love biology, I wanted to possibly major in Biomedical Computation which was described as "an intersection of computer science, biology, and medicine." Would it be possible to work, at, say, Google, or Apple, with this major?</p>

<p>(B) The CS major in Stanford has a series of tracks to choose from...I don't really know which one to pick. I LOVE programming, and I want to focus on building softwares and programs. I don't want to build like, physical hardware nor do I want to do things like data analysis or mining...</p>

<p>Here are the tracks - </p>

<p>Artificial Intelligence
Artificial Intelligence includes the study of foundational material on topics such as logic, probability, statistics, language, and their relationship to several applications. Topics in the AI concentration include knowledge representation, logical reasoning, robotics, machine learning, probabilistic modeling and inference, natural language processing, cognition, speech recognition and synthesis, computer vision, and computational biology.</p>

<p>Biocomputation
Biocomputation is an interdisciplinary track that focuses on computational challenges and solutions in the biological and medical informatics application areas. Courses covering advanced algorithms, databases, networking, modeling and simulation, as well as those covering biocomputation, bioengineering, and medical informatics are included in this specialization.</p>

<p>The biocomputation track is unique because it has modified math and science requirements in order to give students necessary background in biology. It also opens up the possibility to fulfill pre-med requirements with a CS degreee. Please see a program sheet for more details.</p>

<p>Computer Engineering
The computer engineering track gives students a combination of CS and EE knowledge required to design and build both general purpose and application-specific computer systems. The computer has focuses on three main areas: Networking, Digital Systems, and Robotics and Mechatronics. In the networking portion students learn the fundamental aspects of networking hardware and software. Digital Systems courses teaches students how to design and build digital hardware and the low-level software required to support it. Finally, Robotics and Mechatronics is an area within this track which gives students experience building hardware and software for robotic and mechanized systems.</p>

<p>Graphics
Graphics includes the study of digital image and video manipulation, including topics related to capture and display devices; color, shading, lighting, and perception; digital representations of physical objects, simulation, modeling, and animation; and geometric algorithms.</p>

<p>Human–Computer Interaction
Human–Computer Interaction is a multidisciplinary track that studies how people interact with computational devices from the largest computing machines to handheld devices to tiny, ubiquitous computers. The HCI group teaches user-centered design thinking with a focus on ubiquitous computing, novel interaction techniques, tools for enhancing designers' creativity, and rapid prototyping. These skills are applicable to areas such as collaborative work, information visualization, and tangible computing.</p>

<p>Information
Information is a track that that synthesizes topics from across Computer Science that pertain to creating, processing and understanding digital information in the modern world. The track seeks to span topics ranging from computer data storage through issues of data models, formal query languages, and issues of data integrity to searching for and extracting information from unstructured data sources such as web pages, human languages, and DNA, by using techniques like machine learning and data mining.</p>

<p>Systems
Systems is the study of the design and implementation of computer systems such as compilers, databases, networks, and operating systems. Topics include the hardware/software interface, the networking stack, digital architecture, memory models, optimization, concurrency, privacy, security, distributed and large-scale systems, reliability and fault tolerance, and related algorithms and theoretical topics.</p>

<p>Theory
Theory includes the study of fundamental computational techniques, their capabilities, and their inherent limitations. Topics include data structures, sequential and parallel algorithms, computational geometry, design and analysis of programs and programming languages, logic and formal methods, and supporting studies in combinatorial, logical, and algebraic mathematics.</p>

<p>Unspecialized
The unspecialized track includes classes from across the CS Department and gives students the opportunity to study many areas in the field, providing them with a significant amount of breadth. This track is essentially the previous CS undergraduate curriculum. Requirements include a systems class, an AI class, an applications class, and electives from the general CS electives list.</p>

<p>If I wanted to help develop OS's at Apple or be a programmer at Google, which track should I follow?</p>

<p>THANK YOU SO MUCH <3</p>

<p>The Biocomputation option under the CS program sounds like the perfect option.

  • Learn about biology
  • Get a fully-fledged CS degree from Stanford
  • Take all your pre-med requirements, so you could become a doctor</p>

<p>Google, Apple, Amazon, Microsoft, etc. would all hire a star coder from Stanford CS. You’d also be able to pursue medical school if you change your mind later. There’s so much win in this option.</p>

<p>GAFAM recruit widely, since they are big, meaning they have the resources to recruit widely and need to recruit widely to get a big applicant pool. Why do people seem to think that those are the only companies that CS graduates work at?</p>

<p>Being at Stanford for CS is advantageous with respect to all of the small companies in nearby Silicon Valley that do not have the resources or need to recruit widely.</p>

<p>You don’t need to pick a specialization today. Get there and start taking courses, talking to professors and upperclassmen and grad students. Your area of specialization will evolve as your knowledge of the field grows.
There are thousands of companies that hire CS majors and only two of them are Apple and Google :wink: For someone interested in medicine, for example, you could work in the healthcare or medical devices industries. There are tons of options.</p>

<p>Also, once you get on campus, go to the Career Center and learn about their services!
[Career</a> Development Center | Student Affairs](<a href=“http://studentaffairs.stanford.edu/cdc]Career”>http://studentaffairs.stanford.edu/cdc)
They have tons of resources to help you identify your interests, potential career paths etc. You can see the list of employers that come to their various career fairs to recruit students for jobs and internships.</p>

<p>Sounds like the Biocomputation track is the best fit for you. Congrats on Stanford, arguably the best CS school in the world!</p>