THE UNOFFICIAL GUIDE TO COMPUTER SCIENCE @ HARVARD VERSION 8

U D E . D R A V R A H S. .C W WW

DESIGNED BY CS50 Haven’t taken CS50 yet? Visit cs50.net for FAQs. S 2 UNOFFICIAL GUIDE TO CS @ HARVARD

Photograph by Eliza Grinnell What is CS? How can I get a secondary in CS? Take any four courses numbered 50 or higher. See page We like to say that CS teaches you how to think 9 for popular study cards. See Computer Science under more methodically and how to solve problems more Secondary Fields in the Handbook for Students. effectively. As such, its lessons are applicable well beyond the boundaries of CS itself. How do I concentrate in CS? Take at least two of CS50, CS51, and CS61; take CS121 But CS is also, more generally, the study of information. and another “theory” course; take four technical electives; How do you represent it? With what methods (aka and take Math 21a and Math 21b. Plus take any of algorithms) can you process it? Math 1a, Math 1b, and CS20 as needed. See page 8 for popular study cards. See Computer Science under Fields Perhaps the most liberal answer, though, is that CS “has of Concentration in the Handbook for Students. no exclusive domain of its own, and that its importance comes from the problems to which it is applied.” And Can I change my concentration to CS? therein lies the excitement. CS empowers you with Yes, so long as you still have time to satisfy the requirements. tools and ideas that can be applied to practically any Even David J. Malan ’99, who now teaches CS50, didn’t domain of interest to you, both in college and beyond. take his first CS course until his sophomore year, when he switched from Government to CS. What is CS not? Does CS require a thesis? No, not for non-Honors or Honors, but for High Honors and Contrary to popular belief, CS is not really about Highest Honors, it’s expected. See Computer Science under programming, even though you do learn how to Fields of Concentration in the Handbook for Students. program. Programming languages are tools that Computer Scientists use or create in order to solve Is a thesis just a big program? problems of interest to them. No, a thesis is a research paper. You might end up writing programs in order to evaluate your ideas, but those programs are ordinarily means to an end, not an end in themselves. Visit cs.harvard.edu/thesis for examples. UNOFFICIAL GUIDE TO CS @ HARVARD 3

How do I graduate with Honors in CS? Should I activate Advanced Standing and Take six technical electives instead of four and have a get a fourth-year master’s degree in CS? concentration GPA in the top half of your class. See Maybe! If you are eligible for Advanced Standing and Computer Science under Fields of Concentration in think you could handle eight (mostly) 200-level CS the Handbook for Students. courses, it’s a great opportunity. Your bachelor’s degree doesn’t even need to be in CS, so long as you can still How do I graduate with High Honors in CS? satisfy the prerequisites for the 200-level courses. See High Honors are decided by faculty vote. You must Other Academic Opportunities in the Handbook for ordinarily write an “excellent thesis” to be considered. Students. See Computer Science under Fields of Concentration in the Handbook for Students. Can I do a joint concentration between CS and another field? How do I graduate with Highest Honors in CS? Yes, but you probably shouldn’t. Joint concentrations Highest Honors are decided by faculty vote. You must are really for students who want to write a thesis on ordinarily write an “outstanding thesis” to be considered. some research problem in the intersection of two fields. See Computer Science under Fields of Concentration If you simply want to study both fields, it’s generally in the Handbook for Students. best to get a secondary or simply take courses in CS or Do any CS courses count for Gen Ed? the other field. Yes! To satisfy Empirical & Mathematical Reasoning, Is CS part of Mind, Brain, and Behavior? take CS1, CS20, CS50, or CS171. (Note that CS1 Yes! See Computer Science under Fields of does not count toward a concentration or secondary Concentration in the Handbook for Students. in CS.) To satisfy Culture & Belief, take CS105. Does a grade of SAT in CS50 count toward Should I study CS even if I don’t want to be concentration or secondary credit? a programmer? If you intend to concentrate in or do a secondary in Yes! CS concentrators head off in all sorts of directions CS, you should take CS50 for a letter grade. But should after graduation. SeeFigure 1 for titles that alumni you decide to concentrate in or do a secondary in CS since 1984 now hold. See Figure 2 for fields in which only after taking CS50, a SAT in CS50 would count for alumni since 1984 can now be found. concentration or secondary credit.

Figure 1: Titles that alumni since 1984 now hold. 4 UNOFFICIAL GUIDE TO CS @ HARVARD

Figure 2: Fields in which alumni since 1984 can now be found.

