computer-science icon indicating copy to clipboard operation
computer-science copied to clipboard

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

Open bradleygrant opened this issue 2 years ago • 13 comments

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 the beginning course of the program, Python for Everybody, OSSU links to the course creator's Py4E homepage, which contains links to several different versions of the course. People are commonly confused as to which version of the course should be chosen, how to get started, and why some versions are asking for money when OSSU is supposed to be free. There exists insider knowledge stating that the course should be taken directly on py4e.com, but this is not communicated unless people ask in the Discord channel.
  • In another early course, How To Code, OSSU links directly to an EdX enrollment landing page which asks for payment to go Verified. The course paywalls a portion of the course content, confusing people into believing that they are missing out on a substantial portion of the course. There exists insider knowledge stating that the paywalled content can be ignored safely, but this is not communicated unless people ask in the Discord channel.
  • In a core course, Operating Systems - Three Easy Pieces (OSTEP), OSSU links to the course creator's course homepage. While informative, this page is not easy to navigate, and it is easy for people to miss the step-by-step list of assignments and the supporting material which assists with those assignments. Further, at least one unofficial source links to the course creator's textbook homepage, which resides at the same website and is easy to mistake for the course homepage. It is less easy to navigate, and confusingly contains some (but not all) of the material for the course.

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:

  • all OSSU curriculum users are on the OSSU Discord,
  • all OSSU Discord users are aware of information in the pinned posts, or
  • the subset of OSSU Discord users that are aware of pinned posts are actively checking the pinned posts for information crucial to the successful completion of the course.

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:

  • It provides a central location to contain and maintain course information.
  • It standardizes the course - allowing students to know exactly what work must be completed to finish the course, and where to find all the relevant resources.
  • It can improve student experience, positively impacting student outcomes and program retention.
  • It provides for the archival and persistence of inside information. As students complete a course, they tend to hang around the Discord for a few weeks, then either leave OSSU entirely or concentrate their attention on another course. In either instance they take their valuable inside information with them. In popular courses some of this knowledge is perpetuated; in many later courses with few users, much of this inside information is likely lost until rediscovered by another student.
  • It provides consistency of information, so that the information provided to anybody who asks represents the best information known to all in OSSU.

Potential disadvantages would include:

  • The mere existence of a syllabus/README does not guarantee that people will willingly use it. We can mitigate this by making the pages a) lean, b) useful, and c) easy to navigate. Once they are developed, we can reconfigure the OSSU course page to link to the README instead of directly to the course, ensuring that all new users at least see it once.
  • This will permanently increase the amount of development and maintenance time on the curriculum as a whole. Approximately 30 README pages will need to be created and maintained. We should crowd-source this effort by creating a standard template and encouraging people to make PRs during and after their time in the courses.

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:

  • leanness -- the syllabus should contain only the information needed to aid in course completion, with only minimum narrative. Instructions should be terse and easy to follow -- "go here, do this".
  • usefulness -- the syllabus should contain all of the information needed to succeed in the course, along with any supporting documentation or alternate sources.
  • ease of navigation -- course material should be laid out in a linear, easy-to-follow manner. Lists and tables should be utilized wherever appropriate.

The syllabus should include the following information at a minimum:

  • A statement of course objectives, to provide motivation for completing the course. This should be no longer than 2 sentences.
  • A statement of course outcomes, or a listing of the specific competencies in CS2013 the course is thought to cover/satisfy.
  • A list of immediate prerequisites and a statement of the expected duration of effort.
  • A Getting Started section, which shall contain:
    • A link to the website, "start" page, or lander where the course resides.
    • "Turn-by-turn" directions for new student onboarding: choosing which section of the course to sign up for, how to sign up, whether or not payment information is required, and anything else required to enroll.
    • Include any assurances that the complete course is available for free, or any time durations users should understand before starting ("free access expires in 6 weeks, so don't sign up until you're ready to work", etc.)
    • A short list of 1-2 alternate locations for accessing course content (if applicable) with a clear statement that these locations are OPTIONAL.
  • A Course Materials section, which shall contain either:
    • A link to the Course Materials page of the course website, or
    • A list of all lessons in the course, with a link to each individual lesson or the beginning of each chapter/section.
    • Also, a list of any Supplementary Materials (course videos, recitation sections, optional lectures, etc.) This could include a short, 1-line note motivating why a student may want to use these supplements ("recitation videos provide guided homework practice!", etc.)
  • An Assignments section, which shall contain either:
    • A link to the Assignments page of the course website, or
    • A list of all assignments in the course, with a link to each individual assignment.
  • (Stretch Goal) A Roadmap To Completion checklist section, which could optionally replace the lessons list in "Course Materials" and the assignment list in "Assignments". It may look like:
    • "Perform the steps in Getting Started"
    • "View and take notes on Lessons 1.1-1.4"
    • "Complete Homework 1, located --here--, as discussed in --this-- recitation video"
    • "View and take notes on Lessons 2.1-2.5"
    • etc.
    • "Complete Final Exam and submit for approval"

Alternatives:

  • Keep the status quo. This alternative involves the least effort in the short-term, but students will continue to experience the highest level of confusion while using OSSU course materials.
  • Expand the OSSU curriculum page to contain a subset of this information. I feel this is the worst option because the curriculum page serves as a course catalog, and it is already monolithic. Further, it is the official "landing page" for new users of the program. Adding more information on this page would likely make this page even less useful.

bradleygrant avatar Nov 30 '21 21:11 bradleygrant

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

bradleygrant avatar Nov 30 '21 21:11 bradleygrant

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.

johnwesely avatar Nov 30 '21 22:11 johnwesely

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.

MattRieke avatar Dec 07 '21 02:12 MattRieke

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?

waciumawanjohi avatar Dec 07 '21 07:12 waciumawanjohi

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?

Alaharon123 avatar Dec 07 '21 18:12 Alaharon123

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...

waciumawanjohi avatar Dec 07 '21 23:12 waciumawanjohi

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.

bradleygrant avatar Dec 07 '21 23:12 bradleygrant

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 avatar Dec 08 '21 00:12 waciumawanjohi

@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)

waciumawanjohi avatar Dec 08 '21 00:12 waciumawanjohi

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.

johnwesely avatar Dec 08 '21 04:12 johnwesely

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 :)

bichotll avatar Jan 04 '22 18:01 bichotll

Propose withdrawal of this RFC for lack of support.

Comment Period: 2 weeks, thru 27 July 2022

bradleygrant avatar Jul 13 '22 23:07 bradleygrant

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.

waciumawanjohi avatar Jul 16 '22 02:07 waciumawanjohi

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

bradleygrant avatar Sep 20 '22 04:09 bradleygrant