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

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