Code Monkey home page Code Monkey logo

Comments (37)

bradleygrant avatar bradleygrant commented on May 28, 2024 9

For all of the many reams and reams of writing that have been posted here, I very simply don't actually understand what you want to happen.

Math prerequisites are already out of OSSU's defined scope. We can't move them anywhere because they're not part of the curriculum.

We simply assume students have sufficient mathematical knowledge before they start. But we also have no enforcement arm for this. So if a student would like to participate in OSSU courses absent a mathematical background, and they can manage, then there is already nothing to stop them. We have nothing like an admission requirement (even though the universities whose courses we use absolutely do.)

As far as I can tell, your base proposal is already naturally supported by OSSU. If that's the case, then there's already nothing to change.

If you feel that's not the case, then I really, really, really, really need you to boil it down to five sentences or less. You're using a lot of words and it's getting In the way of your ability to convey meaning.

from computer-science.

mfloob avatar mfloob commented on May 28, 2024 6

Haskell (deprecated) and Prolog (extremely outdated) both have courses under Advanced Programming, so I would take anything you see in this repository with a grain of salt. Don't take it too seriously or spend too much time debating because they'll obviously just throw anything in here without thinking whether someone learning CS in 2024 should learn it.

from computer-science.

cachandlerdev avatar cachandlerdev commented on May 28, 2024 4

If somebody wants to send a rocket to the moon without knowing how Newtonian mechanics works, nothing's stopping him from buying the parts. However, that doesn't mean that the people on the "DIY Rocket Guide" website shouldn't warn him that he's probably wasting his time if he has no clue what he's doing.

You clearly seem to be quite passionate about this topic, but for the life of me, I cannot fathom why. If somebody doesn't have a high school level knowledge of basic mathematical concepts, the chances of him (1) understanding MIT level material on computer science topics---because that's what a number of these OSSU courses are, and their difficulty is no joke even for people with the appropriate educational backgrounds---(2) sticking with the curriculum for several years in spite of his inability to understand what a logarithm or a square root is, and (3) making up for his deficiencies in order to obtain a similar level of mathematical expertise as an undergraduate from one of these schools at the end of the whole process...is very slim, to put it generously.

Look, you can leave all of the citations you want about faults in the traditional educational model, and say "it's time to completely revolutionize the way we think about things," but I'm just pointing out that you're wasting your time. The folks at OSSU are just providing a roadmap of freely available online CS courses from well known universities. It's an exceptional roadmap that can certainly help guide people---I know that I for one have greatly benefited from the provided learning resources---but that's it. They're not here to write papers about the failure of traditional education.

If you really want to help those people without a middle school competency in elementary mathematics, start by letting OSSU about various freely available courses online for learning those topics. That way, you'll at least get somewhere. Arguing that people should learn graph theory before they know what fractions are isn't going to help those people at all.

from computer-science.

bradleygrant avatar bradleygrant commented on May 28, 2024 4

Recommend against.

from computer-science.

pulkitkrishna00 avatar pulkitkrishna00 commented on May 28, 2024 3

Why does OSSU mention prerequisite math for MIT 6.00.1x?

Because we think the course requires it. We have seen people who had not completed prerequisite math struggle in this course.

But I have completed the course without prerequisite math?

Good for you. But the majority of people don't. Just saying that math is not required won't be a good thing to do.

Why doesn't OSSU replace the course with something that does not require math?

That can happen. But OSSU emulates a typical CS degree. While MIT is not typical, high school math is required almost everywhere you can get a CS degree. So, it makes sense for OSSU to require high school math.


I think you are missing an important aspect of OSSU: OSSU emulates a typical CS degree. A typical CS degree requires high school knowledge.

OSSU does not do research on what methodology of teaching is better and what concepts should be taught. OSSU just follows the CS 2013 Curriculum Guidelines.

from computer-science.

etherealcomity avatar etherealcomity commented on May 28, 2024 3

the website that my link refer to - is not a website that is intended exclusively for MIT students

The website is a collection of archived MIT courses. The fact that it is accessible to everyone does not belies the fact that the prime target for those are MIT students. The website's purpose is to make those courses--courses specifically designed for MIT students--available to the public.

I challenge anyone to cite any Mathematical concepts introduced or used at 6.0001 other than the two I claimed they exist above, which are the cubic root, and the guess and check method; none of which require High School Math or Algebra.

MITx 6.00.1x has:

  • exponentials (from the lecture on converting binary to decimal and vice versa, and Big O)
  • polynomials (Newton-Raphson and Big O)
  • sequences (Towers of Hanoi, Fibonacci)
  • logarithms (Big O, binary search, merge sort)
  • functions (orders of growth)
  • inequalities (guess and check, comparing Big O)
  • calculus (Newton-Raphson): this stuck out to me because this seems to imply that people who take this course would take this alongside calculus classes

I think an important note that needs to be said is that me, @pulkitkrishna00, and the others on Discord have taken this class, and we all in unison think that high school math is very much needed. We, in fact, did not gather around and talk about the prerequisites. We all individually determined that by ourselves. Your experience may be different, but that does not change the fact that the majority of us who have taken the course think that the prerequisites are needed.

The archived version recommended by OSSU doesn't require any prerequisite.

The archived version of OSSU basically has the same materials and problem sets. They are the same thing. The one I linked to you is the landing page for the course. The archived version just links to the course itself.

Professor John Guttag is the author of the book that is used in the course.

If there is a prerequisite needed for the introductory material, he would write about it. He did when it was required in advanced topics.

Why the same material presented in different medium would require different prerequisite? I Don't know.

Also a reminder that the book is a required textbook for MIT students. In fact, the majority of the people who would buy the textbook would be MIT students. (Many people who have taken the edX version don't really read the textbook).

In short, to put High School math where it belong, in the Core Mathematics.

OSSU follows the 2013 curricular guidelines. High school math is not Core Mathematics. In fact, Calculus is supposed to be prerequisite math instead of core math. OSSU is already generous enough to include Calculus to the Core Math section.

from computer-science.

Cecover avatar Cecover commented on May 28, 2024 3

As a person who legitimately do this kinds of things, I prefer to have students know the pre-requisite mathematics first before they even do OSSU. The whole CS AS a major and research topic is heavily backed by mathematics, and we all know for sure that nobody here is going to work only as a front-end/web-dev.

But first, we need to make sure that we are doing this correctly. CS, again, is a huge spectrum.

I personally believe that if you wanted to be a web developer for something, you don't need any mathematics to begin with (unless you're doing some complex stuff). However, once you go into the backend stuff with queuing systems, machine learning, and shit, even scientific compute, you need maths and having them memorized into your brain BEFORE you even take the class is even more important.

Moving the mathematics to the 'later' stages in the name of 'accessibility' is much more hurtful to the student as they need to learn the same thing TWICE, one presented in code, and one presented in actual math/how it works/why it works. Doing the same thing twice would create un-necessary load on the student and would create nothing but dissatisfaction. Coding the thing is easy, but trying to understand WHY it works and HOW it works is hard, way harder.

How do I know? Because I have been there, so I know what to do if I were to create a new curriculum.

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024 3
  • In fact Acm Computing Curricula Task Force (2013) answered this question clearly by saying that "Lengthy series of mathematics classes needed as pre-requisites for coursework in CS will make it more difficult for students to find CS accessible, to switch into a CS major at a later point in their college careers, and/or to take CS-specific coursework early in their studies, which may discourage students from the field" (pp. 50-51). They encourage making CS accessible, and not to discourage students.

Again, this statement from ACM is about mandatory courses in CS curricula, not about high school math. No college includes high school math as mandatory coursework. They just assume that students know prerequisite math (or take remedial classes). OSSU does the same.

