ossu / computer-science

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

RFC: Curriculum Enhancement - OSSU-created Course Syllabus/READMEs #976

Closed bradleygrant closed 2 years ago

bradleygrant commented 2 years ago

Problem: The OSSU curriculum provides a listing of courses and a link to the course homepage, but this is often not sufficient information to complete the course, and students often remain unaware of resources that can help them succeed.

Duration: 6 weeks; January 11, 2022. (Extended due to various overlapping holiday seasons worldwide.)

Background: Some students have voiced concerns that the course material is not convenient to access and/or doesn't tell the full story of how to complete the course. A few examples:

In each of these circumstances, completion of the courses is made more difficult due to lack of information about how to use the materials available. Such problems could be mitigated by the development of a course README or syllabus for each class in the OSSU curriculum.

Some of this is currently mitigated by the existence of the OSSU Discord, and indeed the individual Discord course channels hold pinned posts conveying much of this information. However, in my view we should not assume that:

Further, there is precedent around the notion that the OSSU Github page should be the one, true official repository of OSSU course information. For that to be the case, in-group knowledge gained by current students should be communicated to the community-at-large via the official channels. This enables those official channels to stand alone.

The OSSU curriculum page provides high-level information about every course in the curriculum, similar to a university's course catalog. It is probably not the appropriate place to communicate a lot of course-specific information.

The solution I am proposing involves creating a place for OSSU to communicate course-specific information, similar to a university's course syllabus. The OSSU curriculum page could then link to the syllabus for each course. Such a page could also be considered a README for the course.

Advantages would include:

Potential disadvantages would include:

Proposal: Provide a README file comprising a course syllabus for each course in the OSSU curriculum.

In order to maximize added value, each syllabus should prioritize, in the following order:

The syllabus should include the following information at a minimum:

Alternatives:

bradleygrant commented 2 years ago

Credit to @johnwesely for bringing this to my attention and inspiring this RFC, and for his work on an initial syllabus mockup for review & comment

johnwesely commented 2 years ago

I wrote up this sample ReadMe this morning for OSTEP. It is missing several of the requirements listed above and might be a little on the fat side. However, because this course is not a MOOC and is ultimately student directed, it may be best to have a more robust readme.

MattRieke commented 2 years ago

I support this RFC. I recall that the link for Py4E course was changed from py4e.com to py4e.com/lessons to reduce confusion and funnel students toward the website version of the course. There are still questions regarding where to take this course, so clearly greater reinforcement is needed.

I do not think it should be assumed that users on the OSSU Discord regularly/thoroughly review the content of the CS GitHub page. I imagine that there are a subset of Discord members who have never seen the GitHub page prior to joining the server. I agree that the GitHub pages should be stand alone official sources for course information, however, the Discord server should strive to mirror the course specific content when possible. Dedicating a pinned message for each course to mirror and point to the suggested READMEs should suffice. This is more of a server suggestion rather than a suggested amendment to your RFC.

I would also like to see a Code of Conduct section added to each README that specifies any pertinent information regarding what can/can't be shared for each course.

Great write up for OSTEP John! I agree that more MOOCish courses should be leaner in their syllabus write ups.

waciumawanjohi commented 2 years ago

I like this, there's a strong case laid out for how this will benefit OSSUnians. My concern is already anticipated in the writeup:

Approximately 30 README pages will need to be created and maintained.

If we have 30 syllabi written up I'm not very concerned about the maintenance (famous last words!). But I am concerned that the proposal could be accepted but few syllabi are written.

Might I make a proposal? The comments and upvotes so far suggest that community members like the idea. Let us proceed as if that is a valid indication of community acceptance. Let's create a syllabi branch. In that branch, each course in the curriculum should have a link to its syllabus. When the branch has complete syllabi for 1/2 of the courses, we'll consider the RFC accepted and merge the branch in to main.

Thoughts?

Alaharon123 commented 2 years ago

That sounds like letting great be the enemy of the good. Each syllabus that is added would add value to the curriculum. Why only merge if at least half the courses get syllabi?

waciumawanjohi commented 2 years ago

letting great be the enemy of the good

I wouldn't categorize "We said we'd do X and couldn't achieve half of X" as being good...

bradleygrant commented 2 years ago

I'd like to propose a different course of action.

We could (and should) prioritize the high-traffic introductory courses. Basically, everything in Intro to Programming, Intro to Math, and Core Programming. Doing so is going to help the most people the fastest, and we can get quick feedback on whether or not course syllabi are helpful/used. If they don't seem to make a difference, we can abandon the concept without spending the time implementing all of them. At the same time, it's not going to take us covering half the courses to get half the signal we need.

That's still ten-ish courses to cover. And if we want to make changes to a template, I'd rather iterate over a small set and widely deploy the changed template, rather than write all of them and then re-write all of them.

waciumawanjohi commented 2 years ago

That works for me. We'll create a syllabi branch, populate it with a syllabus for the courses in Intro to CS, Core Programming and Core Math (essentially the curriculum through Math for CS). We already have a page for OSTEP. Once those are written up, we'll consider the RFC accepted and merge the branch in to main. Then over the next 1/2 year or so we can judge the reception to the change. If it's not working out (when asked, students don't indicate that they are using them; contributors are not interested in writing additional syallbi) we can roll back; if the template needs changing a new RFC can introduce it.

How does that sound?

waciumawanjohi commented 2 years ago

@johnwesely Have you seen this discussion? https://github.com/ossu/computer-science/issues/926 Highly relevant to your syllabus. In fact, when I first saw this RFC I thought, "Didn't we say we would do this awhile back?" (Speaks to both why I think this is a good idea, and why I want to have a number of syllabi complete before committing ourselves to a long term effort)

johnwesely commented 2 years ago

I actually saw that after I did my write up. Spam's writeup is much better than mine, and is probably a better choice OSTEP.

bichotll commented 2 years ago

Just came here to say that I recently started my "computer science" with OSSU, and didn't know that Discord had pinned and useful resources. I think that at least a link to in the README and an explanation that would be already so useful :)

bradleygrant commented 2 years ago

Propose withdrawal of this RFC for lack of support.

Comment Period: 2 weeks, thru 27 July 2022

waciumawanjohi commented 2 years ago

It's worth noting that we already have the first course page. spamegg argued convincingly that we shouldn't lose the very helpful information that was collated on OSTEP (referenced above).

So the seal is broken. I do not think that this should compel contributors to make a coursepage for every course. But contributors should feel free to create a course page if they feel the information necessary to succeed in a course is not easily found.

bradleygrant commented 2 years ago

This is not a community priority at this time. Withdrawing RFC as proposed.