Reimagining computer science at the university

I’ve really been enjoying this last semester at school. My life has been in a place where I can devote a lot of time to it, and since I’m only part-time, it allows me time to do some deep work and get into the flow. I’m still undecided about my plans for after graduation, but I’ve been thinking about opportunities in academia. An email last week promised a free masters program as part of a Teacher in Residency program, and I signed up for a seminar. My brain was filled with daydreams of teaching computer science courses. Turns out the program was for primary school educators, so I passed, but now, another type of opportunity has sprung up that has got me thinking.

One of the science departments sent out a request for a developer. They’re using MatLab, but they are lacking the programming skills to do some task and put out the call to hire someone to develop a GUI wrapper for them. I plan on responding later, although I’m pretty sure the pay won’t be anything to get excited about. However, it did get me thinking about the larger problem, of intra-department requests like this, and about a potential use case.

GitCoin was the first thing that immediately came to mind. GitCoin is a bounty system that allows funders to place Ethereum rewards on certain GitHub issues. Devs can claim an issue, send a pull request and get payment after the issue is closed. I did one for the TensorTrade project, and getting that reward was very exciting. I was getting paid to code!

Perhaps a similar system could be built on top of a university’s GitLab system. GitCoin has a number of repositories in their GitHub, but I’m not aware if the core site functionality is all there. Departments, having placed their source code in a repository, can create their own issues, fund them, where they’ll be placed in the bounty feed.

One of the primary benefits of GitCoin, of course, is that the payments are implemented via Ethereum. Given the UX difficulties of managing MetaMask or something similar, it may still be too early for widespread adoption of such a system, but it does open the door for some sort of university token, perhaps tied to course credits or something.

Thinking back a bit to the conversations around The Future Is Faster Than You Think, I’m reminded that one of the biggest opportunities in the next few years will be around the education system. Perhaps there’s opportunity around using GitLab as a replacement for Blackboard? For all it’s strengths, I’ve never heard anything good about it from Professors, and it’s editing system is complete garbage. My university’s computer science department currently maintains a set of class materials that exist outside of Blackboard, made up of HTML pages for each course that get cloned each semester and torn down as students rotate out. I can envision a system, where the course materials are made available via repo, cloned for each semester as GitLab pages, and students complete their course work by forking the course repo and submittting pull requests back to the central repo. Build pipelines could be used to test student code, and students would be encouraged to refine the course materials themselves, correcting typos or clarifying materials.

There is one potential downside, however. Classes that still rely on traditional testing, where the student is not given access to all information, may have some problems with this model. One of my programming courses depended on the student to submit code which would be graded by the professors unit tests, which were kept secret. I don’t have a solution to this problem exactly, but for classes where the information doesn’t need to be kept secret, this could be an awesome solution. There are already potential workarounds to this information-hiding problem, as well. Private repos, and class groups could be used to deal with these concerns. A group of projects could be used to represent various modules of a course, and forks of the master repos could be made available after quizzes or tests.

This could be a very exciting development in how computer science education operates. I have a meeting with a professor tomorrow for a special project that I’ll be helping with, and hope to introduce this idea and see if it has traction.

Leave a Reply

Your email address will not be published. Required fields are marked *