Is the Java based CS AP the best route for the mathematically inclined?

<p>Suppose getting the AP credit were not the issue, and you are interested in being a math major in college. Is the Java based CS AP the best way to start, or is there some other language that would be preferable? Or is it irrelevant because mathematicians use packages like Mathematica or Sage, anyway?</p>

<p>Your degree will probably require at least one programming course. Languages don’t matter right now, but a good grounding in programming will be useful. The AP curriculum offers structure lacking in most self-study attempts, so from that perspective it might be a good idea.</p>

<p>There’s a difference between being a math major and a mathematician, also.</p>

<p>Since APCS is a Java-based course, that seems to be your only option. Unless your school offers other, non-AP, programming courses, that is. Self-studying any multitude of coding languages is possible, just search for it around the web. A few that come to mind are Stanford’s online lectures, which offer what is, essentially, the APCS equivalent (CS106a) and iPhone programming courses (though that may be more for the programmer than math major). MIT also offers similar courses, as do education start-ups on the net like Coursera and KhanAcademy. There are also innovative sites that teach HTML. Point is - you have an innumerable amount of resources at your disposal, so taking APCS is not necessary in the least. </p>

<p>In terms of the most preferable language, Java is great for learning to program with absolutely no prior experience. Others may say perhaps C or Python are better for getting your feet wet, but in my experience, Java is a suitable stepping stone. And learning to program is not irrelevant, because it requires one to many of the same mental tools that a mathematician uses, and you should take it to become a better mathematician, if anything. Think of it like cross-training, but far more applicable.</p>

<p>I disagree with the answers given. If you are interested in a very mathematical background, you should self-study a programming language such as Haskell, Lisp, or Scheme. Lisp itself was created based off of Alonzo Church’s lambda calculus - essentially, you can write an entire program via the notion of mathematical functions (although that’s quite a simplification of what lambda calculus actually is). Scheme and Haskell are similar languages to Lisp. Haskell is especially mind-bending.</p>

<p>These languages (or rather, this programming paradigm) is important to know because you need to seriously think about every line of code you write. When writing in an object-oriented language such as Java, it’s very easy to go down the wrong path by writing code without thinking. You simply cannot do this in Haskell, Lisp, or Scheme.</p>

<p>A great and intuitive Haskell tutorial is available at [Learn</a> you a Haskell](<a href=“http://learnyouahaskell.com%22%5DLearn”>http://learnyouahaskell.com). You can also check out [Real</a> World Haskell](<a href=“http://book.realworldhaskell.org/read/"]Real”>Real World Haskell), although it’s a bit less friendly than Learn you a Haskell.</p>

<p>Alternatively, feel free to check out the [CIS</a> 120](<a href=“http://www.seas.upenn.edu/~cis120/index.shtml"]CIS”>CIS120) lecture notes and homework assignments from the University of Pennsylvania. They use OCaml, a language similar to Haskell, for the first half of their course. Note that the course does assume a bit of background knowledge of programming in general.</p>

<p>I disagree strongly with APCS being taught in Java because it has a very steep learning curve for the first-time programmer compared to language such as Python or Ruby. The syntax is clunky, and there are a huge number of things taken for granted in the APCS curriculum. I wouldn’t be surprised if the College Board is considering changing over to Python - a lot of introductory college programming courses are doing so.</p>

<p>

</p>

<p>You should contact the college and the math department and ask that question. Math professors often have a diverse selection of math software, each with their own scripting languages.</p>

<p>

</p>

<p>The language war has become such an issue that a new APCS exam is coming out called [AP</a> Computer Science: Principles](<a href=“College Board - SAT, AP, College Search and Admission Tools”>http://www.collegeboard.com/html/computerscience/index.html)</p>

<p>I’m actually a bit worried about the class being too soft. My university piloted the college version of Principles, and it seemed far too simple. Perhaps I’m biased, but I think the right way to go is to revamp the APCS:A exam, not create a Principles exam.</p>

<p>APCS:Principles is intended to be a completely different kind of course than APCS:A. There’s a role for both.</p>

<p>Most people who take APCS:A do so because they’re interested in pursuing computing in college. Compare that with other exams like APUSH, where students take it mostly to get out of taking history courses in college, not because they want to become history majors.</p>

<p>APCS:P will be a lot more like APUSH than APCS:A. That’s ok. There’s a role for both, and that’s why both courses will be offered (eventually).</p>

<p>AP Computer science isn’t really mathy but its good for sharpening your problem solving skills</p>

<p>Does anyone hear know about the Computer Programming 1 course being offered by the Florida Virtual School? It has Python and Java and is supposed to be an excellent stepping stone to the AP CS but I don’t know anyone who has taken it. My daughter’s high school doesn’t formally offer AP CS but rather the Microsoft Business Programming modules which “Introduces students to computer programming. Using robotics, course will reinforce problem solving skills using logic flow, iteration, and algorithm development and testing. Students will transition to using Visual
Basic programming language to develop Windows applications and learn Microsoft’s .NET development environment”</p>

<p>The second course in this sequence can be AP CS where the teacher will cover JAVA if the student wants to take the AP exam but most students don’t and just stay with the Microsoft .NET and transition to C sharp.</p>

<p>Daughter wants to take JAVA and sit for the AP exam because she wants to learn JAVA and would like to have another AP on her record. The local Air Force Base has summer internships and they do hire programmers the summer before a student’s senior year and have been known to hire students who know Python/JAVA. I am concerned about her taking the class through a virtual school.</p>

<p>Opinions greatly appreciated!</p>

<p>latichever: First off it would really depend on how deeply you are interested in CS. If you are not very interested in CS but computational math instead you should stick to learning mathematica and matlab. Not spend to much time on the programming but instead spend more time getting further in a specific field of math. If you are inclinded to do some CS Java is a great start. You will understand OOP decently well afterwards and Java is a very marketable language to know. Not to mention if you like CS after taking it CS and math mix very well. Many CS fields are also applied mathematics fields. </p>

<p>saismom: I looked in the Computer Programming 1 course. It looks pretty good and should definitely get you prepared to take AP CS class. I would also recommend you look into [Computer</a> Science | Video Courses on Academic Earth](<a href=“http://www.academicearth.org/subjects/computerscience]Computer”>http://www.academicearth.org/subjects/computerscience) and [Free</a> Video Lectures, Online Courses and tutorials from top colleges, universities](<a href=“http://freevideolectures.com/]Free”>http://freevideolectures.com/) I followed classes on here throughout high school and I was able to exception test out of multiple CS classes in college. I like to idea of a formal course though because then you have someone driving you to do the work. As for the high school business programming class i guess it is better than nothing. If you need any other advice about learning CS or good references for Java or advice about CS in college feel free to message me or email me at my username at gmail.</p>

<p>@ seamazing- thanks so much! I will tell my daughter. We already stumbled upon the Stanford CS lectures and the newboston.com videos. it is amazing how much is out there at no cost. BTW: daughter just attended the STEM program at USNA in Annapolis and really enjoyed. Since my earlier posting she did go ahead and start the CS Programming 1 through Florida Virtual and is in a 28 day grace period. They start with Python and after the first module, they receive a little “Scribbler” robot. She seems interested! She will skip the business programming at the school but is taking Cisco networking and will be on the Cyber patriots team this year so it should keep her busy and give her a good idea of whether or not she wants to major in CS in college.</p>