The mandatory courses in CS either they are Mathematics courses, or, CS courses. So, what is the mandatory Mathematics courses in CS according to ACM?

  • Mathematics for Computer Science (i.e. Discrete Math).
    • " CS2013 only specifies mathematical requirements that we believe are directly relevant for the large majority of all CS undergraduates (for example, elements of set theory, logic, and discrete probability, among others). These mathematics requirements are specified in the Body of Knowledge primarily in the Discrete Structures (DS) Knowledge Area."
  • What is the "Lengthy series of mathematics classes needed as pre-requisites" before a discrete math course?
    • Here the answer depends. If it's MIT's Discrete Math, then Calculus is prerequisite. But, if its Discrete Math in general, most of the people can start learning it without any prerequisite. I included the Epp book as an example of a Discrete Math course that doesn't require the MIT's prerequisite which is, Calculus.
      • If we followed the path of MIT then we'll ask: What is the prerequisite of Calculus?
        • Pre-Calculus (Algebra and Trigonometry)
      • What is the prerequisite of Pre-Calculus?
        • Algebra
      • What is the prerequisite of Algebra?
        • Pre-Algebra
      • What is the prerequisite of Pre-Algebra?
        • Arithmetic
    • These are a "Lengthy series of mathematics classes needed as pre-requisites for coursework in CS will make it more difficult for students to find CS accessible, to switch into a CS major at a later point in their college careers, and/or to take CS-specific coursework early in their studies, which may discourage students from the field", together, they're called High school Math. This series of courses that start at calculus and recursively proceed to basic arithmetic is also the reason why you said that ACM is implicitly assuming high school Math. Because colleges and universities normally assume high school math, but they do so for a reason. It is because they will teach Calculus before Discrete Math, something that ACM doesn't require. So to say that they're implicitly assuming High School Math is a claim that can be true for colleges and universities that teach CS and providing a Calculus course before Discrete Math; but is not true for ACM. I think that this claim needs to be supported.
    • But what if we decided not to follow MIT's path(not providing calculus), and to follow ACM recommendation - which is actually the goal of OSSU that I try to follow too?
      • Then what is mandatory is Discrete Math - according to ACM.
      • What is the prerequisite for Discrete Math in general?
        • It depends on the course or book. There are courses and books that teach Discrete Math without any prerequisite. These are introductions not advanced books and Courses (not MIT).
  • There are CS mandatory coursework that is not Mathematics (i.e. programming, algorithms, data structures, ... etc). What are the pre-requiste Mathematics for these course?
    • According to ACM, "More generally, we believe that a CS program must provide students with a level of 'mathematical maturity.' For example, an understanding of arithmetic manipulations, including simple summations and series is needed for analyzing algorithmic efficiency, but giving the detailed specifications of the basic arithmetic necessary for college-level coursework in computing is beyond the scope of CS2013. To wit, some programs use calculus requirements not as a means for domain knowledge, but more as a method for helping develop such mathematical maturity and clarity of mathematical thinking early in a college-level education. Thus, while we do not specify such requirements, we note that undergraduate CS students need enough mathematical maturity to have the basis on which to then build CS-specific mathematics (for example, as specified in the Discrete Structures Knowledge Area), which, importantly, does not explicitly require any significant college-level coursework in calculus, differential equations, or linear algebra" (p. 50).
      • What ACM recommending is that the CS student must attain "mathematical maturity" to "have the basis on which to then build CS-specific mathematics". CS-specific mathematics according to ACM is divided into two things, " CS2013 distinguishes between the foundational mathematics that are likely to impact many parts of computer science—and are included in the CS2013 Body of Knowledge—from those that, while still important, may be most directly relevant to specific areas within computing. For example, an understanding of linear algebra plays a critical role in some areas of computing such as graphics and the analysis of graph algorithms" (p. 49).
      • In terms of Discrete math as a "CS-specific mathematics" no prerequisite is needed; what is needed is an intro course that is intuitive (I provided one example above, and there are many others).
      • But, maybe ACM is requiring Discrete Mathematics pre-requsite. No, they say, "we note that undergraduate CS students need enough mathematical maturity to have the basis on which to then build CS-specific mathematics (for example, as specified in the Discrete Structures Knowledge Area), which, importantly, does not explicitly require any significant college-level coursework in calculus, differential equations, or linear algebra" (p. 50).
        • "[discrete math] does not explicitly require any significant college-level coursework in calculus, differential equations, or linear algebra". But may be it require non college-level course work, or implicitly requires any other math. Yes, it require a general mathematical intuition which is something we get for free by being Homo-sapiens. And even if it require basic arithmetic or some algebra, an intro course in Discrete Math will provide it (as the book I provided and there are many others).
      • In terms of other "CS-specific mathematics" like linear algebra for graphics or simple summations and series for analyzing algorithmic complexity, there is a pre-requisite which is, Mathematical maturity.
        • So, what is Mathematical maturity, because this is in fact the only pre-requisite that ACM recommend?
          • According to its wikipedia entry, it's something that cannot be taught. It's an experience that come from doing mathematics. It's the way Mathematicians think. But it's not high School math. It's learning how to read proofs, how to proof things (which is one of the topics of Discrete Math), and the symbols that is the language mathematicians use (which is another topic that Discrete Math teach).
  • I think that it became clear now what I was proposing and why. What I've been proposing based on my practical experience with teaching, is what is recommended by the guide that OSSU is following. What I've done wrong was supposing that all who commented on my proposal have actually read the guide. There are people who referred me to the guide, however it became clear now that they haven't read it, or if they did, they didn't get passed page 40.

And what everyone else (including me) is commenting is from their experience in doing the courses and seeing other people do the course on discord. As for the guidelines agreeing with you, it is just that you think that the guidelines agree with you. You are very strongly biased and are just reading the guide thinking that it is agreeing with your views.

To be clear, yes I'm very strongly biased. I'm biased towards OSSU goals of providing CS education that is free, and credible because it follow the ACM guidelines. In terms of mathematics, which is what I do for living, if I'm biased, I should be the one who is recommending a lot of math, not the one who is against recommending a lot of math - or at least at the beginning - in order not to discourage learners who wish to learn CS and had a bad experience with Math.

A biased person is someone who have a preconceived ideas about something, while persisting that they're true even in the face of new facts that show otherwise. One way to recognize if someone is biased in a discussion is, to ask yourself is their ideas get developed or is it the same throughout the discussion. I started the discussion early proposing to introduce High School Math later in the curriculum, and arrived lately at the conclusion that it can be removed all together, based on the new evidence that I'd approached while researching for this discussion and reading ACM guide.
Another way to recognize someone who is biased, specially in writing is, they never quote from the original sources, they never provide any references for their claims, and if they did, they'll provide sources that support their preconceived ideas, not sources that there opponent is recommending. I quoted from the ACM guide and the courses that OSSU is following and recommending.

I hope that you don't take anything in this discussion personally. What we're discussing here is something bigger than us. We're trying to provide a free and credible education for people. This is something that is not easy, but is not impossible. You and I and everyone who are concerned ought to cooperate together to make this happen.

I've a new curriculum outline regarding Mathematics. It follow ACM guideline, including the new under construction 2023 guideline (https://csed.acm.org/wp-content/uploads/2023/09/MSF-Version-Gamma-V3.pdf) because they are recommending more math (statistics and probability as a result of advancement in AI that occurred since their last guide). It's an outline; it just have the topic name and the arrangement of topics. This outline doesn't require any pre-requiste Math, it assumes no knowledge of math. Its not starting from High School Math, it starts from Discrete Math. This arrangement of subjects is done in many countries, one of them is Finland, which is a major country in education, specifically in Math and Science. I use something like this outline while I'm teaching mathematics to people who never took any mathematics in school, in fact most of them never attended any school. However, this is not the place to discuss it.

Regarding the discussion as a whole, if the people who are engaging in this discussion wants me to stop talking,, I will. Even if the people who are engaged, or the one's who are responsible for OSSU wants to close the issue, I'll have no problems at all. My aim from opening that discussion was to improve OSSU. The reason for this is that I believe in their goal, and I know almost all the other CS curriculum that is provided online, OSSU is the most comprehensive. Nonetheless OSSU has been criticized by another great institution that provide CS education resources, for having too many subjects, without providing why they're recommending them, or what aspect is valuable in a particular course. I started this discussion with the belief that this is not the case; that OSSU have the flexibility to evolve if there is a better way. But sadly I started to become convinced that this criticism is true.

So, I think that regarding this issue (mathematics curriculum) I have an argument against what OSSU is recommending, but it's not convincing for the people who're responsible for OSSU. There is nothing wrong about this. On the mean time what has been provided from your side is based on two assumptions; one, that people need to have high school math before attempting to learn Discrete Math; and two, that this is the case because this is how math taught, this is how learners progress in mathematical education in USA and most other countries. I provided arguments against these two assumptions, and I didn't receive any counter arguments in return.

During the discussion I've learned a lot of things from everyone here. I've done a lot of research about the topic, I've dedicated two days to read ACM guide from cover to cover. All of this couldn't happen if this discussion didn't start. Therefore, I'm grateful to everyone here for the knowledge I've gained. On the other hand I wrote - and will continue to write - on my blog about this whole discussion, in order to open it more and extend it to others who are not engaged with us here. This setting of "GitHub issues" is not made for discussions like this; its made for providing a place to discuss issues related to code - something that doesn't require this amount of writing - or in the context of OSSU, a missing link or a typo in the repository.

My contacts are at my GitHub account. If the people who are responsible for OSSU, or if a learner or any other one is interested in this topic, I'm open to discuss it and provide my references, while also learning from others and read and understand their arguments and their references. Just contact me, and I'll respond as soon as I've time.

from computer-science.

etherealcomity avatar etherealcomity commented on May 28, 2024 2

The one counterargument I have there is that most CS students typically have to retake classes like Calculus at a more challenging level at schools like MIT, and the courses are listed under the major requirements for virtually every university program.

Oh, what I meant was how the courses are categorized according to the 2013 Curricula. Discrete math is considered to be in core mathematics while Calculus is a prerequisite. This is probably because Core classes are supposed to be second- or third-year courses, and first-years probably take Calculus or even Algebra/Trig.

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024 2