found:Venture Partners · Big Tent Design · Bingham Should I concentrate or minor in CS even if McCutchen · Blackhorse Asset Management · I don’t want to work in tech? Bloomberg, LP · Blue Cross Blue Shield of North Carolina · BlueCrest Capital Management Ltd · Booz Yes! CS empowers you to solve problems in all sorts Allen Hamilton · Consulting Group · Boston of domains. Here’s where alumni since 1984 can be Harbor Ship Yard and Marina #F3 · Boston University · Briar Rose LLC · Bridgewater Associates · Bronto 033 Asset Management · 2Wire Inc. · AAA Northern Software, Inc · Building Educated Leaders for Life · California, Nevada, Utah · Ab Initio Software CA, Inc. · California State University - Hayward · Corporation · Acccenture · Accel Partners · Accenture · Caltech · Cambridge Semantics · Cardozo School of Access Global Partners · Action Verb LLC · Active Law · Carnegie Mellon University · Children's Hospital Endpoints, Inc. · Acumen Fund · AdNectar · Adobe · Ciplex.com · Citigroup · ClearNow, Inc. · Clever Systems · Aegon · Agile Communications, Inc · Agilex Machine · Cliff Island Software · CNA Insurance · CoBu Technologies · AIG · Akamai Technologies · Alliance Technology · Code Red · Cognex Corp · Colorado Growth Equities · Alverno College · .com · Technical University - Kansas City · Columbia Amdocs · American Express · Andera, Inc. · Angelo, Presbyterian Hospital · Columbia University/Harlem Gordon · Apple, Inc. · AQR Capital Management · Hospital Center · CommonMind LLC · Computational Aravo Solutions · AristoDigital · Asprova Corporation · Models Inc · Computer Partners Inc · Congregation AT Kearney Inc · Athenahealth, Inc. · Authoria, Inc. · B'nai Torah · Contra Costa Community College Autodesk Inc · Autonomy · Bain Capital · Bainwood District · Council on Spiritual Practices · Credit Suisse · Huang & Associates · Barclays Capital · BBN Credit Suisse First Boston · CrossTech Group · CTB/ Technologies · Beaver Lakefront Resort, Inc. · Bee McGraw-Hill · Cuil · D. E. Shaw & Co. · Daiwa Securities North, LLC · Bellevue Hospital Center · Bessemer America · Dangermarc Studios · Daniel's Jewelers · UNOFFICIAL GUIDE TO CS @ HARVARD 5

Danoo, Inc. · Dartmouth Medical School · Data Hua Securities Limited · Gartner, Inc · Genentech, Inc. · Deletives · Davis Polk & Wardwell · DE Shaw & Co. · Goldman Sachs · · Goose Networks, Inc. · Deloitte & Touche · Department of Justice · DeSales Greater Greater Washington · GreenRoad Technologies University · Deutsche Bank · Diamond Management & Inc · Greenwich Capital · Guardian Technologies Technology Consultants · Dimagi Inc. · Dixie State International, Inc. · Guidewire Software ·Harvard College · DOE/National Nuclear Security Administration Business School · Harvard College · Harvard University · DoubleClick Inc. · DoubleDyno, Inc. · Dowling & · Hasbro, Inc. · Highland Financial Holdings Group · Partners Securities, LLC · Draper Fisher Jurvetson · HLCSoft · Holland & Davis LLC · Horizon Asset Eastport Analytics Inc · Eastwan Kodak Co · Effici LLC International Limited · Howard Rice Nemerovski · Electroactive Inc · Ellington Management Group · Canady Falk & Rabkin · Hyperion Solutions · Idiom EMC Corporation · EMC*2 Corp. · Endeca Technologies Technologies · IL2000 · iLike · Imagen Incorporated · · Entelos, Inc. · etrials Worldwide, Inc · Evans Griffiths IMakeNews, Inc. · Immunity, Inc. · Index Ventures · & Hart, Inc · · FAS Computer Services · Feith Industry Aspect LLC · Information Builders Inc · Systems & Software, Inc. ·Feldman Gale, P.A. · Fidelity Ingeeni Studios, Inc. · Integrative Bodywork · Intel Investments · First Potomac Realty Trust · Fish & Corporation · Intel Semiconductor Ltd · Interactive Richardson P. C. · Five Oaks Technologies, Inc. · Flixster, Factory · InterfaceThis · International Air Transport Inc. · Fluidnet · Flybridge Capital Partners · Fore Association · International Business Machines · Intuit · Research and Management · Forest View Elementary ISI · iSkoot, Inc. · JP Morgan · J2 Interactive LLC · School · Franklin W Olin College of Engineering · Fred Jamison Group · Janus Capital Group · Jefferies Hutchinson Cancer Research Center · frog design · Gao International Limited · Jones Day · Joy Health &

