Making college curricula accessible

Many months back, I happened upon WikiSyllabus, BeyondSyllabus, and one of the creators Akhsay. WikiSyllabus is “open-source Wikipedia of university syllabi” where college curricula are stored in easy-to-use markdown files. I happened to chat with Akshay, and I understood the vision of what they are trying to build - and I realized that it was radically different from the possibilities I imagined when I first saw the project. But let me take a step back and understand the problem.

In the traditional educational system, e.g., an engineering college, which most members of the FOSS community experience, education feels static. Knowledge is with you, without helping you understand that knowledge changes or that the students can have a hand in improving knowledge. Most college curricula feel rigid, with strict lecture plans, reading material, and so on, instead of feeling fluid, making the students feel like they can shape the curriculum as they improve their understanding of themselves and the subjects. There are constraints that the traditional education system cannot break free of - the primary of which is addressing an “average” student who isn’t real, without leaving sufficient space for the spectrum of student interests and capabilities.

With the rise of interest in Free and Open Source Software, more and more students (and faculty) are feeling the need to contribute to FOSS. In some cases, we’ve heard of faculty members mandating that FOSS contributions be made as part of a course curriculum. This is counterproductive as students will inevitably game the system by putting in the least amount of effort when making a contribution. This hurts everyone - the student hasn’t learned anything, the FOSS community is worse off, and the teacher didn’t achieve what they aimed to do (or maybe they turned a blind eye).

@mrugesh pointed out in a community call yesterday that spammy contributions from Indian students to FOSS projects have become a significant problem. Projects like ExpressJS have to deal with a significant number of spammy PRs from students of Indian origin, painting the overall Indian FOSS ecosystem in a negative light every October (thank you, Hacktoberfest). @Shree_Kumar pointed out that this is the least of the problems with our education system, but I do agree with @mrugesh that the issue is getting out of hand, hurting the morale of the FOSS maintainers and the naive students.

Is there a way to solve both of these problems - the fact that college curricula feel rigid and the fact that students want to but aren’t ready to contribute to existing FOSS projects? What about a FOSS project that they create or one their seniors/college created that they could contribute to? What about a project that frees up their college curricula from rigid and unchanging PDF files into accessible markdown files?

I wanted to run an experiment with different groups of students, and my opportunities arrived from a college in Nandyala and another in Hyderabad. In both cases, there was an interest in learning Git & GitHub, a common interest among most college students. I used this excuse to introduce the following framework

  • a GitHub repository (and org) is created for the college. See, for example, FOSS at ACE · GitHub and RGMCETxFOSS · GitHub
  • GitHub Pages are enabled on the GitHub repository, making it easy to create a website. See, for example, FOSS at ACE and My Docs
  • Mkdocs is configured in the Git repo, so markdown content could be easily converted into a static site
  • CI/CD is setup in the GitHub repository, so every time a PR is merged Mkdocs builds and deploys the static site

Git and GitHub are now taught within this scaffolding

  • Students create a fork and a new branch of the curriculum Git repository
  • On a new branch, students create a folder structure, emulating a college curriculum. See, for example, cse-ds at RGMCET with cse-ds > N-sem > Course-ID.md
  • Students copy over content from the PDF curriculum file into a markdown file. For now, they just add text, but after a few cycles, we can start teaching them the basics of markdown as well
  • They commit, push the branch, and open a PR with their changes. Installing mkdocs on their machines and checking that the changes work as expected locally is ideal, but that requires additional setup that we don’t always have
  • PR gets merged, ignoring major or minor issues, and the updated website is checked to see the changes introduced in the PR
  • Rinse and repeat. Please note that the first iteration of the cycle could be performed purely from the browser - fork the repo, create a branch, create a file/folder, add contents, create a commit, open PR can all be done from the browser, meaning that the students have to do ZERO setup ahead of time
  • Future iterations can introduce Markdown basics, e.g., defining tables, a gentle introduction to Mkdocs itself, the Git workflow (branches, commits, merges), and so on

Like I mentioned earlier, I tried this twice - once with a group of 100+ CSE Data Science students at the RGMCET college, Nandyal, on October 8 and with 5 CSE students from Ace Engineering College, Hyderabad, on October 18. It could have been better, but I personally think that the experiment was a success because 87 PRs were opened by RGMCET students in the GitHub repository, and all 5 students from ACE opened PRs. Unfortunately, activity in the repositories stopped after my sessions, and I’ll try to work on that problem in the near future.

WikiSyllabus has seen good success in receiving regular contributions from people, but instead of focusing on their own college curricula, the project is attempting to make every college curriculum accessible via a single Git repository. In my personal opinion, this isn’t the best way forward. Not because of any scalability concerns with the technology, but because it takes away a sense of ownership from students from various colleges and consolidates it into a single place. Wouldn’t it be better to have a different org/repo for each college (the smallest meaningful unit)? You might argue that the smallest meaningful unit is a specific degree (CSE, EEE), but I disagree because the repository needs to enable students from across different degrees to come together under the same umbrella, very much like a physical college. Creating separate repos for each degree means that the students will happily become blind to work happening in other degrees/departments/curricula.

Even for students/clubs that take this project seriously, they should be able to make the PDF curricula accessible in such a way within a semester. What then?

First-order work

  • Course reading material doesn’t only have to be an entire textbook, but instead a list of articles, talks, and YouTube playlists that expertly communicate the relevant topics. This causes a deviation from the “official” curriculum, but, understandably, such information will never end up in an “official” curriculum
  • Course assignments could now be extended by the students themselves to include easier and advanced problem sets, for students who need them
  • Course curriculum itself could be changed/extended to include concepts that are necessary but aren’t introduced in the “official” curriculum. Curriculum revisions happen infrequently, but technology is moving rapidly

Higher-order work

  • Identify and replace proprietary software usage from courses, e.g., Tableau for Data Visualization, Microsoft SQL Server for Databases
    • if no alternative FOSS project exists for proprietary software, maybe consider creating one?
  • Create entirely new courses that don’t exist in the “official” curriculum, e.g., self-study courses, that provide a structured path to interested students who are willing to pursue them on their own time

There’s a significant risk here - reputational risk for the college by allowing a publicly visible, student-maintained curriculum to deviate from the official curriculum. Even though it isn’t officially recognized by the college, making this content accessible via markdown/static sites could mean that this becomes more visible on search engine rankings. One way to manage this risk is by not moving onto the first-order or higher-order work until sufficient trust has been built up with the college faculty/administration regarding the effort. This is easier said than done, but we (FOSS United) have the benefit of only choosing to work with students and colleges that already have trust in us.

Please note that this is also heavily inspired by the work of @vysakh_premkumar and the NITC FOSSCell Wiki.

At the end of the day, the goal is to create a digital commons that every student in a college can participate.

Future experiments

  • I’ve mentioned this a few times to @ansh , @Suslime, and others and I intend to nudge FOSS Clubs next semester to consider this approach when teaching Git, GitHub in their respective colleges
  • Create a full-fledged guide that an instructor can use to teach Git & GitHub in this way, e.g., how to configure GitHub Pages, GitHub Actions workflow code, Mkdocs setup, etc

Happy to hear thoughts/comments/feedback/criticism regarding the experiments and the overall idea.

4 Likes