All the people who didn't accept my proposal for moving Mathematics to later in the curriculum in order not to discourage students from pursuing a CS education, they based their refusal on the claim that OSSU is emulating a Bachelor Degree in Computer Science based on the 2013 report of the Association for Computing Machinery and the Institute of Electrical and Electronics Engineers. By doing a little research, I've found that what I'm proposing is in fact what the report is recommending.

  1. " While nearly all undergraduate programs in computer science include mathematics courses in their curricula, the full set of such requirements varies broadly by institution due to a number of factors. For example, whether or not a CS program is housed in a School of Engineering can directly influence the requirements for courses on calculus and/or differential equations, even if such courses include far more material in these areas than is generally needed for most CS majors." (Acm Computing Curricula Task Force, 2013, p.49).
    • Hence, when we recommend an Introduction to CS course from an engineering University like MIT, I should've known that there will be mathematics requirements and prerequisite that are influenced by the engineering nature of that university, even "if such courses include far more material in these areas than is generally needed for most CS majors", which is, in our situation is the case.
    • One solution for this problem is to change the University that provides the introduction Course to some other University that doesn't require these specific engineering prerequisite (from MIT's Introduction Course to Harvard's CS50's for example). Another solution, if the Introduction course introduces CS concepts that the other University Course doesn't include, which is so important for an intro to CS course, is to no insist on the Math prerequisite that the course require. In short, learn what you need as you go.
      • For instance, if I'm learning MIT Course and there is a strange concept introduced called the Tower of Hanoi which I don't know anything about.
        1. Google the concept and learn about it.
        2. To test yourself that you've understood it, use the Fyenmen technique.
        3. Continue learning MIT Course until you find another unknown concept that you don't understand, then go to step 1.
        4. repeat until you finish MIT Course.
  2. This is the reason that lead the Acm Computing Curricula Task Force (2013) to say " As a result, CS2013 only specifies mathematical requirements that we believe are directly relevant for the large majority of all CS undergraduates (for example, elements of set theory, logic, and discrete probability, among others). These mathematics requirements are specified in the Body of Knowledge primarily in the Discrete Structures (DS) Knowledge Area" (p. 49).
  3. This situation actually beg the question: If the Mathematics that are relevant and required for the majority of all CS undergraduates is Discrete Mathematics - or Mathematics for Computer Science, can the student start directly with discrete mathematics, or, there are specific Mathematics prerequisite required in order to be able to understand Discrete Mathematics? In other word is Calculus, Algebra, or other courses is needed as a prerequisite for Discrete Math in case we're not MIT?
    • In short no. According to Acm Computing Curricula Task Force (2013), "Thus, while we do not specify [basic arithmetic manipulation, including simple summations and series, and calculus], we note that undergraduate CS students need enough mathematical maturity to have the basis on which to then build CS-specific mathematics (for example, as specified in the Discrete Structures Knowledge Area), which, importantly, does not explicitly require any significant college-level coursework in calculus, differential equations, or linear algebra" (p. 50). Thus, there is no explicit prerequisite for discrete Mathematics in the form that OSSU require, following MIT, that has a significant college-level coursework in calculus I and II.
    • Another evidence that Discrete Mathematics can be taken without these prerequisites is an important Discrete Mathematics book, that even OSSU recommend in their reading-list. In the preface of the book Epp (2020) writes "A good background in algebra is the only prerequisite" (p. Xiii). For everyone who read the whole book - I personally know many individuals who read it without any background in Mathematics and learned a lot from it on their own - will realize that even the algebra needed can be learned on the go while you learn Discrete Math. So the author of the book is not dreaming out - when claimed that no prerequisite is needed other than a good knowledge of algebra; its a feasible undertaken.
  4. Okay, but the guide requires that the CS students should have Mathematics maturate, so they can have the basis in which to build Discrete Mathematics. How can the student gain such maturity? and how we can measure such a Mathematical maturity in order to decide that the student have enough maturity and hence, start with CS specific Mathematics?
    • "some programs use calculus requirements not as a means for domain knowledge, but more as a method for helping develop such mathematical maturity and clarity of mathematical thinking early in a college-level education" (Acm Computing Curricula Task Force, 2013, p. 50). But is this the only way to do this ? No, the goal is to train student to have Mathematical Maturity. If a student is able to take a class in Discrete Mathematics and solve all the problem sets, then this is a good reason to believe that the student acquired Mathematical maturity that allowed them to learn Discrete Mathematics.
    • This can be achieved by starting directly learning logic and proofs from Epp book (which does not require a whole range of prerequisites - i.e. High School Mathematics). For those who prefer video lectures there are a lot of online video lectures that teach Discrete Mathematics without any required prerequisite. In fact, if a beginner learn logic and learn to write and read proofs, they can teach themselves any Mathematical topic on their own. This is the case because Mathematics is a formal axiomatic system. You start from some definitions that is assumed to be true, and then processed by logic to proof things from them. We use these proofed theorems to deduce other facts from them, and so on. If you teach someone logic and how to proof things, then they can learn any topic in mathematics by looking at the basic axioms and theories in that topic, using their acquired logical and proof skills, they can arrive to conclusions on their own, by using just books or online materials. This is in fact what is meant by Mathematical maturity; the ability to proof things using logic. This is something that anyone can learn from a Discrete Math book or course (The Math Sorcerer, 2020).
  5. If Mathematical Maturity is the aim, why not being at the safe side and recommending a whole lot of math courses (High School Mathematics and Calculus)?
    • In fact Acm Computing Curricula Task Force (2013) answered this question clearly by saying that "Lengthy series of mathematics classes needed as pre-requisites for coursework in CS will make it more difficult for students to find CS accessible, to switch into a CS major at a later point in their college careers, and/or to take CS-specific coursework early in their studies, which may discourage students from the field" (pp. 50-51). They encourage making CS accessible, and not to discourage students.
  • I think that it became clear now what I was proposing and why. What I've been proposing based on my practical experience with teaching, is what is recommended by the guide that OSSU is following. What I've done wrong was supposing that all who commented on my proposal have actually read the guide. There are people who referred me to the guide, however it became clear now that they haven't read it, or if they did, they didn't get passed page 40.

References:

  • Acm Computing Curricula Task Force (Ed.). (2013). Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science. ACM, Inc. https://doi.org/10.1145/2534860
  • Epp, S. S. (2020). Discrete mathematics with applications (Fifth edition). Cengage.
  • The Math Sorcerer (Director). (2020, December 10). Learn Mathematics from START to FINISH. https://www.youtube.com/watch?v=pTnEG_WGd2Q

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024 1

Haskell (deprecated) and Prolog (extremely outdated) both have courses under Advanced Programming, so I would take anything you see in this repository with a grain of salt. Don't take it too seriously or spend too much time debating because they'll obviously just throw anything in here without thinking whether someone learning CS in 2024 should learn it.

Haskell and Prolog may be unused in the commercial settings, nonetheless they've their usage in other settings. prolog for instance is used for network security applications and to model complex mathematical computations - usually related to scientific purposes.

The key from learning Computer Science is not to learn programming; it's a side effect. Programming at the end is a tool you use to guide the machine to do things for you. In terms of programming, CS wants to teach you the underlying fundamental principles that lie at the foundation of every programming language. If you learned these, you can learn any new language in a matter of week. Moreover, when you learn Compilers, you'll start to see programming languages from the point of view of the maker of them not the user, at this stage to learn a new programming language would take you a week end. So the goal of CS is not specifically Prolog and Haskell regardless the fact that they're useful in some settings, but to teach you the foundations that underlie all programming languages.

In fact people, at least in my opinion and experience, confuse CS with Programming and CS with Software Engineering. You can become Software Engineer without studying Computer Science; you can become a master Programmer without studying CS. OSSU is very clear about this point, that this is the equivalent of Computer Science Bachelor Degree.

Computer Science as a scientific discipline is trying to answer three questions:

  1. What can be computed ?
  2. How to compute it ?
  3. Is this computation the best in term of resources (space and time) ?
    So as a scientist you're researching to answer these three questions. Many computer science students work as a software engineers because the amount of knowledge that you know in CS will allow you to learn any new technology, framework, programming language in no time. That is something very valuable to the companies that'll hire you. Also working as a professor or a research in terms of money is not the same as working for google for instance. Computer Science education gives you the foundations that free you to move in any direction. If you like Bioinformatics you can grab it quickly by filling the knowledge gaps (i.e. Biology and Chemistry); If you're interested in Software Engineering you grab it quickly by filling the knowledge gaps (domain specific stack and frameworks). The same applies to any other field that uses computation, which is in our times, nearly all. Think of CS as the mother of all scientific disciplines in the 21st century.

Arguing about important topics is not a wasteful activity. Rational people can be convinced by good arguments. It's the only civilized and humane way we know to change our preconceived ideas for good.

I hope you find my reply helpful in terms of clarifying the reasons for studying Haskell and Prolog. OSSU in terms of a free, complete, open source Computer Science education, is the best that exist until now. So trust the Process and the Creator of OSSU. They are ensuring that you get quality education, this whole arguing is a proof that they care about the learners and the community.

from computer-science.

pulkitkrishna00 avatar pulkitkrishna00 commented on May 28, 2024 1

If there is someone that have a very bad past experience with mathematics - and they are many, that doesn't necessarily mean that they lack the time, effort, or intellectual ability to become a Computer Scientist.

True. But, the solution is definitely not to lie to them that Math is not required. IMO, this will only instill their fear of Math. Instead, we should help them overcome their fear of Math. OSSU does consider those people too. We are working on a separate "prerequisite Math" curriculum (it is in very early stages of discussion) which will probably help those people overcome their fear of Math and learn Math in a healthy way.

If OSSU provide and assume from its learners the same as MIT, then why OSSU in the first place

OSSU CS curriculum does not assume the same thing as MIT, but it does assume some prerequisites. It is supposed to emulate post-high-school education, and it cannot do so without assuming some high school knowledge.

Can you teach someone CS without insisting on math prerequisite early on by introducing math later ?

