Closed Spidey43 closed 3 years ago
Each course has a frequently asked questions section which includes the following:
What background do I need? The series of courses does not assume prior knowledge of any specific topics, however a solid computer science foundation -- a reasonable amount of programming, as well as knowledge of basic computer science theory -- will make the material more accessible.
(emphasis added)
This is a database course from Stanford, so it is instructive to look at the requirements for the database course offered at Stanford. CS 145 (syllabus here) requires CS 103 ("an introduction to discrete mathematics, computability theory, and complexity theory") and 107 ("work from the C programming language down to the microprocessor to de-mystify the machine").
I do not think that the prerequisites should be reduced.
In terms of drawbacks, there's often an advantage to teaching students a bit of practical knowledge (here's how to use SQL) before diving into theory. That practical experience can sustain interest. That may be why Coursera puts the practical SQL course first (and Stanford CS 145 starts by teaching SQL as well).
I am interested to see how OSSU contributors want to balance these concerns. Should we start with the practical or the theoretical? Please weigh in!
about prerequisites: there's a bit of complexity with deciding the prerequisites, what i said was based on my experience in "modelling and theory" and currently going through "SQL". however going through CS 145 syllabus i see where you can need core programming and much more, if this RFC was still open when i finish "SQL" and "Semistructured Data" i will say if they are self-contained like "modelling and theory" so then CS 145 prerequisites would be meant for the other 2 courses that are not part of OSSU, and if someone finished them already it would be helpful to mention what they saw in terms of prerequisites.
I'm not sure that the current Stanford prerequisites would apply to a stand-alone Lagunita course -- and we should consider that the on-campus prerequisites may be in place for reasons other than strict pedagogy (routing students through a program efficiently, for instance).
There's certainly nothing in this Databases course that requires deep knowledge of C or scraping bare metal.
Database courses such as these are frequently taught to business analysts with no formal computer science experience -- in some cases SQL is the only programming language they know. I think the key concepts of data schema modeling, UML, even relational algebra don't actually require specific knowledge of "computability or complexity".
The course discusses some aspects of database schema design but spends most of its focus on use and interfacing. It specifically doesn't touch operations or implementations.
As far as course placement, why don't we parallel-track them?
about the order of relational algebra and SQL, it's very interesting that i don't see relational algebra anywhere in CS 145, did i miss something ?
My reason for bringing up the Stanford course is to get a sense of what is meant by a reasonable amount of programming, as well as knowledge of basic computer science theory. Is that achieved by Intro CS, or Core Programming? (I'm not advocating adding Nand To Tetris to the prereq! 😁)
about the order of relational algebra and SQL, it's very interesting that i don't see relational algebra anywhere in CS 145, did i miss something ?
I took the Design Theory lectures to be the best mapping from the online to the in-person course theory.
Side note: (as long as we're talking about the database courses) Data Modeling is a core topic in our guidelines, while relational algebra falls in an elective topic.
I took all of these courses and more! Did any of you take them all? I took them when they were 14 mini courses (equivalent to all 5 edX courses). The order was very different.
Personally I think neither the prerequisites nor the order matters (or helps!). Having reached Core Applications is good enough maturity for the course. "Core programming" sounds reasonable. The contents of the courses are fairly independent of each other, and of the rest of the curriculum.
Having said that, if the instructor recommends, it's a good idea. I started with RA myself. Took theory later. SQL after that. But it really doesn't matter, or help (trust me).
It's been 3 weeks since this RFC was opened and no new recent comments. I'm going to close this issue now.
Findings: Ordering: The courses can be taken in any order, but as pointed out, the videos of the current first course suggest students start with the current second course. Seeing no objections Prerequisites: There is some agreement that the current prerequisite of core programming is reasonable.
@light-666 will you make a pull request switching the order of the two database courses in question? When you do, I'll merge it in!
Problem: taking the relational algebra material in "Modeling and Theory" is highly recommended by the instructor before taking SQL material
quoted from the instructor:
source at 5:58
the benefits are mentioned in the instructor words and i don't see any drawbacks. if you see any, please mention them below.
another small point: i don't see any reason for core programming being a prerequisite, there's no material needed other than probably intro cs and logic for "Modeling and Theory" because everything in it is formalized, but i still don't see it mandatory, just a few symbols that you can google but a comfort with logic can make the material more accessible. reducing the prerequisites to intro cs can make the curriculum a bit more flexible.
proposals: