ossu / computer-science

🎓 Path to a free self-taught education in Computer Science!
MIT License
170.6k stars 21.55k forks source link

physics requirement #668

Closed ghost closed 4 years ago

ghost commented 4 years ago

The prerequisites section says that core cs assumes that the student has taken high school physics. It's not clear what courses in core cs require physics. Am I correct in thinking it's for calculus?

I see mention of a basic physics requirement in advanced systems with a link to khan academy. Does one need to learn everything from khan academy physics to meet that basic requirement? It seems like khan academy physics covers quite a lot.

https://www.khanacademy.org/science/physics

(I find myself in a unique position of knowing high school math but with no physics knowledge)

Thanks!

waciumawanjohi commented 4 years ago

This is a very good question!

I can't think of a course in the Core curriculum that uses high school physics. Nor is physics directly mentioned in the CS2013. I did a scan of Nand2Tetris, which was the course I thought most likely to leverage physics. But there is no mention of physics in those materials either.

I'll leave this issue open for comment for a few weeks. If by the end of the month there isn't a comment pointing out a dependency on high school physics in the core classes, we'll delete physics from that line in the prerequisite section (e.g. Core CS assumes the student has already taken high school math and physics, including algebra, geometry, and pre-calculus.)

Alaharon123 commented 4 years ago

Worth noting that ABET does require 6 credits of lab science (equivalent to two semesters with one including lab) and since Physics II: Electricity and Magnetism is on ossu, albeit as part of an elective path, it would make sense to require Physics I as well to fulfill the rest of that requirement, but that would be for if ossu ever adds the gened part of a degree. Doesn't make much sense to require physics when it's not needed for actual computer science as the degree currently stands imo

aryzach commented 4 years ago

I would argue that, even if ABET requires 6 hours of lab science, requiring Physics I (mechanics) doesn't align with the spirit of this curriculum, and even if you take a physics MOOC, I wouldn't think that would qualify as lab hours. I've taken Nand2Tetris, and it abstracts the physics away (both a nand gate and flip-flop (clock) are given as primitives). I think the current position of Physics I, in the notes of advance systems, is appropriate, and that crossing out assumptions of high school physics would be a good call. (I know somebody with a full CS degree who's never taken any physics, too)

waciumawanjohi commented 4 years ago

Just a few more data points: I can't identify any state that requires physics to graduate. Used this report: High School Graduation Requirements: What are the state’s course requirements for high school graduation? Note that "Physical Sciences" includes physics, but also geology, chemistry, etc.

Also interesting to note that in 2016 EdWeek pointed out that 2 in 5 US schools don't even offer physics. Link They point out that the schools not offering physics are smaller, some back of the envelope calculating based on the average school sizes suggests that 1 in 6 US high school students isn't offered a physics course at their high school.

Alaharon123 commented 4 years ago

Is Electricity and Magnetism even on the degree for its own sake or is it just there for the sake of MIT 6.004? If you replace MIT 6.004 with Berkeley CS 61C (course, lectures) or Carnegie Mellon 15-213 (course, labs), you can get rid of the physics requirement altogether (alternatively, the Cornell course linked on edX as an alternative to learning Electricity and Magnetism doesn't require physics knowledge either).

It's kind of weird that either one would be in advanced systems though. Typically there's one pc architecture course that's required (often based on Computer Organization and Design) and a more advanced one that's elective (often based on Computer Architecture: A Quantitative Approach), and that is indeed the case with MIT, Berkeley, and Carnegie Mellon, but with these courses as their required one. 6.004 is MIT's required course, and 6.823 appears to be their advanced elective. For Berkeley that's CS 61C and CS 152. And for Carnegie Mellon that's 15-213 and I think 18-447.

Then again, 6.004 is more engineering-heavy (like a typical second optional course) than a regular PC Architecture course, so maybe it does make sense idk. Food for thought I guess (meaning I put way too much effort into this comment to not post it even though I have no definitive conclusions to make)

waciumawanjohi commented 4 years ago

I wouldn't be surprised if we removed the later physics courses. Nor would I be surprised to see a change to CS courses in the Advanced courses in general or advanced systems. We'll want an RFC before doing that. There have been a number working through the earlier parts of the curriculum, I'm sure Advanced Systems will come up in due time.

waciumawanjohi commented 4 years ago

Thanks for pointing this out @jamesfx2000 The only way OSSU gets better is when students become contributors, pointing out the ways that the curriculum can improve. Good to have you in that club!