Maybe you can, but that won't emulate a typical CS degree, which is one of the major goals of OSSU CS curriculum.

TL;DR

Can you do MIT 6.00.1x without high school math? / Can humans land on the moon if the best computer they have, has only 4 MB RAM?

Yes, you can. You will struggle a lot, but you can do it.

Should OSSU not recommend high school math as a prerequisite of MIT 6.00.1x? / Should we ask space agencies to go to moon using only a computer that has only 4 MB RAM?

No.

from computer-science.

etherealcomity avatar etherealcomity commented on May 28, 2024 1

There is no lecture require converting binary to decimal or vice versa.

Yes there is. It's in the same lecture slides as the Newton-Raphson one. For reference, I took the edX version.

Introducing the The Newton-Raphson method as a way to implement the method using python. And to be clear this is the only place that i felt that some knowledge of mathematical vocabulary is needed.

And Towers of Hanoi. And Fibonacci. And recursion.

This is the function of representing something graphically in the first place.

People need to understand how to read graphs and determine which one has the bigger order of growths. There is also functions that meshes two complexities together to compare them. For me personally, this is visually confusing since I don't think the average person can intuitively know what's going on (me especially when I took the course).

Also, in the edX version at least, we had exercises where we had to calculate the complexity in terms of an algebraic expression. It took me several hours to understand how to do it. This is probably the one where I felt like I had to churn my brain to switch into math mode. Also the reason why math is very much needed.

from computer-science.

tuskydev avatar tuskydev commented on May 28, 2024 1

We can keep going in circles but it's clear nothing will change. I suggest you make your own emulation of a CS roadmap like OSSU did, best of luck brother 🙏🏼

from computer-science.

pulkitkrishna00 avatar pulkitkrishna00 commented on May 28, 2024 1
  1. " While nearly all undergraduate programs in computer science include mathematics courses in their curricula, the full set of such requirements varies broadly by institution due to a number of factors. For example, whether or not a CS program is housed in a School of Engineering can directly influence the requirements for courses on calculus and/or differential equations, even if such courses include far more material in these areas than is generally needed for most CS majors." (Acm Computing Curricula Task Force, 2013, p.49).
  • Hence, when we recommend an Introduction to CS course from an engineering University like MIT, I should've known that there will be mathematics requirements and prerequisite that are influenced by the engineering nature of that university, even "if such courses include far more material in these areas than is generally needed for most CS majors", which is, in our situation is the case.

You are misunderstanding the statements. What the guidelines say is that the calculus and other math courses mandatory for Cs students in engineering schools may contain more material than what is needed for CS. That has nothing to do with an Intro CS course. The MIT Intro CS course contain nothing that is not needed for CS majors.

  • One solution for this problem is to change the University that provides the introduction Course to some other University that doesn't require these specific engineering prerequisite (from MIT's Introduction Course to Harvard's CS50's for example). Another solution, if the Introduction course introduces CS concepts that the other University Course doesn't include, which is so important for an intro to CS course, is to no insist on the Math prerequisite that the course require. In short, learn what you need as you go.

Changing the Intro CS course is an entirely different thing. If you want to propose that, I would suggest you to open a separate RFC to discuss that. But, I think you should be informed that CS50 was included in OSSU curriculum previously, and was removed. There have been numerous RFCs (and discord discussions) about bringing it back. I would suggest you to read those before opening your own RFC.

As for not recommending high school math as a prerequisite (which this RFC is about), I have already explained why it is a bad idea in my messages above.

  1. This is the reason that lead the Acm Computing Curricula Task Force (2013) to say " As a result, CS2013 only specifies mathematical requirements that we believe are directly relevant for the large majority of all CS undergraduates (for example, elements of set theory, logic, and discrete probability, among others). These mathematics requirements are specified in the Body of Knowledge primarily in the Discrete Structures (DS) Knowledge Area" (p. 49).

This statement is about what math should be included in the curriculum, not about prerequisites to the curriculum itself. It is completely irrelevant here. OSSU contains only much less math courses than most CS curricula. The calculus courses are there because they are prerequisite of the MIT Math for CS course. I suggest you to open a separate RFC if you want the MIT Math for CS course replaced by some other discrete Math course.

  1. This situation actually beg the question: If the Mathematics that are relevant and required for the majority of all CS undergraduates is Discrete Mathematics - or Mathematics for Computer Science, can the student start directly with discrete mathematics, or, there are specific Mathematics prerequisite required in order to be able to understand Discrete Mathematics? In other word is Calculus, Algebra, or other courses is needed as a prerequisite for Discrete Math in case we're not MIT?

Yes, algebra is required, even for Epp's book which you quote.

  • In short no. According to Acm Computing Curricula Task Force (2013), "Thus, while we do not specify [basic arithmetic manipulation, including simple summations and series, and calculus], we note that undergraduate CS students need enough mathematical maturity to have the basis on which to then build CS-specific mathematics (for example, as specified in the Discrete Structures Knowledge Area), which, importantly, does not explicitly require any significant college-level coursework in calculus, differential equations, or linear algebra" (p. 50). Thus, there is no explicit prerequisite for discrete Mathematics in the form that OSSU require, following MIT, that has a significant college-level coursework in calculus I and II.

Yes, that is true. Again, this is entirely out of scope of this issue. As I said above, I suggest you to open a separate RFC if you want the MIT Math for CS course replaced by some other discrete Math course.

  • Another evidence that Discrete Mathematics can be taken without these prerequisites is an important Discrete Mathematics book, that even OSSU recommend in their reading-list. In the preface of the book Epp (2020) writes "A good background in algebra is the only prerequisite" (p. Xiii). For everyone who read the whole book - I personally know many individuals who read it without any background in Mathematics and learned a lot from it on their own - will realize that even the algebra needed can be learned on the go while you learn Discrete Math. So the author of the book is not dreaming out - when claimed that no prerequisite is needed other than a good knowledge of algebra; its a feasible undertaken.
  • This can be achieved by starting directly learning logic and proofs from Epp book (which does not require a whole range of prerequisites - i.e. High School Mathematics). For those who prefer video lectures there are a lot of online video lectures that teach Discrete Mathematics without any required prerequisite. In fact, if a beginner learn logic and learn to write and read proofs, they can teach themselves any Mathematical topic on their own. This is the case because Mathematics is a formal axiomatic system. You start from some definitions that is assumed to be true, and then processed by logic to proof things from them. We use these proofed theorems to deduce other facts from them, and so on. If you teach someone logic and how to proof things, then they can learn any topic in mathematics by looking at the basic axioms and theories in that topic, using their acquired logical and proof skills, they can arrive to conclusions on their own, by using just books or online materials. This is in fact what is meant by Mathematical maturity; the ability to proof things using logic. This is something that anyone can learn from a Discrete Math book or course (The Math Sorcerer, 2020).

Again, this is outside the scope of this RFC. Though, I would like to point out that Epp's book is not freely available and hence not suitable for OSSU.

  • In fact Acm Computing Curricula Task Force (2013) answered this question clearly by saying that "Lengthy series of mathematics classes needed as pre-requisites for coursework in CS will make it more difficult for students to find CS accessible, to switch into a CS major at a later point in their college careers, and/or to take CS-specific coursework early in their studies, which may discourage students from the field" (pp. 50-51). They encourage making CS accessible, and not to discourage students.

Again, this statement from ACM is about mandatory courses in CS curricula, not about high school math. No college includes high school math as mandatory coursework. They just assume that students know prerequisite math (or take remedial classes). OSSU does the same.

  • I think that it became clear now what I was proposing and why. What I've been proposing based on my practical experience with teaching, is what is recommended by the guide that OSSU is following. What I've done wrong was supposing that all who commented on my proposal have actually read the guide. There are people who referred me to the guide, however it became clear now that they haven't read it, or if they did, they didn't get passed page 40.

And what everyone else (including me) is commenting is from their experience in doing the courses and seeing other people do the course on discord. As for the guidelines agreeing with you, it is just that you think that the guidelines agree with you. You are very strongly biased and are just reading the guide thinking that it is agreeing with your views.

from computer-science.

Mr-opps avatar Mr-opps commented on May 28, 2024 1

Yes

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

Got it. It's an emulation of typical CS education.

from computer-science.

waciumawanjohi avatar waciumawanjohi commented on May 28, 2024

in 6.0001 the first appearance of mathematical concept is in "Lec-3" the cubic root of some number and the "guess and check method"... None of these require a whole knowledge and mastering of High School Math

To be clear, cube roots are not high school math, they are middle school math.

OSSU's mission is "Empowering learners to master college curricula through free resources." We do students no favors by telling them they can master nearly all of their first CS course if they skip high school math. I am opposed to the proposal.

I will leave this proposal open for the normal 1 month and I welcome other contributors to comment.

from computer-science.

etherealcomity avatar etherealcomity commented on May 28, 2024

I want to interject to say that the knowledge in prerequisites math is required in the edX version, as you can read here: https://www.edx.org/learn/computer-science/massachusetts-institute-of-technology-introduction-to-computer-science-and-programming-using-python

Prerequisites: High school algebra and a reasonable aptitude for mathematics. Students without prior programming background will find there is a steep learning curve and may have to put in more than the estimated time effort.

