Computer-science: Math prerequisites

Created on 14 Nov 2017  Â·  11Comments  Â·  Source: ossu/computer-science

This is a continuation of the discussion from pull request #430, where ASU Precalculus was recommended as a possible candidate for including in the Prerequisites section of the curriculum, where we would list a few recommended resources for getting refreshed / up to speed on topics students are expected to know already.

The concern that I expressed, and will again here, is that we don't want to go overboard in the prerequisites section by listing every possible thing a student needs to know. But there is clearly still some demand for some recommended prerequisites courses, so maybe we can draw the line at (1) subjects that aren't universally taught to all English-speaking high school students, as well as including (2) any subjects that are likely to need a serious refresher by those who have been out of high school for a while.

For example, I assume all high schoolers everywhere have to learn algebra, but it seems not all of them take pre-calculus. Or perhaps they do, but at the very least, pre-calculus is complex enough that those who graduated high school a long time ago might benefit from refreshing their memory of the subject. So I would consider pre-calculus valid for inclusion, but not algebra or geometry.

So if we are agreed on adding precalculus to the Prerequisites section, I want to clarify something: is ASU Precalculus largely sufficient on its own? It seems from the description that there is no instructor, just some sort of AI that figures out what to teach you. @Nixerrr @shailalias @spelga

enhancement

Most helpful comment

I'm thinking about OSSU CS v9 and here are my thoughts on how we could structure the curriculum to support math prerequisites.

As I've said, I don't want to have to enumerate all the different pre-requisites a student has to have, but I'm willing to make specific recommendations for mathematics (as far back as Algebra) because of how central it is to computer science. Some of them might end up just being Khan Academy or a similar resource, but I'm fine with that since we could then create a piece of the curriculum separate from the CS curriculum dedicated just to building a student's math foundations. Students could skip whatever they already know.

Here's just a rough sketch of how it could be structured.

Mathematical foundations

This would come before "Intro CS".

High school math

  • Algebra 1
  • Algebra 2
  • Geometry
  • Trigonometry
  • Statistics
  • Precalculus

College math

All 11 comments

No, I'm afraid the ASU course is not self-contained enough to be the right candidate. The ASU course is an amazing tool but it's just that. It's all about learning how to do exercises without learning much about the underlying principles. It encourages memorizing formulas without showing the proofs for them. I, for instance, had to complement my learning with the Khan Academy Precalculus course in order to fully grasp some of the more complex ideas.

I feel it is sufficient, but I can see where @Nixerrr 's complaints come from. I'm using it as a refresher, so I'm not sure how it would be for someone completely new to the concepts. I've found the various examples plenty sufficient. The course's strength is in the method and amount of practice it includes, which focuses especially on spaced repetition. There are many websites that host videos showing the same concepts, but few sources have the level of practice available that ASU does.

I came across this project in doing my own research on math prerequisites required to bridge the gap to higher level maths. It's quite frustrating self-learning math when you pick up one book which seems too basic, and another book in the "next-tier" which seems too advanced. Different authors tend to have severely differing viewpoints regarding how the figurative math trees fit into the math forest. And every book/resource makes it's own assumption on the audience having a definite understanding of certain notation and terminology. I.e. opening a math book only to find out the writers assume you know the meaning and usage of some arcane symbol or greek letter.

My suggestion is this: rather than compiling a specific list of courses on precalculus (requiring its own list of prerequisite material, where do we draw the line?), compile a list of key concepts, terminology, and definitions which must be thoroughly understood before progressing. Perhaps have some means of conducting a pre-test and using the results to highlight weaknesses which should be strengthened before moving on.

For example, before moving on to precalculus, should the student have a thorough understanding of lines, points, and functions as well as how they are analyzed/manipulated on the cartesian plane? How deeply should they grasp algebraic manipulation of equations? This stuff may not be obvious to someone outside of your typical academia.

With math, in my opinion, and even more-so than computer science, this approach is crucial. A programmer can make it far in the field without ever formally learning algorithms. A programmer can be very successful taking a top-down approach, albeit lacking an understanding of the fundamentals or lower level structures with which they work. A mathematician on the other hand, cannot dive straight into calculus. As mathematics is the language -- the glue -- that ties literally every other scientific field together: physics, engineering, computer science, chemistry, etc, it's full understanding should be stressed.

Khan academy, google it, bookmark it, done!

My suggestion is this: rather than compiling a specific list of courses on precalculus (requiring its own list of prerequisite material, where do we draw the line?), compile a list of key concepts, terminology, and definitions which must be thoroughly understood before progressing. Perhaps have some means of conducting a pre-test and using the results to highlight weaknesses which should be strengthened before moving on.

I really want something like this, but two things are needed:

  • The experts (including advice from educators) to help with designing such a specific, in-depth curriculum
  • The technology to support such an interactive experience

Work on these goals has been very sporadic so far, but it's one of my New Years' resolutions to facilitate some major progress and community discussion :)

As mathematics is the language -- the glue -- that ties literally every other scientific field together: physics, engineering, computer science, chemistry, etc, it's full understanding should be stressed.

You're right, and I really want to improve our curriculum's mathematical rigor. The short-term challenge is finding the right materials to support this. Our requirements (free to access online, fits into curriculum progression, etc.) are tough to meet.

I think Sheldon Axler's (author of linear algebra done right) "Precalculus" is the perfect book to bridge the gap between algebra and geometry before taking an introductory course. It is hard but in a good way. I find that most precalculus resources on the internet are geared towards high schoolers who want to learn some precalc for school or before enrolling in an AP class. This one however is different: the author explains the intuition behind every formula, prepares the student to succeed in calculus, and builds up core concepts gradually. The book gives a feel for real mathematics in a way that most precalculus books and resources on the internet do not. Check it out here: https://www3.nd.edu/~apacurar/docs/teaching/common/axler.pdf I think this is an older edition.