Photograph by Dan Armendariz 6 UNOFFICIAL GUIDE TO CS @ HARVARD

Wellness, LLC · Juniper Networks · KANTOR Corporation · Reach Network · Rembrandt IP Management Consultants · Katzenbach Partners LLC · Management, LLC · Renaissance Technologies · Keane, Inc · Khosla Ventures · Kiva Microfunds · Reservoir Labs · Resource Capital Group · Richland Knesset of Israel · Knobbe Martens Olson & Bear LLP · District Two · Robbins Russell Englert Orseck Kowintec, Inc · Krauss Dermatology · La Quinta High Untereiner & Sauber LLP · Round Two, Inc. · Salt River School · Legacy Investments, Inc · Legg Mason · Linden Project · Samasource.org · Sears Holdings, Inc. · Lab · LinkedIn · Liquid Machines · Lithium · Lonely Seaweed Systems Inc · ServiceMaster Chesapeake · Planet · Lontra · LookSmart · LucidEra · Mack Scogin Sevanta Systems · Sharpcast · Shaw Systems Associates Merrill Elam Architects · Mage Sports, LLC · Marathon Inc · Shelflink Inc · Shumway Capital · SiBEAM, Inc · Asset Management · Marin Academy · Marin Software Sienna Ventures · Skyward Mobile · Slide · Small · MarketMind Technologies · Marsh Croft Property Business Administration · SmartDraw.com · SmartTurn Group, LLC · Masergy Communications · Massachusetts · SNiP · Solid Concepts Company · SRI International · General Hospital · Match.com · Maveron · McKinsey & St. Catharine's College · St. Luke's Roosevelt Hospital Company · McKinsey & Company, Israel · McMaster- Center · State Street Associates · State Street Global Carr Supply Company · MDCIV, Inc. · MDT Advisers · Advisors · Stentor Inc · Strake Jesuit College Preparatory Medtronic · Mercatus LLC · Mercer Management School · Suburban Radiologists, S.C. · Sun Microsystems Consulting · Metacapital Management · Metaphor · SunGard Higher Education · SunTrust · Symantec Computer · Micro Office Solutions · · Corporation · Tandberg · Techcelerator · Tellme Microsoft Research · Mindworks Software LLC · MIT · Networks · Teradyne Inc · The Cutler Group ·The Invus MIT Computer Science and AI Lab · MIT Lincoln Group LLC · The Walt Disney Company ·Third Sky Inc Laboratory · MLB Advanced Media · MobiTech 3000 · TIBCO Software Inc · Ticketmaster Inc · Tom Stone LLC · Morgan Stanley · Morgan Stanley Smith Barney · Gallery · Topix.net · TrafficBroker · Treehouse Morse, Barnes-Brown & Pendleton, P.C. · Mozilla Enterprises · TripAdvisor Inc · TTI-C · Tudor Investment Corporation · MySpace · Nassau University Medical · Tufs University · Tulane Law School · Two Sigma Center · National Institute of Standards and Investments · Tykhe Capital LLC · U.S. Federal Technology · National Institute on Aging · National Government · UBS Financial Services · UCSF · Union Institutes of Health · Network Appliance · Network College · Univ. of Southern California · University of Appliance, Inc. · Neufeld Scheck & Brustin, LLP · New Auckland · University of California, Berkeley · Enterprise Associates · New Mountain Capital LLC · University of Maryland · University of Maryland, New York Law School · nextstop.com · NFL · Nintendo College Park · University of Michigan · University of Technology Development, Inc. · Northeast Orthopaedic Minnesota · University of New Hampshire · University Specialists, PC · Northeastern University · Numeric of Pennsylvania · University of Washington · US Agency Investors LLC · Ocala Eye · Olympian Gaming, LLC · for International Development · US Foodservice · US OPNET Technologies · Opnet Technology · Optaros Inc Secret Service · Vanderbilt University · Vanderbilt · Oracle / BEA Systems / Plumtree Software · Oracle University Medical Center · Venrock · VidaTech Corporation · Orange Academy · Orion IT Services · Incorporated · Viewlogic Systems · ViPS · Virgin Outbound Light Group · Outcome Sciences, Inc · HealthMiles, Inc. · VistaPrint · Visto Corp · VMware, Parfums Christian Dior · Passport Technologies · Inc · VMware, Inc. · Washington State 8th District · Patterson Harkavy LLP · Paulson & Co., Inc. · PDI/ Weight Watchers International · Weill Cornell Medical Dreamworks Animation · Peerspin, Inc. · Philadelphia College · Windward Mark Interactive · Wireless VA Medical Center · Phillips & Nelson Media · Generation · WorldChain Inc · Xaraf Management PictureCode · Pittsburg Unified School District ·Pivot LLC · Xaverian Brothers High School · Yahoo! · Yale Inc. · Pivotal Labs · Pixar Animation Studios · Pleco University · Yam's Electronics Fty Ltd · Yieldex · Zantaz Software ·Pluralsight · PopCap Games, Inc. · Positive Inc. · Zappos.com, Inc. · zeo Capital Advisors, Inc. · Energy · Princeton University · Procter & Gamble · Zyasoft LLC Project Einstein, Inc. · Protea Systems · Publishers Circulation Fulfillment, Inc. ·Pyramid Research · Qualcomm Flarion Technologies · Quia · Quorum Federal Credit Union · QVT Financial LP · Random Walk Computing · Raytheon · RBC Capital Markets UNOFFICIAL GUIDE TO CS @ HARVARD 7