The course adds that, in addition to prerequisite math, you also need to have a fairly good grasp on mathematical problem solving. I think it safe to assume that MIT requires you to have a good understanding of high school algebra before you take the course.

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

First, I want to thank you for the respectable way in which you replied on the issue. You are the first person from the time i started discussing this issue to reply in a respectable manner; there are those who laughed and viewed the issue in a superficial way, others replayed defensively because they're biased.

To be clear, cube roots are not high school math, they are middle school math.

For this reason i said "None of these require a whole knowledge and mastering of High School Math" since they are more general basic mathematical knowledge. This is my whole point from this proposal.

Suppose that there is someone who knows nothing about cubic roots, or any other mathematical concept or procedure that'll be used in the 6.0001 course. And suppose that there is some sort of instructions (like the one on the Operating Systems Course) that instruct the learner to google any mathematical concepts that they find new , strange, or act as an obstacle to their understanding of the Computer Science concepts - which is the aim from the course. I think that the learner will master the 6.0001 course, while also learning a very important skill which is learning to search and learn without much help.

OSSU's mission is "Empowering learners to master college curricula through free resources." We do students no favors by telling them they can master nearly all of their first CS course if they skip high school math. I am opposed to the proposal.

For sure the final decision of the matter will be on the hands of the creators of OSSU. I just saw a problem that maybe you've never encountered, nonetheless it exists. There are a set of learners from different backgrounds who are very afraid and discouraged of mathematics as a result of bad teacher or bad presentation of the topic. Of these, there are no few numbers who are curios about Computer Science, who did not have the opportunity to study it in a formal setting (i.e. University or College) due to financial, personal, or other reasons. I think that those are the primary audience and the main target group of the OSSU, this is the reason you've provided free material.

Dr. Charles R. Severance, the author of the "Python for Everybody" Course (the first course on the OSSU list) have a YouTube video 1 arguing against the way Computer Science is taught in formal settings (i.e. Universities & Colleges). One of his critical points is that most of the people (The Commite) responsible for putting together Computer Science Curriculum, comes from an abstract mathematics background, and therefore they put too much emphasis on Mathematics to the extend that they confuse the learners. The argument comes not from a theorist but from a Computer Science PhD. and someone engaged in MOOC's and online learning (he contributed to the MOOC's first appearance to the world), he also talk about the history of this situation and why things become that way. I hope that you and anyone interested in online learning and MOOC'S specially for Computer Science education to listen to this argument and analyze the facts. You'll discover a great opportunity.

Learning is paradoxical process; it's very personal yet it's communal. Everyone learns differently, yet to learn you need a community (i.e. mentors and other learners) whom you'll learn and interact with. OSSU provided that community. I hope that it can find a way to appreciate the fact that people think differently, learn differently, and hence, one size doesn't fit all. Someone who is discouraged and have a bad experience with Mathematics, can learn Computer Science and appreciate the beauty and elegance of Mathematics if we know how to be flexible, if education become a student centered, if we (those who provide learning opportunities for everyone) understand our rule as facilitators and mentors not as God's in an ivory tower who looks to the learners from above, who dictates what, how, and why the learner should proceed in that way. Education, in the words of the great linguist and one of the great contributors to the field of Computer Science, Noam Chomsky, “[...] should not be a matter of pouring water into a vessel [...] it should be conceived as laying out a string along which learners proceed in their own ways, exercising and improving their creative capacities and imaginations, and experiencing the joy of discovery.” 2. The "string" is the Curriculum OSSU decide on based on your knowledge and expertise in the field, but how the learner proceed is something that's left to the learner to decide for themselves.

Two years ago someone who i know personally asked me if i could recommend to him books or courses to learn computer science because he wants to change his career. This person was a high school dropout, in fact he was leave-early because his father passed away and he finds himself responsible to provide food for his family. BTW where i live this is the norm not the exception. I recommended to him a Computer Science road-map - not OSSU- another major one (paradoxically i learned about OSSU from that other source). This source recommend the Nand to Titres course as a second Course. This person started to watch the introduction lecture videos from every course on the Curriculum. He then done something incredible. he started his Computer Science Journey by "Nand to Tetris" Course part one (The part that have no pre-requisite nonetheless, OSSU recommend c-like programming language). When i asked him why he did that, why he didn't follow the road-map recommended ordering, he replied: its more intuitive to build a Computer before learning how to program one. At this exact moment i understood perfectly what Noam Chomsky meant when he said "proceed in their own ways". This friend now lives in USA (originally from Cairo, Egypt) working as a software architect in a startup.

Why I'm engaging in that discussion in the first place, why i bother ?
Because OSSU is the most comprehensive guide i encountered till this day. Its something great and have a lot of potential in terms of contributing to the online leaning community. This is why i bother because you and everyone engaged had spend a lot of time and effort on OSSU to become what it is today, and i believe that you're or can become open to the ways in which OSSU can develop. There is another reason. I really appreciate the idea of open source learning and i see the idea of education is in the process of transforming. I hope that OSSU would be one of those who drives that transformation.

That being said, I'd like to thank you again for the civilized way you replied to me. Accepted or rejected that proposal, I'm grateful to talk to you.

I will leave this proposal open for the normal 1 month and I welcome other contributors to comment.

I wish that learners of OSSU not the creators alone would have a say on that matter. Share your experiences regarding that issue of Mathematics and what you see fit for you learning style.

An important final point. My whole point is not to neglect mathematics or to remove it from the curriculum; my point is to introduce mathematics in a time when the learner had become entangled by the love of Computer Science to the extend that this will be their driving force to learn math. If i told a beginner to learn calculus or any other topic because it will benefit them in the future, most probably they won't be convinced. But if they encountered a problem that require them to learn A mathematical topic, then the problem become the context and the reason that drives their motivation to learn.

Formal education has its own defects. I hope we wouldn't copy them.


Footnotes

  1. Min 4:33, At Computer Science isn't programming! // How to become a Master Programmer // Featuring Dr Chuck

  2. Noam Chomsky, What Kind of Creatures Are We?

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

The course adds that, in addition to prerequisite math, you also need to have a fairly good grasp on mathematical problem solving. I think it safe to assume that MIT requires you to have a good understanding of high school algebra before you take the course.

MIT recommended High School math as a prerequisite for this course in the link you provided of edx. But on the other link they didn't recommended. (https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/). Don't forget that at MIT Computer Science degree means Computer Science and Electrical Engineering degree.

In another link of MIT they say.

Prerequisites: No prior programming experience is necessary to take, understand, or be successful in 6.0001. Familiarity with pre-calculus, especially series, will be helpful for some topics, but is not required to understand the majority of the content.

"But is not required to understand the majority of the content" its required to understand "some topics". They put this sentence for a reason. They want to say if you don't have a familiarity with Pre-calculus - which is trig & algebra - don't get discouraged because you'll understand "the majority of content". In fact anyone who took this course knows that you can master it without the need to master High School Math. (https://mitocw.ups.edu.ec/courses/intro-programming/).

Does this means that High School Math is unimportant ?
Not at all. It just means you can delay it and take it after you've finished this course or even later. The learner will learn a lot of math in Computer Science. My point is not to make Math an obstacle. Encourage the learner to love the discipline first, and then present them with all the math that's required. This is my whole point.

from computer-science.

CodeCruncherTimmy avatar CodeCruncherTimmy commented on May 28, 2024

It's an interesting observation, but it is not obvious to me that this problem requires the curriculum to be reordered. Rather, an expansion to the FAQ or a separate 'Note to students who are uncomfortable with mathematics' might be a better fit.

Ultimately, one can navigate OSSU as one wishes. Superficially, it seems that if one has decided that UX or frontend web programming is the way one wants to go, one can delay learning mathematics and focus on a distinct subset (e.g. statistics) without too many issues. However, that is driven by a specific decision to only use a subset of OSSU.

Saying that, making a delay to senior school mathematics the default recommendation may result in a lot of students taking a long 'detour' from programming once one wants to learn algorithms (or rather, to reason about algorithms).

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

It's an interesting observation, but it is not obvious to me that this problem requires the curriculum to be reordered. Rather, an expansion to the FAQ or a separate 'Note to students who are uncomfortable with mathematics' might be a better fit.

I also recommend that. A notification to learners who are not confident at mathematics telling them that there are more than one path. You can for instance, delay Mathematics to after programing, the pros you'll be introduced to more programming to decide if Computer Science is your thing or not; the cons. is that you'll delay algorithms until you finish you Math, in that time you can study Mathematics and exercise your programming knowledge by doing some projects about things that interest you.

In the normal progression of OSSU you'll finish Core Programming then you'll start Core Mathematics. So, in either cases you'll stop programming to do Math. In the best case you'll take Math Courses concurrently with other CS Courses; however, this is the best case scenario not the norm.

I think its best to explicitly inform the learners, as you recommended, that there is many ways you can do this Curriculum. From these many ways we know only two; path (a) and path (b). This is what we know from our experiences, and its up to you how you organize your study. In short, make the suggestion more flexible without being chaotic.

from computer-science.

etherealcomity avatar etherealcomity commented on May 28, 2024

They put this sentence for a reason. They want to say if you don't have a familiarity with Pre-calculus - which is trig & algebra - don't get discouraged because you'll understand "the majority of content".

I think an important distinction to note here is that these are classes for MIT students. Fresh undegrads MIT students will absolutely know about precalculus already, as they at minimum need to have their AP Calculus done during high school, as per their instructions here: https://mitadmissions.org/apply/prepare/highschool/

Prerequisites: No prior programming experience is necessary to take, understand, or be successful in 6.0001. Familiarity with pre-calculus, especially series, will be helpful for some topics, but is not required to understand the majority of the content.

Hence, this would make more sense if this direction is more like, "Hey, it would be nice if you review precalculus again before taking this course. If not, then that's okay too because you can pick it up as you go along." This makes a lot more sense according to the site you link, which has "instructor's permission" as one of the prerequisites of the other classes. Those requirements are for MIT students, and MIT students only. That is also the reason why the edX version has different prerequisites, as it is intended more towards a general audience. Therefore, I would strongly suggest edX's recommendation.

Encourage the learner to love the discipline first, and then present them with all the math that's required. This is my whole point.

All in all, I strongly agree with this sentiment. Although my approach would be something akin to what @CodeCruncherTimmy mentioned. It would be for OSSU to simply expand their Prerequisites section (I think @pulkitkrishna00 is interested in doing this). In that prerequisites section, we should have a different and gentler introduction to computer science. Something like Berkeley's CS10: The Beauty and Joy of Computing. That class is geared towards high school students to undergrad non-majors, and gentle enough not to scare newcomers away from mathematical complexity. You can take a look at their content here: https://cs10.org/sp24/

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

Hence, this would make more sense if this direction is more like, "Hey, it would be nice if you review precalculus again before taking this course. If not, then that's okay too because you can pick it up as you go along." This makes a lot more sense according to the site you link, which has "instructor's permission" as one of the prerequisites of the other classes. Those requirements are for MIT students, and MIT students only. That is also the reason why the edX version has different prerequisites, as it is intended more towards a general audience. Therefore, I would strongly suggest edX's recommendation.

Yes MIT has different requirements for its freshman students as a result of the fact that it's an engineering university. OCW website - the website that my link refer to - is not a website that is intended exclusively for MIT students; in fact the opposite is true.

