Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This comes at a very opportune time in my life. when, my ward enters their HS -Junior year and they are taking SVC. Question to the Author(in case they are monitoring this thread), is it appropriate for a High-schooler with just an intro to Python?


IMHO a HS student learning Calculus should first learn the subject with pen and paper for a while before programming. It is important to work through the problems and think about the fundamental concepts involved, rather than thinking about the syntax involved in coding their solutions. Practising with pen and paper helps to internalize the subject matter better.


That is something behind the premise of:

_Make: Calculus: Build models to learn, visualize, and explore_ by Joan Horvath, Rich Cameron

https://www.goodreads.com/book/show/61739368-make

It's a series with matching books for:

Geometry: https://www.goodreads.com/book/show/58059196-make

Trigonometry: https://www.goodreads.com/book/show/123127774-make


Makes perfect sense. And the parents suggestions for books is what I needed. Fun summer project. Learn svc and Mvc together with my Rising junior. What can go wrong.


I'm going to say a strong no to that. The programming parts are fine, but on a quick skim, the mathematics is written in a way they will likely find very confusing unless they already know calculus and leave them thinking they are bad at maths whereas actually the author is just not really trying to explain the maths to someone who doesn't already know it.

For example look at the diagram on[1]. It has unlabled axes of a shaded L-shaped box with a curve going through it and then it is followed by a bunch of equations where he derives the formula for integration by parts using a set of parametric equations with multiple substitutions etc. I know what integration by parts is and how it works really well. This is possibly the most confusing way you could possibly derive the formula and/or explain it, and this diagram really adds absolutely nothing unless you already know and understand the concept. If you have seen the exceptional diagrams and illustrations and clarity of explanation in a book like "Calculus" by James Stewart the contrast is so stark it really jumps out.

The normal way of explaining integration by parts starts the way the author does (with the product rule for derivitives) and shows a few examples of taking the derivitive of things using the product rule so you get an intuition for what the form of the resulting antiderivitive looks like. You then go through the derivation of the formula for integration by parts by using the product rule for derivitives, integrating both sides and splitting the resulting integral[2]. Its very clear and easy to follow. And if they want to actually help the student to do this they teach something like the tabular/"DI" method so the student isn't tearing their hair out getting the signs mixed up when integrating by parts multiple times.

[1] https://jverzani.github.io/CalculusWithJuliaNotes.jl/integra...

[2] My own notes on this derivation which I took when learning this are here. Note that this isn't me really trying to explain it to a beginner - it's just my personal notes but it's still a lot easier to follow than the example given https://publish.obsidian.md/uncarved/3+Resources/Public/Inte...


Wow! My secret plan is also to grok the math behind the Transformer while helping my HSchooler out. And I think your resource is super good.


That's awesome. Very happy you found it useful. Bear in mind of course that while I do try to get it right, there will be errors etc. If you find it helpful there is a lot more to come - I have a bunch more notes that I need to edit and make new diagrams for but I should be publishing soonish, and then I am learning all the time. Please let me know if there's anything that you found confusing/hard to understand[1] or if you see any errors.

[1] because that indicates I don't understand it well enough myself and I need to work on it more and then fix the note.


Hi sean, we have the same end-goal possibly.


That's awesome. Hope your studies are going well and you achieve what you are hoping for. I'm finding it fantastic so far I have to say. Super-interesting and always more to discover.


Definitely, good luck!


I self taught myself calculus at that age (11th grade), obviously had a hard time at first, and persevered by sampling a good half dozen different books till I found one that would make things click. These are my credentials for making the following recommendation:

Get the book Quick Calculus by Kleppner and Ramsey. Nothing else I used came close, for developing intuition about the concepts when they're fresh and new.

Once they have mastered that, any good book will do. James Stewart's is fantastic but so big and thick you may need to use it as a resource to intelligently select appropriate readings and problems from as they go, rather than just start at page 1 and assign every problem. But the main thing is to really get the basics of what a derivative and integral and limit are from the getgo, and nothing I tried compare to Quick Calculus for that.

Using this Julia book or some other similar book to select exercises based on your appropriate judgment from it to supplement Stewart would also be very cool if your student has an interest in programming. Let them complete then in python if they like, python should be fine. I recall implementing a numerical integrator and a symbolic differentiator in python at the same age, as a way of consolidating my knowledge of calculus, and found both to be very valuable and fun exercises. Symbolic differentiation seemed like magic especially, but it was just a matter of parsing and then continually adding rules for each rule I learned in math.


Thanks for taking time to answer. This is why I keep coming back to HN. For concrete recommendations based on one’s own experience. Ordered an used Quick calculus.


I disagree with sibling comment. No prior exposure to Julia or even programming is required for this course.


Perhaps one thing to say which may be useful, is that ‘calculus’ can mean a lot of different things, and the meaning can vary between courses as well as between schools and countries. When I was in high school, we did calculus in the last two years, and it was similar to the earlier years: you learned a bunch of algorithms for manipulating symbols, some of which required a bit of intuition for some step (make some substitution, for example), and you learned a few facts (about slopes and areas) to be able to solve word problems. The first thing we learned was a part of the differentiation algorithm: the derivative of x^n (where n is constant) is n x^(n-1). At university, we called the course analysis, though I believe other places may have called the same thing calculus, and it was about defining various concepts and proving properties about them. We may have derived the above rule in class (I don’t remember) but I think anyone would have been able to derive it from the definitions and proven properties. Such courses typically follow a tripartite structure: firstly sequences, series, and their convergence to limits; secondly continuity of functions and limits of functions; thirdly differentiation and integration (and maybe some version of Taylor’s theorem). This course structure hasn’t changed that much since Cauchy introduced a lot of the ‘modern’ definitions in a textbook (obvious exceptions are integration – known as ‘Riemann integration’).

I don’t know what sort of course this one is. It starts with limits so maybe more the latter kind, but I don’t really see how Julia would be very useful there. My best guess about the suitability of the course is that it may assume mathematical maturity that you may not have, rather than anything about programming. Mathematical maturity tends to mean being able to cope with precise definitions and abstract concepts without deducing a load of wrong things, as well as being able to follow the kind of argument that is a mathematical proof.


In North America, traditionally Calculus is where you learn how to use the techniques to solve problems, and analysis is where you actually learn how to prove that it all is true.

But I have to correct you on the history. Essentially none of the material in a modern analysis course is the same as in Cauchy's day. You identify integration as coming after. But Cauchy didn't have a definition of a limit, axioms for the real numbers, a construction of the real numbers, set theory, the modern idea of open and closed sets, and so on and so forth.


Ah thanks. My understanding was the whole epsilon-delta stuff one typically learns in a first course in analysis was due to Cauchy.


No, epsilon-delta in the modern form was invented by Karl Weierstrass in 1861.

Cauchy's approach was to define an infinitesmal as a sequence approaching 0, and then to use the old infinitesmal definition of a derivative. This almost works. One of the places where it falls apart is defining the chain rule when the inner derivative is 0, because the sequence may wind up with 0/0 infinitely often.

But it is from this definition that we get Cauchy sequences today.


As a post-Calculus introduction to Julia and other similar mathematical computing languages, this doesn't seem like a bad thing to do. Understanding how to use one of these at a high level is pretty useful, and any time I have to do real math for work, Mathematica makes things a lot easier. R and Matlab are also big in the space, but iPython notebooks with SymPy might also work (although SymPy is comparatively underpowered in comparison).


Stick with Python. Try SymPy.


I imagine a language with decent support for macros would be much much more ergonomic for symbolic computation. Even ignoring all the other pros & cons, just this one reason would push one strongly towards Julia, Lisp(s), Mathematica, etc for symbolic computation.


Sympy is a poor tool to learn because it simply doesn’t scale to problems one most often encounters, even in schooling. Frankly, CAS are so general and unintelligent that problems with well known and elegant closed-form solutions, when presented to a system like sympy, result in an output which is often not even human readable - thousands of algebraic terms for instance to describe the equations of motion for a simple double pendulum.

Personally I have found that the best tools are 1) a firm grasp of elementary calculus (differential, series, and integral) and 2) exposure to simple numerical methods that apply to a broad range of problems.

Armed with this knowledge, in my opinion, Julia is a far superior language to python and its package ecosystem has a brighter future. Indeed, the language has been built with a focus on mathematical modeling and efficient numerical computation. It is a more natural starting point for those with an interest in mathematical modeling and engineering science, and will serve anyone who learns it better than python+numpy+sympy+scipy.


As someone who's used Python but not Julia - when you say package ecosystem has a brighter future, does that include not needing several versions of Julia installed on my PC?

That might sell me alone.


And learn C and C++ in the process, because they will need them for "Python" libraries.


Great. Thanks. Any suggestions for a book or course that uses sympy to teach calculus( svc)?





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: