College Life
College Life
Private Schools That Are Well Known for This Major
- Stanford University
- Massachusetts Institute of Technology (as EECS)
- Princeton University
- Carnegie Mellon University
- Cornell University
State Schools That Are Well Known for This Major
- University of California—Berkeley (as EECS)
- University of Texas—Austin
- University of Illinois—Urbana-Champaign
- Georgia Institute of Technology
- California Institute of Technology
Classes in the Major
Math. Lots of it, of all types. You're going to be doing calculus, which will help you think abstractly, which is perfect for the abstract programming you'll be doing. A computer science degree also requires probability and statistics, discrete (not "discreet") mathematics, since programming is all about 0s and 1s, combinatorics, or ways you can combine things based on certain rules, and stuff like graph theory and the four-color map theorem. So yes, math.
Programming. This is the meat (or tofu) of the computer science major. Given that everything we do with computers is built on code, it makes sense that computer science majors walk away with a very in-depth knowledge of different types of computer code like C/C++, Java, and Python. There are other basics, too, like understanding functions, loops, and arrays. Programming classes will also teach you how to break down large programs into smaller modules that are easier to code.
Algorithms. Algorithms are basically instructions on how to compute things, and they're another fundamental part of computer science and programming. For example, a basic way to think about multiplication is the adding of a number to itself any number of times. Addition is an algorithm that a computer can use in order to multiply stuff, which is easier and simpler than multiplication. There are different types of algorithms to learn, such as geometric, parallel, and randomized, as well as tons of applications of algorithms, such as sorting data or searching through it. You'll also learn about NP-completeness, which is a type of problem where algorithms can easily verify a solution to the problem but take forever to actually find that solution.
Computer Systems. After all, it wouldn't be called computer science if you didn't learn about the whole computer. Much of the information here is built on the foundations of programming you'll learn in lower-level courses, and cover everything from how an operating system works, such as the concepts of I/O (input/output) and threading (which allows computers to work on multiple things at once), to how data on a computer is managed (through file systems and virtual memory), to how a computer connects with others (with TCP/IP and routing).
Concentrations. This is where the fun stuff comes in. After learning about the basics, you'll be able to branch out to do anything your little heart desires (as long as it's related to computer science). For example, if you love visuals, you can learn more about computer graphics or game development. If you like coding, then software engineering, systems, and databases may be for you. Worried about cyberwarfare or those evil mastermind hackers that threaten to leak private information? You can study computer security. Want to build a future that looks like the ones depicted in sci-fi? Take classes on artificial intelligence and robotics.