-
Notifications
You must be signed in to change notification settings - Fork 21.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A proposal to shift the High School Matheamtics to later in the Curriculum. #1231
Comments
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. |
Got it. It's an emulation of typical CS education. |
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. |
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
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. |
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.
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.
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 ? 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 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
|
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.
"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 ? |
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). |
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. |
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/
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.
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/ |
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.
Therefore, what is existing at the OCW is intended for both the public and MIT students. So we've two things here:
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. 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:
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):
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 ?
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. |
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.
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 is just an archive of the normal Edx course. It is not different in any way.
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.
This is not the place to have this argument. OSSU follows the Curricular guidelines. OSSU does not decide what should be taught.
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. |
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. |
@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). |
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:
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. |
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.
MITx 6.00.1x has:
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 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.
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).
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. |
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 Week 2 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. Week 5 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 Week 7
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.
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.
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 ? 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. |
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.
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.
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. |
Yes there is. It's in the same lecture slides as the Newton-Raphson one. For reference, I took the edX version.
And Towers of Hanoi. And Fibonacci. And recursion.
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. 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. |
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. |
@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. |
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. |
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.
Saying that "something is not the case" is not equivalent to saying "I don't know about that thing".
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 ? 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 ? What if they refused ? How do you gonna achieve this ? |
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. |
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. |
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.
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. |
Recommend against. |
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.
References:
|
Successful implementation of #1235 may assist with this discussion. |
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. |
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.
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.
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.
Yes, algebra is required, even for Epp's book which you quote.
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.
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.
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.
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. |
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?
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. 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. |
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. |
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. |
Yes |
Closed without adoption. |
TLTR;
The creators of OSSU i hope that this request find you well.
What is the problem of math education in general and how OSSU could contribute to fix this problem ?
OSSU is providing a learning opportunity for everyone who wants to learn Computer Science given that they've the time and effort required to pursue the studies 1. This means democratizing Computer Science education; make it accessible to everyone. Accessibility doesn't mean only providing the required material (i.e. courses) for free, but also providing the road-map and guidance on certain issues that the beginner learner doesn't have the experience to know or consider. And this is what OSSU is achieving by providing the courses, the road-map and the mentoring in the form of detailed guidance 2.
Computer Science as a discipline is a branch of mathematics. Most universities around the world assume that students who aim at studying Computer Science have finished high school Mathematics. The way mathematics is taught in high school is not the best way to teach it. In fact, i don't think that anyone knows what is the best way to teach it. Nonetheless it remains a fact that many students who hate mathematics - because of a bad teacher, or the subject is presented in a way that doesn't reflect the true nature of Mathematics - are not in fact bad at Mathematics. This means that if the way Mathematics is presented in high schools changed, many'll find it an appealing and natural subject to learn 3; they'll become good at it. Changing the way Mathematics is presented in High Schools means introducing Mathematics when needed, not as a bunch of facts and techniques that the student should master; but as a tool for interpreting, solving, and expressing problems. In short, introduce Mathematics in relation to some problem, in the light of, or in context of something related to the field you study - which is CS in our case.
Given the above, and given the good intention of OSSU creators to advance humanity by making Computer Science learning accessible to a greater number of people who're willing to put their time and effort to become Computer Scientists, I claim that there is an opportunity for OSSU to fix a problem related to teaching mathematics in formal education, and hence make the curriculum accessible to a greater number of people, some of which can become good at CS and Math but discouraged by the mathematics - the problem of teaching math as a bunch of facts or techniques produced by some people (i.e. mathematicians) that the students ought to master - by introducing math lately in the curriculum.
How this proposed solution will contribute to fixing the math teaching problem in formal education ?
By the time the learner finish "Intro CS" they would've been introduced to some mathematical concepts but in a superficial way. They'd also have an answer to the question: Is CS my field of interest or not. This is in fact the function of an Intro Course; to give the learner enough knowledge in order to decide if they would like to purse more or that what they've known is enough.
From the three courses in "Intro cs" - CS50P, Python for Everybody, 6.0001 Introduction to Computer Science and Programming in Python - 6.0001 is the only course that introduce mathematical concepts because it's the only course that introduces CS. The other two courses are programming and not CS courses.
For instance, 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"; The second appearance in "Lec-10,11" in the form of graphs of the running time of algorithms - constant, linear, log, ...etc. None of these require a whole knowledge and mastering of High School Math; they just need a simple search on google to understand what it means by cubic root. In terms of the graphs, the function of graphs in Mathematics in general is to express some Mathematical ideas visually. So, by only looking to the graphs the learner could see what constant mean visually and so on, also something that doesn't require mastering High School Math.
MIT, the university that is issuing the course is an engineering university. In fact the Bachelor Degree of Computer Science at MIT is a Degree in Computer Science and Engineering 4. Hence, MIT assumes that their freshman students should have High School knowledge not only of math but of physics also. This is one of the reasons of why MIT is known for its hard admission exams and the way they filter their freshmen students.
Every higher education institution has a way to filter students through entrance examinations - SAT, MCAT, ...etc. The reason that this is the case in higher education is because every college and university have a finite number of places for students - a situation which online MOOC education doesn't face - and the growth in higher education made an intense competition for seats 5. Therefore, filtering out students doesn't have any meaning in MOOC settings. In fact the opposite is true. MOOC is intended to everyone that is willing to invest their effort and time regardless of their background. Even if they didn't attend High School all together.
6.0001 Course itself - Not MIT, The University - doesn't require High School math as a prerequisite 6. The text-book recommended by the course itself is a book by Professor John Guttag, in the preface of the book there is no mentions to any prerequisite. In fact Professor John said "The book is aimed at 1) readers with little or no prior programming experience who have a desire to understand computational approaches to problem solving, and 2) more experienced programmers who want to learn how to use computation to model things or explore data." This second target audience of the book "The experienced programmers" are required to know, in Prof. John words "[what is required is] 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." This requirement is needed for "experienced programmers" taking a second course in computer science, which is 6.0002, a course not in OSSU curriculum, and is not an introductory course. Professor John's book contains the material for teaching 6.0001 & 6.0002 7. MIT in another place recommended prerequisite for this course 6.0001, which is in their words "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. 8" The keywords here is "Some Topics" and "Is not required to understand the majority of the content". Does this means that MIT recommended pre-calculus and hence High School math as prerequisite for 6.0001 ? Yes. Does this mean that their is no other way to learn 6.0001 than learning the entirety of High School math ? No, because MIT themselves put this phrase "Is not required to understand the majority of the content" for a reason, to say, don't get discouraged to take this course if you don't have pre-calculus and hence High School math because "[its] not required to understand the majority of content". Is it then necessary to not take 6.0001 course until finishing High School Mathematics ? My answer is no. You can take the course and google the two concepts that will meet you.
What can be modified in the current OSSU Curriculum ?
I propose to move Mathematics Prerequisite to later in the Curriculum, to either directly before Core Programming, or to Directly before Core Mathematics. None of the Core Programming courses in fact require any Mathematics as a prerequisite. And prerequisites on Courcera, and in every other online learning platform or course, has to be said explicitly.
In fact the reason to take High School mathematics is because it's a prerequisite for calculus. But than we must ask why we learn calculus in Computer Science, or at least why before Discrete Math ? Some would answer, because Calculus is a prerequisite for Discrete Math. This is what MIT recommended, but again, MIT is engineering university with an intense competition for the number of students allowed to study at MIT.
This whole organization of Mathematics Curriculum in USA, and by implication in most of the world is questionable. Arithmetic, then Geometry, then Pre-Algebra, then High School Math (Pre-calculus), then calculus and discrete mathematics, is not the only why to learn mathematics; most of the people can learn Mathematics to even Higher Mathematics (Graduate level Mathematics) starting from Discrete Math or what we call "Math for Computer Science"9. However, this argument is not the scope of this discussion. I just put it forward for the sake of showing that what we take for granted about learning math is not necessary the best way to learn it. this is not my personal opinion, this is the opinion of many great mathematician, for instance, George Pólya, and The Mathematician and Philosopher, Imre Lakatos (3 for more details).
Final Words
I'll Finish with a quote from the philosopher, educator, encyclopedist, and popular author Mortimer J. Adler that i think is directed to anyone who is responsible for providing education for people especially MOOC education.
"We are on record as holding that unlimited education opportunity-or, specking practically, education opportunity that is limited only by individual desire, ability, and need- is the most valuable service that society can provide for its members. That we don't know how to provide that kind of opportunity is no reason to give up the attempt.10."
Footnotes
Summary section, At OSSU GitHub page.. ↩
For instance, giving two approaches for learning Operating Systems in a great detail. ↩
Li, Y., Schoenfeld, A.H. Problematizing teaching and learning mathematics as “given” in STEM education. IJ STEM Ed 6, 44 (2019). https://doi.org/10.1186/s40594-019-0197-9 . ↩ ↩2
https://catalog.mit.edu/degree-charts/computer-science-engineering-course-6-3/ . ↩
Robinson, K., & Aronica, L. (2014). The element: How finding your passion changes everything. Penguin Books. eBook. p. 208. ↩
https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/pages/syllabus/ . ↩
Preface, In. Guttag, J. (2021). Introduction to computation and programming using Python: With application to computational modeling and understanding data (Third edition). The MIT Press. eBook. ↩
https://mitocw.ups.edu.ec/courses/intro-programming/ . ↩
https://youtu.be/pTnEG_WGd2Q?si=3ujHbp_VTLQd2FjZ . ↩
Adler, M. J., & Van Doren, C. (1972). How to read a book (Rev. and updated ed). Simon and Schuster. p. 30. ↩
The text was updated successfully, but these errors were encountered: