I'm currently planning on taking AP Calculus BC and AP Statistics as a freshman in high school next year, and am looking to go into the computer science field. I was wondering what track I should continue on, going into discrete mathematics, linear algebra, probability, etc. What courses should I take in the duration of high school, with dual enrollment available, and what should I plan to take in college? I've also looked at my high school's options; should I take the offered Discrete Mathematics & Probability course after calculus, or even at all?
-
2$\begingroup$ I suggest you talk to some of the math and computer science faculty at whatever nearby college you plan on taking the courses beyond BC calculus. I'm sure they'd be very happy to talk to you. In fact, if you're in a rural area, they might only encounter someone this advanced (taking BC calculus as a 9th grader) every 5 or more years, so you'd definitely have their interest. $\endgroup$– Dave L RenfroJun 16, 2017 at 22:05
-
2$\begingroup$ "It seems to have been decided that undergraduate mathematics today rests on two foundations: calculus and linear algebra." -- John Stillwell. These are pretty fundamental, but for a computer science major, we have to throw in discrete mathematics as well! If you find yourself loving math as much as I did after some undergraduate mathematics, consider a Math & CS joint major. $\endgroup$– Mateen UlhaqJun 20, 2017 at 6:49
-
1$\begingroup$ You could kill two birds with one stone and read books like "Doing Math with Python" or "Scientific Computation: Python Hacking for Math Junkies" or "The Book of R: A First Course in Programming and Statistics." $\endgroup$– John ColemanAug 6, 2017 at 14:29
-
$\begingroup$ Possible duplicate: Beyond Calculus, an Invitation to Dream Higher for High School $\endgroup$– JasperDec 23, 2017 at 5:49
8 Answers
Take your time Andrew, don't worry so much about classes. Learn Python and solve your calculus problems with it. Learn R and solve your Stats problems with it. If you can do this by the end of your freshman year you've accomplished an incredible amount.
Next year, if you can take a discrete class that includes some basic work with matrices this would be ideal. Also, take all your other AP classes and beast them. Work to understand how you can solve problems in Psychology, Economics, Biology, Chemistry, History, and Literature using the computer in addition to your pencil. These are free college credits, no need for dual enrollment in classes that you don't know will transfer.
Breadth young brother.
Listen to a lot of music, absorb everything around you, have fun.
-
1$\begingroup$ Beasting the AP classes is a non-optional here. If he earns a C in his favorite local college's intro course in chem. bio etc. there is a much better chance that transfers than a mediocre AP score. At least that is how it goes in math, I have oodles of kids who earned a 3 in the AP calculus exam and are far from where they should be in algebra, trigometry and calculus. My department sets pretty high gateways for AP credit counting due to these common events... So, I tend to think, it's actually better to take real college classes if at all possible. $\endgroup$ Aug 7, 2017 at 23:39
-
1
This same question has arisen at my current institution even earlier (i.e., after AP Calculus AB). The traditional next course after the Calculus is Real Analysis (constructing the real numbers in one of the four ways - Dedekind cuts, infinite decimal expansions, rational sequences modulo Cauchy, or with the axiom of completeness: usually via one of the last two), which can be followed by a second course on Real Analysis (e.g., broaching Lebesgue Measure Theory for which I recommend the book of H.S. Bear as a friendly introduction) or a course in Complex Analysis. But our mathematics department has opted for a different route, which I think might be appropriate for someone interested in computer science, as well:
We teach a course on non-routine problem solving, which is roughly in the spirit of Putnam A1/B1 (approaching from below) geared towards students without experience in mathematics competitions. The topics covered include mathematical induction and the well-ordering principle, the pigeonhole principle, combinatorics (e.g., stars and bars), graph theory (e.g., Euler's polyhedral formula), and a healthy dose of problem posing, i.e., working towards student-generated problems.
Here are a couple of examples of problems we used early in the year:
There is no official textbook for the class, as I try to formulate the problems - or have the students do so - based on their interests. For example, a recent opinion piece in the NYTimes mentioned an older study that found Euler's identity, $e^{i \pi} + 1 = 0$, to be widely considered the "most beautiful equation" in mathematics. Even with Calc 1 knowledge, a few assumptions about power series (e.g., that they exist, that differentiation/integration work like you might hope) is enough to figure out how $e^{ix}$ can be written, and then this identity is not tough to derive in a class period.$^{\dagger}$
This answer is, in part, my advocating for other schools to consider such a route for students interested in mathematics as an alternative to more and more Calculus/Analysis. But for completeness with respect to the OP, here are two specific books that I would recommend if you are looking to put together an independent study of this nature (or for teachers who are considering creating a similar course).
Applied Combinatorics by Alan Tucker.
The Stanford Mathematics Problem Book by George Polya and Jeremy Kilpatrick.
$\dagger$ I wrote up a brief description of how one can derive Euler's Identity with a couple of assumptions:
-
2$\begingroup$ These are very nice problems though I'm not sure I understand C. But D is just so funny. $\endgroup$– DRFMay 12, 2017 at 15:08
-
1$\begingroup$ @DRF Thanks! Part C asks, e.g., can you partition a geometric square into, say, 6 squares? (They needn't be of the same size.) The answer is yes; but how? And can this partitioning be done into 7 squares? Why or why not? Etc. $\endgroup$ May 12, 2017 at 15:20
-
3$\begingroup$ These are great! The answer for D is mind-blowing until you work it algebraically starting from the general form $\frac{\sum_{i=1}^{k} \bigl((2i)^2-(2i-1)^2\bigr)}{\sum_{i=1}^{2k} i}$ and remember the story of young Gauss. I agree that C is ambiguously worded. $\endgroup$– shooverJun 15, 2017 at 18:36
-
1$\begingroup$ @shoover Thanks! It is a very fun class to teach. For C, I explain it further and work some examples along with the students. For D, I think it can (also) be effectively proved using a geometric representation... $\endgroup$ Jun 15, 2017 at 18:44
-
1$\begingroup$ @BenjaminDickman Would you mind if I post some of your questions on MSE? Also, would you happen to have more examples of such questions? $\endgroup$– OviJun 16, 2017 at 16:42
What you likely will not have experienced after Calculus and Statistics is: proofs. At most institutions, both Discrete Math and Linear Algebra introduce, and may even concentrate on, proofs. The same is true of Theory of Computation in computer science. Multivariate Calculus (sometimes called Calc III) often does not emphasize proofs.
So that can serve as a disideratum: Choose a course that exposes you to rigorous proofs.
That depends on what you're interested in. If you're thinking about biology or chemistry as a career, differential equations would be a good choice. If you're interest is in computer science then I would go with the discrete math option. For electrical engineering, you might think about a class in complex analysis. (Complex refers to complex numbers not the difficult of the class.) Other kinds of engineering like mechanical or aeronautic would benefit from a third semester of multi-variable calculus or vector analysis. If you're thinking about math as a major then you're probably going to have to take the multi-variable calculus course so that would be a good next choice unless you're getting a little tired of calculus in which case any of the other options would be good.
As a number theorist I am biased, but I think a conjecture-proof study of elementary number theory could be a good place to start.
Many summer programs for mathematically-inclined high school students (e.g., the Ross Program, the Hampshire College Summer Studies in Math, PROMYS) focus on number theory and these have a long track record of producing mathematicians who go into academia.
Doing number theory in this way combines many aspects of the other responses: (1) interesting problems with little technical background, (2) development of programming skills as you formulate and verify conjectures, (3) development of proof-writing and (4) applications (cryptography, mostly). Books such as
https://www.maa.org/press/ebooks/number-theory-through-inquiry
and
http://bcs.wiley.com/he-bcs/Books?action=index&itemId=0470412151&bcsId=4878
might be good places to start.
-
$\begingroup$ Did you attend any of those summer programs? Ross and PROMYS focus on proof-writing and testing conjectures by examples, but there is no systematic focus on programming skills or cryptography as an application so I wonder where you got those ideas from. $\endgroup$– KCdAug 7, 2017 at 9:41
-
$\begingroup$ @KCd I edited for clarity. I wasn't suggesting that the programs did number theory in the way I described, just that they often seem to do number theory. $\endgroup$– ncrAug 7, 2017 at 21:58
I think you should focus on learning practical and interesting skills that will help you to get a coding job. For example, how about learning how to code in C#, Java or even Javascript?
Coding is a practical and real world skill. It's not a specialty reserved for research scientists anymore.
I suggest you begin by focusing on real world situations before jumping into specialized academic approaches that hardly anyone uses.
Also, complex math just isn't used much in real world coding situations.
There are a few specialized companies that do scientific types of coding where it's useful.
But even there, we have pre-built libraries for handling all of that stuff.
A few nights (or so) of study is all you'll need to make use of specialized tools like that.
I strongly suggest you avoid an impractical and academic approach to learning to code.
That approach will not lead to a job, and isn't useful for most of the coding that you will need and want to do.
-
2$\begingroup$ I have experience in many languages, primarily JavaScript (see my SO profile). I've gotten some real world experience doing internships, etc. but I want to know primarily the academic route to take. I want to know more about theory since I've got some real world experience in, theory that'll supplement a career. $\endgroup$ Aug 5, 2017 at 22:11
Also consider linear algebra. Given your interests one emphasizing matrix manipulation rather than theory is preferable, for now at least.
P.s. In general, when accelerating in high school try to take courses that are mainstream in both topic (used in many majors) and treatment (how commonly taught) as that keeps your options most open. Also consider time efficiency.
Take calc 3 (multivariable) and calc 4 (ODEs). This is standard and will work with almost all things you want to go into.
Real analysis (theoretical calc) is only useful if you go into math. Even theoretical physicists don't need it.
-
1$\begingroup$ I don't think this is true. For example, economists of a certain kind use all sorts of real analysis in the statements of theorems and heuristics. For example, mathematical biologists of a certain kind prove theorems about dynamic systems using methods and ideas of real analysis. $\endgroup$– ncrAug 6, 2017 at 14:34
-
$\begingroup$ Typical "find a single counterexample". Great process for rigorous proof. Lousy, lousy process for multifactorial life situations based on a preponderance of effects and outcomes. [And contains the typical mathy confusion of basis versus application.] I can DEFUHNITELY point you to multiple threads in physics forum and college confidential with even THEORETICAL Ph.D. physicists saying the only use of real analysis was in the real analysis classroom. Get out and check it out... $\endgroup$– guestJan 12, 2018 at 1:56