Photograph by Titus Jahng Can I do research in CS? Will everyone in CS know more than me? Yes! Many CS courses offer opportunities for research, No! Contrary to popular belief, not every Computer particularly 200-level courses. And you can take Scientist has been programming since childhood! In CS91r to work one-on-one with faculty. Students and fact, 73% of the students who took CS50 in Fall 2012 had faculty do research in all sorts of areas, including, but never taken a CS course before. Only 20% had taken not limited to: one, and only 7% had taken two or more, per Figure 3.

• Artificial Intelligence and Computational Linguistics Two or • Computation and Economics more 7% • Graphics, Visualization, and Imaging • Human-Computer Interaction One None • Information, Systems, and Networks 20% 73% • Intelligent Systems and Computer Vision • Languages, Compilers, and Operating Systems • Multi-Agent Systems • Privacy and Security • Theory of Computation Figure 3: CS50 is most students’ very first course in CS. 73% of the students who took CS50 in Fall 2012 had never taken a CS course before; 20% had taken one; and 7% had taken two or more. 8 UNOFFICIAL GUIDE TO CS @ HARVARD

For those with stronger math backgrounds, Popular Study Cards for interested in hard-core systems Concentrators • AM21a: Mathematical Methods in the Sciences • AM21b: Mathematical Methods in the Sciences Plenty of other combinations are possible. • CS50: Introduction to Computer Science I Graduate-level (200-level) courses are also allowed! • CS51: Introduction to Computer Science II • CS61: Systems Programming and Machine Organization For late converts to CS • CS121: Introduction to Formal Systems and • Math 1a: Introduction to Calculus Computation • Math 1b: Calculus, Series, and Differential Equations • CS124: Data Structures and Algorithms • AM21b: Mathematical Methods in the Sciences • CS127: Introduction to Cryptography • CS20: Discrete Mathematics for Computer Science • CS143: Computer Networks • CS50: Introduction to Computer Science I • CS144r: Network Design Projects • CS61: Systems Programming and Machine • CS152: Programming Languages Organization • CS161: Operating Systems • CS109: Data Science • CS165: Information Management • CS121: Introduction to Formal Systems and For budding theorists writing theses Computation • CS124: Data Structures and Algorithms • Math 25a: Honors Linear Algebra and Real Analysis I • CS141: Computing Hardware • Math 25b: Honors Linear Algebra and Real Analysis II • CS171: Visualization • AM106: Applied Algebra • CS179: Design of Usable Interactive Systems • AM107: Graph Theory and Combinatorics • CS50: Introduction to Computer Science I For those without prior college-level math, • CS51: Introduction to Computer Science II interested in human-computer interaction • CS91r: Supervised Reading and Research • CS121: Introduction to Formal Systems and • Math 1a: Introduction to Calculus Computation • Math 1b: Calculus, Series, and Differential Equations • CS124: Data Structures and Algorithms • AM21a: Mathematical Methods in the Sciences • CS127: Introduction to Cryptography • AM21b: Mathematical Methods in the Sciences • CS141: Computing Hardware • CS20: Discrete Mathematics for Computer Science • CS152: Programming Languages • CS50: Introduction to Computer Science I • CS175: Computer Graphics • CS51: Introduction to Computer Science II • CS61: Systems Programming and Machine For those interested in machine intelligence Organization • AM21a: Mathematical Methods in the Sciences • CS105: Privacy and Technology • AM21b: Mathematical Methods in the Sciences • CS121: Introduction to Formal Systems and • CS20: Discrete Mathematics for Computer Science Computation • CS50: Introduction to Computer Science I • CS124: Data Structures and Algorithms • CS51: Introduction to Computer Science II • CS171: Visualization • CS61: Systems Programming and Machine Organization • CS179: Design of Usable Interactive Systems • CS121: Introduction to Formal Systems and • CS182: Intelligent Machines: Reasoning, Actions, and Computation Plans • CS124: Data Structures and Algorithms • CS141: Computing Hardware • CS146: Computer Architecture • CS181: Intelligent Machines: Perception, Learning, and Uncertainty • CS187: Computational Linguistics • CS189r: Autonomous Multi-Robot Systems UNOFFICIAL GUIDE TO CS @ HARVARD 9

