Closed joshmhanson closed 4 years ago
I like this idea in general. A future goal would be to have an assessment that would let students know if they can skip a course. (CLEP has an Algebra, Precal and Calculus class) If we are listing electricity, we should list high school physics.
On math, I suspect linear algebra should sit alongside calculus and probability in Foundations math, with only discrete math in the required math courses.
Python programming should receive more (not less) emphasis than Stanford's CS101.
We'll help students evaluate if they should take a Foundations course by not only listing its pre-reqs, but also what courses it prepares students for.
Whether to put Calculus and up in Foundations or Core depends on whether the goal is for Core to be everything in a cs degree besides for gened or if it's to only include cs specific courses. If it's the first, most cs degrees assume you already know precal and start with Calculus so that would be where ossu starts from. If it's the second then Calculus would be in Foundations.
Sidenote: I don't know how practical this is, but you could consider making something like University of Buffalo's flowcharts. They let you mouse over courses to see prerequisites and courses that use it as a prereq.
Hello!
I just want to say that I like this idea a lot. I was looking for guidance on the best resource to learn/refresh the necessary high school math without knowing what is relevant and what is not. Much beacause I was not sure what the American curriculum demands. I am following this site, https://www.mathsisfun.com/links/curriculum-high-school-algebra.html, but then I am like, is it enough? Is it too much? So, having some guidance is really useful.
Also, Khan Academy is great, but bandwidth is really expensive where I live, so whenever I can, I avoid videos.
Thank you!
I love the idea of the Foundations page. Back in the 70's, I studied Engineering at Georgia Tech. Dropped out. In the 80's, I studied Computer Science at Rutgers. Dropped out again. At both, calculus was a required course. I think the Core Math section should section should include Single Variable Calculus and Multivariable Calculus to reflect the both structure of a degree program, the importance of these courses to our studies and the effort needed to understand and pass them. Personally, I hated Calculus but loved Linear Algebra. Perhaps we could link each course to a page or pop-up that lists things like alternatives, testbooks, sites for practice and places to go for help to keep the main page and the foundations page cleaner?
Thanks for everyone's feedback!
@waciumawanjohi
On math, I suspect linear algebra should sit alongside calculus and probability in Foundations math, with only discrete math in the required math courses.
It should, yes, but currently we use LAFF which uses a lot of programming exercises written in a style similar to how one writes linear algebra programs in C, etc. Linear algebra could go in Foundations if we used a more abstract resource with no to little programming (Strang's materials probably are like this).
Python programming should receive more (not less) emphasis than Stanford's CS101.
I'm not sure what you're saying here. Are you suggesting we don't use Stanford CS101? Or add more Python courses? What's your rationale? (Not challenging, just asking for clarity)
We'll help students evaluate if they should take a Foundations course by not only listing its pre-reqs, but also what courses it prepares students for.
Reverse dependencies are a good idea!
@Alaharon123
Whether to put Calculus and up in Foundations or Core depends on whether the goal is for Core to be everything in a cs degree besides for gened or if it's to only include cs specific courses. If it's the first, most cs degrees assume you already know precal and start with Calculus so that would be where ossu starts from. If it's the second then Calculus would be in Foundations.
@CamLV
I think the Core Math section should section should include Single Variable Calculus and Multivariable Calculus to reflect the both structure of a degree program, the importance of these courses to our studies and the effort needed to understand and pass them.
Thanks for your input. I understand your perspectives, but I want to point out that even though I'm proposing to move Calculus, et al., off the Core CS page, it's still required for everyone who hasn't already taken it and would be clearly marked as such in the relevant sections.
Regarding geneds: I'm trying to solve a short-term problem specific to OSSU CS, but general education requirements (as commonly, and rightly, required by CS standards committees) isn't just an OSSU CS problem; it's an OSSU problem. Geneds are, by definition, required of everyone at a university, so it should be solved at the OSSU level. Maybe someone else can step up and create a general education curriculum that we could then refer to.
@chinguelessi
Also, Khan Academy is great, but bandwidth is really expensive where I live, so whenever I can, I avoid videos.
Not having an answer for this situation is an oversight of OSSU and I apologize for that! But as you can probably tell from above, I want to start including text-based resources alongside videos for people who prefer (or need) this format.
On math, I suspect linear algebra should sit alongside calculus and probability in Foundations math, with only discrete math in the required math courses.
It should, yes, but currently we use LAFF which uses a lot of programming exercises written in a style similar to how one writes linear algebra programs in C
If Linear Algebra is in the core curriculum only because the only acceptable course uses programming, we should ensure that students know which courses rely on LinAlg and that their selected path through the curriculum may not require the course.
I'm not sure what you're saying here.
The wording sounded to me like CS101 was being emphasized more than CS1301. Not a big deal.
@chinguelessi https://courses.edx.org/courses/course-v1:ASUx+MAT117x+1T2016/course/ is really good especially for returning students. It tests your knowledge and then only teaches you what you need to know. It also checks every so often to make sure you've mastered topics so you don't get left behind with something you don't really understand. It starts off with a knowledge check. If you start after that with less than 15% in your pie, then you're not ready for college algebra yet. If you start with more than 85%, you can skip to Pre-Calculus. It's all text and pictures so it should take less bandwidth than videos. Of course, this is only relevant if you're ready for College Algebra. If you get less than 15%, then you still have the same problem. I've heard the OpenStax textbooks, which start all the way from pre-algebra, are good, but I haven't used them so ymmv. You could probably take the quizzes on Khan Academy to figure out where you're holding and download a pdf (free) or buy a physical copy (paid) of the appropriate textbook.
@hanjiexi gened for ossu is definitely doable. Using the SUNY requirements as an example since I'm familiar with them, Mathematics is already covered, there are plenty of online courses for learning a language, social sciences can be some course on Computers in Society (that's what it is in my college), Arts can be an introductory html/css course (I'm taking that right now), I think there's such a thing as an online physics lab course. The hardest part, other than actually choosing the courses (requires knowledge of courses from a variety of fields so that's actually pretty hard), would probably be finding a college level online english course. Not sure how that would even work.
@waciumawanjohi
If Linear Algebra is in the core curriculum only because the only acceptable course uses programming, we should ensure that students know which courses rely on LinAlg and that their selected path through the curriculum may not require the course.
That's a good point. It will be very inconvenient to have a section in Core Math that isn't actually needed except in some very specific domains. From a brief glance and trying to keep all the proposed changes in my head, linear algebra is only needed for one course in Advanced CS (LAFF Programming for Correctness) and several courses that I proposed to move to Domains (e.g. graphics, machine learning).
I have some invariants I hope to maintain for the top-level sections, but without mapping all the proposed changes I don't know yet how this will play out:
My basic idea is to model a four-year undergraduate CS degree, where this progression is possible:
So with the above design (for which I, like everything else, hope to get feedback), that means Linear Algebra would likely end up in Foundations or Advanced CS. If it goes in Foundations, the resource we use can't depend on advanced programming knowledge. If it goes in Advanced Math, we would need to show that Advanced Math is a viable subject in and of itself for year 3 or 4, and that such material is depended on by at least one Domain.
(I might be overreaching on the amount of work that is viable to do before v9 lands. I want v9 to arrive by the end of the year.)
I have used our wiki to create a draft for what the new Foundations page could look like: https://github.com/ossu/computer-science/wiki/Foundations-draft
Notes:
learn
, that means we are recommending this resource as the one to use when learning it for the first time.review
, this means that you should use it if you have already learned the material but need to review it, perhaps because you learned it a long time ago.practice
, this means it's a resource meant for when you have already learned it but need more exercises.review
and practice
, but we should pick better individual resources for these two activities.)prepare
, this means the material isn't dense enough to really learn from (it may just be video(s)), but it helps to prepare the student for whatever comes next. This is the case with Essence of Linear Algebra.help
, that means this is the resource we're recommending for those who need help with the material.I will proceed to format the rest of the curriculum pages in this way unless there is anything seriously wrong with it.
Looks good. Should probably also have a flowchart to give an overarching view of everything.
Foundations draft updated with some narrative and a more diverse set of resources (mostly to ensure we have both text and video coverage of most topics).
I think it's in it's final or near-final state. I wasn't sure what to do about the annoying dual-track Linear Algebra, but I think this is just a necessary evil. We may have other topics in the curriculum that have these dual-tracks.
@Alaharon123 yeah, this is worth doing once the whole revision is done!
Looks good, but it's unclear why Applied Linear Algebra is here rather than in extras/readings. Why would one want to reference this incomplete text?
I want to ensure that there are text-based resources listed alongside video-based resources for people whose bandwidth is expensive. I don't know how this will play out yet, but I'm thinking that the separate extras/readings page might be removed in favor of keeping all high-quality materials grouped under the relevant topic, with explicit recommendations given about which resources are worth using under which conditions.
Applied Linear Algebra, incomplete though it may be, is geared towards beginners with only a high school math background. The other free text, by Jim Hefferson, assumes college level calculus just like the Strang course. So both groups of resources are grouped according to their prerequisites. I do probably need to add a note about the incompleteness of Applied Linear Algebra compared to the course it sits alongside.
At some point I also need to figure out just how much of linear algebra exactly is required for which later courses. It may be that some courses need a lot more and some need much less, so the tracks could be re-organized later according to their reverse dependencies. But that's not going to happen anytime soon as I don't have the time.
Ok I made a mistake. I saw Immersive Linear Algebra in the text and then Applied Linear Algebra in the table and didn't realize they weren't the same thing. What I meant to ask was why Immersive Linear Algebra is put there if that's something for OSSU to keep an eye on rather than for students to keep an eye on. However, I am now realizing that this is because you are using the wiki to have notes for yourself and are probably planning on transferring this all to the readme when 9.0 is ready.
I see that you added a note afterwards stating that Applied Linear Algebra does not cover everything it should. If that's because of my comment, I was mixing it up with Immersive Linear Algebra (if that's a thing anyway then I guess I'm glad that my mistaken comment led to something positive). Sorry for the confusion. The original text was clear, just Applied and Immersive look similar enough that I had a brain fart.
As I described in #438, I am thinking about pulling most non-CS topics out of Intro/Core/Advanced CS and putting them in a separate section called "Foundations". Courses from this section would only be required when someone doesn't have the relevant background, and the curriculum would still begin with Intro CS. Students would only take what they need from it, when they need it. The prerequisites section of each course would then contain a hyperlink to the relevant section in Foundations.
Rough outline of how that would play out, assuming we were to adopt other changes I've suggested recently:
Foundations
Complete only those sections as directed by the prerequisites of a CS course you're about to take.
K-8 math
Select the appropriate grade level from Khan Academy Math.
High school math
Single-variable calculus
Multivariable calculus
Probability
Electricity
Modern technology
Intro CS
Core CS
Core math
Linear algebra
Discrete mathematics
(etc.)
Advanced CS
Advanced machine systems
(etc.)