Khan academy, google it, bookmark it, done!

Why are people down-voting this?

I'm thinking about OSSU CS v9 and here are my thoughts on how we could structure the curriculum to support math prerequisites.

As I've said, I don't want to have to enumerate all the different pre-requisites a student has to have, but I'm willing to make specific recommendations for mathematics (as far back as Algebra) because of how central it is to computer science. Some of them might end up just being Khan Academy or a similar resource, but I'm fine with that since we could then create a piece of the curriculum separate from the CS curriculum dedicated just to building a student's math foundations. Students could skip whatever they already know.

Here's just a rough sketch of how it could be structured.

Mathematical foundations

This would come before "Intro CS".

High school math

  • Algebra 1
  • Algebra 2
  • Geometry
  • Trigonometry
  • Statistics
  • Precalculus

College math

My thoughts:

  • While OSSU provides the best online community for learning CS, there's another community that stands out for math: reddit.com/r/learnmath . It's an active community that recommends resources addressing particular topics. (Community members also answer student questions)

  • Regarding developing a list of concepts that one should know before progressing, that's exactly what the common core does. You can explore the coherence map for K-8 standards here: https://achievethecore.org/coherence-map/ and a coherence map for high school here: https://www.unbounded.org/other/8610 You can match the codes to learning standards here: http://www.corestandards.org/Math/ (Or just google them)

  • One site that assesses understanding of individual concepts and then teaches follow-on concepts is Khan Academy. I'm surprised to see so many downvotes around Khan Academy. It was invaluable to me as a learner. It's not perfect, but I would have been much worse off if the site hadn't existed. r/learnmath has stickied a list of learning resources at the top of their page and the first resource is Khan Academy. If I were writing a similar list of resources, Khan Academy would similarly be at the top of my list.

  • I don't think we need to recommend separate high school algebra and college algebra. If students have learned all the concepts expected in high school algebra, they will be prepared for pre-cal. Similarly, I don't think we need separate HS and college precal. (I'm happy for someone to point out material covered in the college courses that's not in the HS curriculum.)

  • I think there's great value in starting the curriculum with CS, not math. I don't think we should list a dozen math classes before Intro CS. Perhaps have a separate math pre-reqs page?

  • Linear algebra is core. Essence of Linear Algebra should not be separated from Foundations to Frontiers.

  • I can see an argument for removing calculus from Core Math and putting it in pre-reqs. A) CS math is about discrete math, calculus is about continuous math. B) For most OSSU CS students, they will study calculus primarily because it is a pre-req of Math for Computer Science. Even so, I'd keep the calc courses in Core Math. 1) They are college level courses, which differentiates them from the other pre-reqs. 2) We went through a discernment process to decide those were the correct courses to recommend.

I think that we can support student needs by:

1) Letting them know they need a robust understanding of all HS math (algebra, geometry, trig, precal, HS stats and probability)

2) Directing them to r/learnmath (specifically this page) for recommendations of resources.

@waciumawanjohi Thanks for your feedback!

Looking at the resources page on /r/learnmath, the issue I see with it (for purposes of this discussion) is that it isn't a guide. It's a reference — a valuable reference, for sure — but OSSU's goal is to guide people to the right resource at the right time.

To be clear, I'm perfectly happy to refer people to /r/learnmath for getting support on math issues. But I do think we need some middle ground where we recommend specific resources. And I agree that Khan Academy appears to be the best and most thorough resource for nailing down these prerequisites.

I anticipated resistance to the idea of putting a lot of math courses before computer science. Here's my thinking: I don't think anyone is actually going through OSSU CS in exactly the order we prescribe, top to bottom. Everyone jumps around a bit, getting what they need when they need it.

If we want a clean CS-focused curriculum, we can embrace this non-linearity by having a separate top-level section just called "Foundations" that houses all non-CS prerequisites, with clear indications about when to take each course (or whether to take it at all). So the curriculum would still start with basic CS and programming, but then when students reach Discrete Math, they'll have to go to Foundations if they haven't studied calculus previously.

Likewise, we could pull all those physics courses out of Advanced Systems and just have a link in the prerequisites to Foundations#Physics. So "Foundations" wouldn't mean "do all this before CS", it would mean "get these specific foundations for specific courses, when you need them". But this brings us off-topic from "Math prerequisites" so I'll make a new issue about this when I have time.

On reflection I agree that "Essence of linear algebra" should stay in Core Math. If it were a full-blown course on linear algebra I might feel otherwise, but we're using it more as a critical attachment to LAFF. LAFF is very computation-focused and any math course with a heavy computation/programming component definitely belongs in the CS sections.

I don't think we need to recommend separate high school algebra and college algebra. If students have learned all the concepts expected in high school algebra, they will be prepared for pre-cal. Similarly, I don't think we need separate HS and college precal. (I'm happy for someone to point out material covered in the college courses that's not in the HS curriculum.)

I had based that separation on comments made at the top of this thread, about ASU Precalculus being excellent but not self-contained enough to actually be a course on precalculus. I think ASU College Algebra and ASU Precalculus are more about just getting more practice than students might have gotten in Khan Academy. So I think it's worth recommending them as supplements to the high school courses for anyone who doesn't feel confident starting MIT Calculus 1.

Closing this issue as there have been no new comments in 14 months.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lixsee picture lixsee  Â·  3Comments

sunn-e picture sunn-e  Â·  3Comments

lulucca12 picture lulucca12  Â·  5Comments

ahmdaeyz picture ahmdaeyz  Â·  3Comments

vapeurs picture vapeurs  Â·  4Comments