<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>HumanComputer Interaction
HumanComputer 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>