Popular Study Cards for For those interested in life sciences • CS50: Introduction to Computer Science I Secondaries • CS51: Introduction to Computer Science II • CS124: Data Structures and Algorithms Plenty of other combinations are possible. • CS171: Visualization Graduate-level (200-level) courses are also allowed! For those interested in business For “those less comfortable” • CS50: Introduction to Computer Science I • CS50: Introduction to Computer Science I • CS105: Privacy and Technology • CS105: Privacy and Technology • CS124: Data Structures and Algorithms • CS171: Visualization • CS165: Information Management • CS179: Design of Usable Interactive Systems For those interested in math For “those more comfortable” • CS51: Introduction to Computer Science II • CS51: Introduction to Computer Science II • CS121: Introduction to Formal Systems and Computation • CS61: Systems Programming and Machine Organization • CS124: Data Structures and Algorithms • CS121: Introduction to Formal Systems and Computation • CS127: Introduction to Cryptography • CS161: Operating Systems For those interested in networks For those interested in data • CS50: Introduction to Computer Science I • CS50: Introduction to Computer Science I • CS51: Introduction to Computer Science II • CS109: Data Science • CS143: Computer Networks • CS165: Information Management • CS144r: Networks Design Projects • CS171: Visualization For those interested in programming languages For those interested in economics • CS51: Introduction to Computer Science II • CS51: Introduction to Computer Science II • CS61: Systems Programming and Machine Organization • CS121: Introduction to Formal Systems and Computation • CS152: Programming Languages • CS182: Intelligent Machines: Reasoning, Actions, and • CS153: Compilers Plans • CS186: Economics and Computation For those interested in robotics • CS51: Introduction to Computer Science II For those interested in efficiency • CS121: Introduction to Formal Systems and Computation • CS50: Introduction to Computer Science I • CS182: Intelligent Machines: Reasoning, Actions, and • CS51: Introduction to Computer Science II Plans • CS121: Introduction to Formal Systems and Computation • CS189r: Autonomous Multi-Robot Systems • CS124: Data Structures and Algorithms For those interested in speech recognition For those interested in graphics • CS50: Introduction to Computer Science I • CS50: Introduction to Computer Science I • CS51: Introduction to Computer Science II • CS51: Introduction to Computer Science II • CS182: Intelligent Machines: Reasoning, Actions, and • CS171: Visualization Plans • CS175: Computer Graphics • CS187: Computational Linguistics

For those interested in hardware For those interested in software development • CS50: Introduction to Computer Science I • CS50: Introduction to Computer Science I • CS61: Systems Programming and Machine Organization • CS51: Introduction to Computer Science II • CS141: Computing Hardware • CS124: Data Structures and Algorithms • CS148: Design of VLSI Circuits and Systems • CS164: Software Engineering 10 UNOFFICIAL GUIDE TO CS @ HARVARD Life after 50 You can head off in all sorts of directions after CS50, but here are some popular routes. SeeComputer Science in the Courses of Instruction for prerequisites.

FALL CS148 CS179 Design of VLSI Design of Usable SPRING Circuits and Systems Interactive Systems

CS171 CS146 CS141 Visualization CS109 Computer Computing Data Architecture Hardware Science

CS124 CS50 CS105 Data Structures Introduction to Privacy and and Algorithms Computer Science I Technology

CS61 CS127 CS20 Introduction to Discrete Mathematics CS51 System Programming & Cryptography for Computer Science Machine Organization Introduction to

Computer Science II

CS143 CS121 Computer Networks Introduction to Formal CS152 Systems & Computation Programming Languages CS153

CS187 CS165 Compilers Computational Information Linguistics Management CS161 Operating Systems CS175

CS181 Computer Graphics Intelligent Machines: CS164 Perception, Learning, Software CS186 and Uncertainty Engineering Economics and CS189r

Computation CS182 Autonomous Intelligent Machines: Multi-Robot Systems CS144r Reasoning, Actions, Networks and Plans Design Projects