MIT OpenCourseWare (OCW) is a web-based publication of virtually all MIT course content. OCW is open and available to the world and is a permanent MIT activity. (https://mitocw.ups.edu.ec/about/)

Therefore, what is existing at the OCW is intended for both the public and MIT students.

So we've two things here:

  1. MIT Students with their admission requirements (which necessary for them since they are entering Electrical Engineering and Computer Science).
  2. OSSU learners which came from different backgrounds and having different goals from those of the MIT students.
    So on OCW when they say that 6.0002 Introduction to Computational Thinking and Data Science Course require:

Prerequisites: 6.0001 Introduction to Computer Science and Programming in Python or permission of instructor.

That permission of instructor part is related to MIT students. Nothing can stop anyone from the public that's using OCW not to take 6.0002 even if they doesn't satisfy the requirement. So, when MIT consider a prerequisite, they have two sets of audience in mind; the public, and their students.
When MIT at its OCW website - which is intended for public audience - makes the course's prerequisite flexible. We shouldn't be very quick at coming to the conclusion that they are assuming from their students High School Math; they're not intending their students primarily by the OCW.

The Course 6.0001 is not available now at edx. It'll open in may. I took edx's Course before and I reviewed the OCW. I challenge anyone to cite any Mathematical concepts introduced or used at 6.0001 other than the two I claimed they exist above, which are the cubic root, and the guess and check method; none of which require High School Math or Algebra. They require a basic search on google. This is a Computer Science Course, they used this concepts to introduce a problem to be solved Computationally, their choice of these two concepts is the result of the fact that they are Engineering University providing introductory CS Course for Engineers of MIT (and now accidentally) for the public who are not and doesn't plan to become Electrical engineers. Harvard CS50's Course doesn't introduce any mathematical concepts as their problems. But their problems are more in the humanities side. Every university colors the problems they use to introduce CS concepts with its academic nature. So, what's used to introduce a Computational concept, shouldn't become the learners main concern; the Computational concept itself is the aim. The thing that is used being a Mathematical concept, Super Mario game, or a dictionary of phone numbers, is a mean to some end, that is, the computation.

The archived version recommended by OSSU doesn't require any prerequisite. If anyone find any prerequisite required - on the archived version recommended by OSSU - please inform me.

Professor John Guttag is the author of the book that is used in the course. In the preface of the book he doesn't require any prerequisite from the reader:

The main goal of this book is to help readers become skillful at making productive use of computational techniques. They should learn to use computational modes of thoughts to frame problems, to build computational models, and to guide the process of extracting information from data. The primary knowledge they will take away from this book is the art of computational problem solving.

However he wrote the book to cover two courses; 6.0001 and 6.0002. So, in the same preface but after one page he required a prerequisite from readers who are aiming at reading the whole book (i.e. take 6.0001 & 6.0002 Courses):

Chapters 14-26 are about using computation to help understand the real world. They cover material that we think should become the usual second course in a computer science curriculum. They assume no knowledge of mathematics beyond high school algebra, but do assume that the reader is comfortable with rigorous thinking and is not intimidated by mathematical concepts.

If there is a prerequisite needed for the introductory material, he would write about it. He did when it was required in advanced topics.

Why the same material presented in different medium would require different prerequisite ?
I Don't know. But I think that Professor John realized when he started to write the book that it's not really important to know High School Math or Algebra before taking the first part of it. He wanted to widen his audiences. This is an opinion, not something i know for sure.

All in all, I strongly agree with this sentiment. Although my approach would be something akin to what @CodeCruncherTimmy mentioned. It would be for OSSU to simply expand their Prerequisites section (I think @pulkitkrishna00 is interested in doing this). In that prerequisites section, we should have a different and gentler introduction to computer science. Something like Berkeley's CS10: The Beauty and Joy of Computing. That class is geared towards high school students to undergrad non-majors, and gentle enough not to scare newcomers away from mathematical complexity. You can take a look at their content here: https://cs10.org/sp24/

Expanding the prerequisites, in my opinion, would complicate not simplify the issue. We need to minimize the friction that a beginner learner would encounter in Computer Science, but we don't want to remove the friction. Learning, specially in depth, is not an easy task. But its not impossible.

By the time the learner would finish "Python for Everyone" or "Harvard's Python course" they'll be ready to take 6.0001. They would have gained a great deal of python's syntax and semantics, that when they take 6.0001 Course they'll concentrate more on Computational thinking which is the aim of 6.0001. The order of this introductory courses, in my opinion, is perfect.

What is needed is to write a note at FAQ. or in other place summarize what we've discovered together here. That what we recommend as a path is not the only way; this is one way of doing it. Another path - if you're not a math person, or wrongly think that - is to take High School Math, Calculus, then Mathematics for Computer Science. In short, to put High School math where it belong, in the Core Mathematics. By doing that, we're giving the student an opportunity to appreciate and love Computer Science as a discipline, assuming that if we achieved that task, the learner love and passion for the field will carry them forward in their quest. We can even give justifications for why you need to study Math in Computer Science. How you gonna use it to write proofs to analyze, or convince another Computer Scientist that your proposed algorithm is the fastest. If you decided to learn about Computer Graphics you need to learn Linear Algebra Because expressing a scene in terms of coordinates is equivalent to expressing it in terms of vectors, which is the topic of linear algebra. Even if the learner won't be convinced and decided to take a computer graphics course without taking linear algebra, once they hit a wall, they'll remember what OSSU recommended and then everything will become clear. At this stage the learner may decide to take Linear Algebra concurrently with Computer Graphics, or to pause Computer Graphics, finish Linear Algebra, and come back to it after that. But now all of this would have a meaning to the learner.

Give more advice. I'm open to the discussion. I'm passionate about open education in general, Computer Science and OSSU specifically. This passion led me to spent in the last 48 hours more than 5 hours writing about that issue.

from computer-science.

pulkitkrishna00 avatar pulkitkrishna00 commented on May 28, 2024

I oppose any mention of the assertion that high school math is not required for MIT 6.00.1x (be it on the FAQ or elsewhere), or any change of order of prerequisite high school math.

Finding technicalities like the OCW version not mentioning the prerequisite or anything like that won't change the fact that people who tried to do MIT 6.00.1x without prerequisite math knowledge struggled a lot, and that can be seen in the discord channel for that course.

The OCW version and the Edx version teach the exact same thing in the exact same order with almost the same slides. Saying that only Edx version requires high school math does not really make any sense.


@BurzumBlack

If there is a prerequisite needed for the introductory material, he would write about it. He did when it was required in advanced topics.

I have seen many Math textbooks not mentioning any prerequisites. It does not mean that it does not have any prerequisite.

The archived version recommended by OSSU doesn't require any prerequisite. If anyone find any prerequisite required - on the archived version recommended by OSSU - please inform me.

The archived version recommended by OSSU is just an archive of the normal Edx course. It is not different in any way.

In fact anyone who took this course knows that you can master it without the need to master High School Math.

I and all the people who opposed this idea on Discord have also completed the course. The OSSU maintainers who added the prerequisite section also probably had done the course before.

One of his critical points is that most of the people (The Commite) responsible for putting together Computer Science Curriculum, comes from an abstract mathematics background, and therefore they put too much emphasis on Mathematics to the extend that they confuse the learners. The argument comes not from a theorist but from a Computer Science PhD.

This is not the place to have this argument. OSSU follows the Curricular guidelines. OSSU does not decide what should be taught.

Encourage the learner to love the discipline first, and then present them with all the math that's required. This is my whole point.

That should not be done. The point of an Intro CS course is to introduce people to the discipline of CS, and math is an integral part of that. OSSU does not exist to lure people into studying computer science (And people who will stop learning CS because the Intro CS course requires high school math, will stop learning CS the moment they encounter high school math at any point, anyway).


At last, OSSU is not tied to what MIT says about prerequisites. Nand2Tetris claims to have no prerequisite, but that is not actually the case practically. OSSU mentions prerequisites in its case anyway.

Also, OSSU is already very lenient regarding math requirements, and I think that is enough not to discourage people. Typical CS degrees involve way more math than OSSU.

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

@pulkitkrishna00 We're not fighting. We're rational humans discussing something important. So i think it'll be helpful for all of us if you back up your claims with facts. I think that I respect everyone here by presenting facts for every point i made.

Textbooks specially those aimed for teaching students are very strict in terms of being clear about what they require from the reader. If you know a textbook that doesn't clearly indicate that please inform us.

Nand to Tetris part one- which is not the point we discuss here - has no programming prerequisite. neither in the edx, the Nand to Tetris website, or their textbook (1st & 2nd editions). If you find any mention for prerequisite from the authors of the book please inform us. If you find inside Nand to Tetris part one any mentions of c-programming language or use of it, please inform us. and back up your information so we can learn from your points. BTW. I finished Nand to Tetris.

So deciding that we want to assign a prerequisite that's is not required by the authors of the course, needs a very good argument backed up with facts. I think less than that would be intransigent, or at least a bad experience with learning CS that left its scars on us. Saying that some students find it difficult to take 6.0001 without High School Math, is the same as as saying that some students have successfully take 6.0001 without High School Math, which is the claim that you refused from me. I hope that we apply the same standards we require from others to ourselves.

I challenge you or any one to tell me precisely where in 6.0001 there is introduction to mathematical concepts other than "cubic root" and "guess and check". If you find them please inform me so i could learn. The same challenge apply to Nand to Tetris; If you find any mention or use of c-like programming language please inform us so we could learn. Saying that they exist is not enough, you need to demonstrate that this is the case (i.e. back up your claims with facts).

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

MITx 6.00.1x has:

* exponentials (from the lecture on converting binary to decimal and vice versa, and Big O)

* polynomials (Newton-Raphson and Big O)

* sequences (Towers of Hanoi, Fibonacci)

* logarithms (Big O, binary search, merge sort)

* functions (orders of growth)

* inequalities (guess and check, comparing Big O)

* calculus (Newton-Raphson): this stuck out to me because this seems to imply that people who take this course would take this alongside calculus classes

There is no lecture require converting binary to decimal or vice versa. Please refer me to its exact location in the course because i spent the last 3 hours skimming the whole course from start to finish, video by video (@ 2x speed) and exercise by exercise and I found the following:

Week 1
In Video: Knowledge Introduce the guess and check method to show how to implement a program that do that method computationally. In fact, he defined what's the guess and check method in details.

Week 2
In Video: Approximate Solutions Introduced the cube root and square root to advance the idea of guess that introduced the week before. In fact there is no mention to any mathematical detail.

Introducing the The Newton-Raphson method as a way to implement the method using python. And to be clear this is the only place that i felt that some knowledge of mathematical vocabulary is needed.
Should the learner have a High School Mathematics ?
I don't think that it's needed. There are a ton of videos that explain this concept on YouTube that describe the concept in detail.
Maybe your answer to this question would be yes, they need High School Mathematics at this stage. I think that you can argue about this and your argument will be valid. And i can argue against this and my argument will also be valid. Therefore, its debatable.

Week 5
In Video: Classes Examples, min 1:10 " [..] And what you're going to see here is less the details of doing fractions, more the idea of how I use the methods to define behaviors that I want to associate with different objects, in this case, fractions."

In, Week 5, Exercise: genPrimes In this problem the want a generator to return the sequence of prime numbers. Instead of assuming that the student should know prime numbers, they put a Wikipedia link to read about prime numbers. This is also what i recommend; let the learner search and learn on their own.

Week 6
In Video: Program Efficiency Introduced graphs to show types of orders of growth. Its a visual representation of an idea. This is the function of representing something graphically in the first place.

Week 7
In Video: Pylab He claimed that by showing graphs of types of order of growth, the aim was to give the learner a visual intutive understanding of what is quadratic for instance mean. This is the point I made above, and here the fact that the Prof. are making the same claim. He made that point and use it to motivate learning how to plot in python.

I think an important note that needs to be said is that me, @pulkitkrishna00, and the others on Discord have taken this class, and we all in unison think that high school math is very much needed. We, in fact, did not gather around and talk about the prerequisites. We all individually determined that by ourselves. Your experience may be different, but that does not change the fact that the majority of us who have taken the course think that the prerequisites are needed.

If the majority decided this I have nothing more to say. I have different experience, and i see a value in not spoon fed everything to the learner, but instead to encourage independent research.
At the end the maintainers of OSSU will have the final say on the matter. I'm just recommending something and arguing about it.

Also a reminder that the book is a required textbook for MIT students. In fact, the majority of the people who would buy the textbook would be MIT students. (Many people who have taken the edX version don't really read the textbook).

I'll be hesitant to make that claim, that the majority of people who buy the book are MIT students. The reason is that many online resources recommend that book as an introduction to Computer Science. Many YouTube videos recommending it also. The book is popular outside MIT. Yes maybe not many bought the book, but buying the book is not the only way to read it. The book is pirated and exist on every website that has PDF books. I bring the book to make the point that even the book recommended by the course doesn't insist on High School Math for the beginner learner; it doesn't mention any math needed.

OSSU follows the 2013 curricular guidelines. High school math is not Core Mathematics. In fact, Calculus is supposed to be prerequisite math instead of core math. OSSU is already generous enough to include Calculus to the Core Math section.

What i meant is Putting Math prerequisite in the order of the curriculum before directly starting core math. Not inside Core math; maybe I expressed the idea in wrong way. In fact when you start to learn Math prerequisite after been introduced to some concepts, things start to come together.

There is a problem that exist in general in formal and online education about people who're motivated to learn Computer Science but get discouraged by Math. Math is so important to Computer Science, in fact Computer Science is a branch of Applied Mathematics. But there are tons of people who loved Math through CS not the other way around.

Can you teach someone CS without insisting on math prerequisite early on by introducing math later ?
I think yes. MIT uses mathematical concepts because it's an Electrical Engineering University. Actually they require physics, chemistry and biology. We can follow guides creatively without discouraging people and without simplifying the task at hand, which is, The Computer Science Degree. If OSSU provide and assume from its learners the same as MIT, then why OSSU in the first place, one can have the equivalent of bachelor Degree in Computer Science and Electrical Engineering by following MIT curriculum which is published all at OSW website. In fact there is someone who did that and documented his experience on YouTube.

What i think OSSU is trying to do - and correct me if I'm wrong - is to provide Computer Science education to everyone that had the time, effort, and intellectual ability to purse the knowledge. If there is someone that have a very bad past experience with mathematics - and they are many, that doesn't necessarily mean that they lack the time, effort, or intellectual ability to become a Computer Scientist. If what i think the goal of OSSU is true, then to complete its task successfully, OSSU must consider these class of people - and again they are many. By doing that OSSU will be solving a problem that no one - or at least to my knowledge - consider to solve.

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

People need to understand how to read graphs and determine which one has the bigger order of growths. There is also functions that meshes two complexities together to compare them. For me personally, this is visually confusing since I don't think the average person can intuitively know what's going on (me especially when I took the course).

Also, in the edX version at least, we had exercises where we had to calculate the complexity in terms of an algebraic expression. It took me several hours to understand how to do it. This is probably the one where I felt like I had to churn my brain to switch into math mode. Also the reason why math is very much needed.

Still i see this is the result of choosing an introductory course of Computer Science that is taught to Engineering students. MIT is an Engineering University, and it's known for being hard. However, this doesn't necessarly mean to introduce Mathematics at this stage - or at least this is what i see. We're studying Computer Science to become computer scientists, if we want to become mathematician this is another story and another Curriculum that OSSU provide. In our case Mathematics is a tool. In Computer Science Mathematics is the language of writing and reading proofs, and solve a narrow set of problems, but it's not the whole of Computer Science. A Computer Scientist that spends his life researching Compilers, or Programming languages design, will not use or even need mathematics as someone who is researching Algorithms (Like Knuth for example). My point, again to be clear, is not that Mathematics is non-essential or non-important. My point is that Mathematics is known for being hate by many, not because they didn't have the intellectual ability to understand it, but because in general, Mathematics is taught the wrong way in high schools. Even the arrangement that exist today of teaching Mathematics (i.e. the order of subjects being taught)- the Khan Academy and hence OSSU recommendation - is not the best one. Even if you start to study High School Mathematics from Khan Academy or any other Course at this stage, trust me you'll forget what you've learned when you need it and you'll go into one of two directions; either you'll start to study it again, or, you'll review the parts that you need to know. This is what i meant by moving it to when its time come, MIT bring it very early, so we can change MIT introductory course. This is another great introductory Course I hope you look at it. It's the same quality (Academically) as the one from MIT, but doesn't introduce any mathematical concepts. It's not easy or simple Course, but the effort will be spend on what's important at this stage. It's open source; all the materials from videos to the book to homework assignments are open and free. Look at it.
Course web site
Book

Mathematics is so important for Computer Science, but it's important FOR. OSSU is providing a Computer Science Curriculum that Follow the standards of CS education. But we ought to be aware, OSSU is not targeting the set of audiences that formal education (universities and colleges) are targeting. Practically what this mean is that if MIT or any other institution require calculus for its admission, we (OSSU) shouldn't blindly do the same - which OSSU in reality didn't do. But there are people here who are convinced that by putting calculus in Core Mathematics, OSSU is doing something permissive. OSSU shouldn't forget that its audience are from many different backgrounds; dropouts, old people (i know a 71 years old Egyptian taking OSSU), high school students, ...etc. Many of these audience have a very bad experience with formal education. My point is that OSSU follow a standard to be a professional and trusted institution, but it shouldn't copy formal education because its audience is different, and because formal education have its own defects.

Mathematics can be introduced lately. When there is a context for it, a context that motivate it, when its time come. Formal education insist on Mathematics as a prerequisite, but we've the freedom to be creative to provide the same curriculum but with different order. This is the way OSSU will leave its mark upon the Open source or online education. There are many who asked their Mathematics teacher "what is the value of doing integrals, or of solving quadratic equations ?" This question has a great insight, that we should be aware of if we are providing an educational setting that differ from the formal setting. We're giving an education opportunity for people who failed in formal settings. They shouldn't come to us to find the same defects. The formal system is broken, it's old, it's the remaining of the industrial revolution, we're in the midst of a digital revolution, and education everywhere is transforming, but not in the formal settings because it's historically too slow to change.

We learn what we are interested in. For good or for bad this how our brains work, this is our evolutionary advantage. If we take advantage of this property of our brains, learning will become an organic process, something that come naturally to us. I hope that my point had become clear now. I saw a problem, how to solve it is something for OSSU to work on. Maybe what i propose is not the right solution, maybe it is. But i hope that the people who are responsible for OSSU doesn't think that this is a trivial problem or something peripheral.

N.B: All the points i made above about the defects of education and how our brain works are backed up by Social science and Natural Science evidence. If anyone wants to become acquainted with them just tell me and I'll give you the references.

from computer-science.

cachandlerdev avatar cachandlerdev commented on May 28, 2024

OSSU follows the 2013 curricular guidelines. High school math is not Core Mathematics. In fact, Calculus is supposed to be prerequisite math instead of core math. OSSU is already generous enough to include Calculus to the Core Math section.

@etherealcomity The one counterargument I have there is that most CS students typically have to retake classes like Calculus at a more challenging level at schools like MIT, and the courses are listed under the major requirements for virtually every university program. Aside from that though, I completely agree with the other arguments that everybody else has pointed out.

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

You clearly seem to be quite passionate about this topic, but for the life of me, I cannot fathom why.

Because I don't like wasting my precious time on Netflix, or doing things I'm not passionate about for the sake of money or pleasing others. I spend my time on Reading, Writing, researching and learning about teaching Mathematics because this is what i do for living. Also my background, which is something I've never talked about because what is true, or at least probably true, is not related to us; it's based on the evidence that's put forth and the facts that underlie it.

I'm Mathematician by training because I've attended a British Mathematics high school for "gifted" - which is a word i think doesn't have any meaning - children because I was failing every subject in my school except Mathematics.

Arguing that people should learn graph theory before they know what fractions are isn't going to help those people at all.

Saying that "something is not the case" is not equivalent to saying "I don't know about that thing".
In USA, Canada, Japan, and Finland (Which is the 1st country worldwide in terms of the achievements in Mathematics and Science education especially for children and the 1st world wide in education in general) there exist High Schools and institutions that introduce and teach Mathematics for children in the following order:

  1. Discrete Mathematics with applications & proof writings. For learning basic logic and proofs. from there in theory you can teach yourself any mathematics. Discrete mathematics is the mathematics of the 21st century - this is their argument not mine - it underlie our digital world in contrast to calculus which was important for the industrial system.
  2. Pre-Algebra. Now the children know about basic logic and proofs but their mathematics is bad. Here is the time for a pre-algebra course.
  3. Basic Algebra. Or what we call College Algebra.
  4. Pre-calulus. Algebra & Trigonometry.
  5. Calculus.

This Curriculum is not taught in public schools - (except in Finland because there is nothing other than public schools), nor its done for the "gifted", its done in something called experiential schools. There is a plethora of empirical evidence that this progression is the most intuitive way to teach Mathematics and hence it has a great success.

Why it's not something that is done in everywhere in public schools ?
Because humans are against change in general. We're creatures of habit.

In fact the way they teach that curriculum is not how we'll learned in schools. It's how Mathematician do Mathematics. It's a pedagogy strategy called Inquiry-based learning. It starts with a question - in the context of Mathematics a problem - that the facilitator write on the board. This problem must be of interest to the learner, so there is a discussion phase before this in order to motivate the topic. Then the facilitator provide resources (books and online resources) for the learners to research how to solve this problem. The learners start to collect information, form a hypothesis about how to solve it, and test the hypothesis; if it's true, then it's done; else, the facilitator provide a little guidance in the right direction and they continue in the cycle of collecting data, hypothesis, testing it. There is a lot of Mathematics Text-books that is written to facilitate this way of learning for instance, "Discrete Mathematics with Applications by Susanna Epp" this book doesn't require any prerequisite other than basic algebra, which is something the facilitator provide for the children if they needed it, so you can learn discrete mathematics without calculus, this is the book that OSSU recommend in the reading section. Another book is "Calculus by James Stewart". There is a lot of empirical data that shows that this method have a great success in contrast to the old method of teaching mathematics by route learning. If you want to know more, if you're interested you can search inquiry-based learning in Mathematics education and read the scientific paper that is published in scientific institutions and that's peer-reviewed. If you're really interested contact me and i can provide you with the ISBN of exact papers to read about the topic.

What exactly I want by bringing up the issue ?
Helping OSSU creators to increase their rate of evolving.

What if they refused ?
At least there are people here who knows that there are other ways of learning. Someone might benefit from it in their personal life. My aim is not to change the world; it's already changing. My aim is to make it faster.

How do you gonna achieve this ?
By arguing and pointing people to topics that they might not have the time or effort to spend it at researching and knowing that they exist.

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

We can keep going in circles but it's clear nothing will change. I suggest you make your own emulation of a CS roadmap like OSSU did, best of luck brother 🙏🏼

This is something that I'm actually working on.

from computer-science.

pulkitkrishna00 avatar pulkitkrishna00 commented on May 28, 2024

@BurzumBlack

I'm Mathematician by training

Then, how are you sure that someone who does not know high school math can do CS 6.00.1x? Just because you think so? Did it not occur to you that your judgement that it is easy it is to understand mathematical concepts in computer science by googling, may be flawed and biased?

And again, OSSU does not decide in what order mathematics should be taught. Arguing about that here is a wastage of your and everyone's time.

from computer-science.

BurzumBlack avatar BurzumBlack commented on May 28, 2024

Then, how are you sure that someone who does not know high school math can do CS 6.00.1x? Just because you think so? Did it not occur to you that your judgement that it is easy it is to understand mathematical concepts in computer science by googling, may be flawed and biased?

I know this because I'm teaching a class - but not in the formal sense - intro to Computer Science, and i listen carefully and observe what the learners do. This is the 3rd class like this that I'm a facilitator for. There are around 80% - maybe more - success with students learning the mathematics needed for an intro to CS class by themselves. using books and online resources and a little direction from me and others.

I give arguments for this reason. So i could discover if I'm biased. That's is why when @etherealcomity showed me where in MIT's 6.0001 exist mathematical concepts, i replied that this is the only place that some mathematics terminology is needed.

And again, OSSU does not decide in what order mathematics should be taught. Arguing about that here is a wastage of your and everyone's time.

I didn't want OSSU to follow the order I'd presented. I presented this order to show that there is other ways to learning the same thing.

I don't push you or anyone to engage in this discussion; if it's wasting your time you can mute it and forget about it.

This discussion started by a proposal to change the Math prerequisite order, and arrived at a stage when I proposed just leaving a comment for the learners that there are other ways of approaching that Curriculum. So I'm not rigid or trying to push my ideas. I'm open to the things that people are saying. This is why my position had changed.

from computer-science.

bradleygrant avatar bradleygrant commented on May 28, 2024

Successful implementation of #1235 may assist with this discussion.

from computer-science.

dafydddev avatar dafydddev commented on May 28, 2024

I am against this proposal.

CS has maths-heavy areas. Most CS undergraduates require high school maths. Many solid CS MOOCs require high school maths. You can learn the basic of programming without maths, but you will struggle with computer science.

Without signposting that high school maths is needed to effectively learn core computer science skills would be doing a disservice to students OR would be expanding the scope of OSSU being its core aim.

I think that the OSSU wiki could be drafted to better signpost maths resources. For example ...

... could be improved. These could provide better guidance about how to prepare for OSSU. That being said, I am against changing the curriculum itself.

from computer-science.

bradleygrant avatar bradleygrant commented on May 28, 2024

Closed without adoption.

from computer-science.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.