ossu / computer-science

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

Stanford's Databases is back! #718

Closed s7oev closed 4 years ago

s7oev commented 4 years ago

I believe I read a while ago that the current DB course - Relational Database Systems from UNAM - was added only because of Stanford's Lagunita closure (please correct me if I'm wrong). Furthermore, @waciumawanjohi has opened a proposal to start using University of Helsinki's DB course.

However, the Lagunita course is apparently back! Or, to be more exact, will be back - it is in the process of being uploaded to edX. Currently, only 6 out of 14 courses are there, but on each course it's explicitly mentioned that "As of April 2020 we are still adding courses to edX; we expect this process to be complete by early May 2020"! While it will apparently take a bit more time, as it is mid-May already, I expect that soon all 14 will be online!

So, I propose to just go back to Stanford's course, as it's quality has been proven. Here's the link to edX with the current 6 courses: https://www.edx.org/course?search_query=stanford+databases

waciumawanjohi commented 4 years ago

This is indeed the plan once the course is fully available. (e.g. https://github.com/ossu/computer-science/issues/695) Are they splitting one course into 14 courses?

Once the full course is available, I'll be happy to merge in a pull request referencing this issue. (i.e. somewhere in the commit message it says Resolves #718)

Also, just for clarity, issue #709 is not a proposal to start using that course, so much as a proposal to get the course in a state that it could be considered.

s7oev commented 4 years ago

Are they splitting one course into 14 courses?

Originally, it was a single course, yes, when it came out as a MOOC first in 2012 (+/- 1 year); however, it has been split into 14 mini courses for a long time (it was this way on Lagunita too). Basically, each week is a separate mini course. I assume the reason to do this is because Lagunita was granting free certificates, and some people may have wanted to focus only on basic SQL, others also on more advanced SQL, third on the XML part of the course, etc.

Once the full course is available, I'll be happy to merge in a pull request referencing this issue.

Great! I'll keep an eye on edX. Since there obviously shouldn't be 14 separate links, and I think it is unlikely they make a "wrapper" page for all 14 courses as they had on Lagunita (which must have been possible only because it was their own platform), what do you think is a good way to link? The search page is what comes to mind first, as will have all 14 courses and nothing else; but one negative is they will be out of order. So maybe the search page + a link to the recommended order?

kielejocain commented 4 years ago

For reference if any others are curious as to the state of these 14 courses, the description of each of them has the full set organized in the "What You'll Learn" section. Courses added (as of 2020-05-26) are checked off, and I numbered areas and courses to help compact their repetitive Suggested Pathways section. Seems to me they might want to refactor their areas based on their pathways, but I'm just the messenger.

Edit: Everything is up and refactored! See my next comment for details. Much more sensibly organized now.

The Courses - by Area

1. Data Models

Suggested Pathways

Practical Relational Databases and SQL

Basic: 1A and 2B Extended Version: add 5A, 5B, and 5C Comprehensive Version: add 5D and 5E

Practical Relational Databases and SQL with UML Design

Basic: 1A, 4B, and 2B Extended Version: add 5A, 5B, and 5C Comprehensive Version: add 5D and 5E

Relational Databases and SQL: Foundations and Practice

Basic: 1A, 2A, 2B, 4A, 4B Extended Version: add 5A, 5B, and 5C Comprehensive Version: add 5D and 5E

Semistructured Data

Basic: 1B, 1C With Querying: add 3A With Querying, Comprehensive Version: add 3B

kielejocain commented 4 years ago

It looks like they have completely refactored the sequence into now 5 courses. They align much better with three of the four paths that used to be outlined (my last comment); this should make the discussion around integrating the course much more clear.

New Courses (and topics covered)

Implied Paths

Practical Relational Databases and SQL

Basic: Course 1 Extended Version: add Course 2 Comprehensive Version: add Course 3 Makes much more sense now.

Practical Relational Databases and SQL with UML Design

As above, with a small UML bit from Course 4 (this may not make sense)

Relational Databases and SQL: Foundations and Practice

Basic: Courses 1 and 4 Extended Version: add Course 2 Comprehensive Version: add Course 3 Makes much more sense now.

Semi-structured Data

Basic: Course 5 (first two topics) Extended Version: (add third topic) Comprehensive Version: (finish Course 5)

krishnakumarg1984 commented 4 years ago

So, a new entrant into OSSU should start the Stanford course right?

waciumawanjohi commented 4 years ago

Comparing the CS2013 with @kielejocain breakdown of the courses, I believe the proper route is to require Course 1, 4, 5.

Some of the topics required are: • Data modeling • Conceptual models (e.g., entity-relationship, UML diagrams) • Spreadsheet models • Relational data models • Object-oriented models (cross-reference PL/Object-Oriented Programming) • Semi-structured data model (expressed using DTD or XML Schema, for example)

These are addressed by Databases: Relational Databases and SQL Databases: Modeling and Theory Databases: Semistructured Data

I will say, it feels like there are missing topics that need coverage. In particular the IM/Database Systems Core-Tier2 Learning Outcomes:

  1. Explain the characteristics that distinguish the database approach from the approach of programming with data files. [Familiarity]
  2. Describe the most common designs for core database system components including the query optimizer, query executor, storage manager, access methods, and transaction processor. [Familiarity]
  3. Cite the basic goals, functions, and models of database systems. [Familiarity]
  4. Describe the components of a database system and give examples of their use. [Familiarity]
  5. Identify major DBMS functions and describe their role in a database system. [Familiarity]
  6. Explain the concept of data independence and its importance in a database system. [Familiarity]
  7. Use a declarative query language to elicit information from a database. [Usage]
  8. Describe facilities that datatbases provide supporting structures and/or stream (sequence) data, e.g., text. [Familiarity]