Hello there, thanks for visiting this post and showing interest in the Revival project! It has become apparent to some native programmers that the Khan Academy Computer Programming (KACP) section has been having issues ever since Pamela left. Some issues are outlined in the following paragraphs, as well as brand new features that should make a big difference.
To fix these problems, a dedicated group of former and current KACP users have come up with a list of solutions to the problems. To make these become a reality, this request needs your support! Please read through the following paragraphs outlining the biggest issues, or use the “Too Long Don't Read” (TLDR) for quick skimming.
TLDR: Allow submissions of Pull Requests, turn into community project for everyone, support ES6 syntax, better Oh Noes error coverage.
The Live Editor and its version of Processing.js has many bugs (there's a ton of issues on GH) and shortcomings. Many of the bugs could be fixed with ease, even by volunteers, but KA is no longer accepting pull requests on GitHub. KA includes the Live Editor in their list of Open Source projects, but won't accept help. This needs to change!
If KA turned the Live Editor into more of a community project that welcomed community requests and encouraged their more advanced members to try to help with it, we're confident the bugs would be fixed much quicker and shortcomings addressed. KA has a wealth of experienced and advanced programmers using their site, and taking advantage of that seems logical. Reviewing these changes wouldn't be a problem if a few developers set aside some time to make sure the changes worked and are beneficial.
Lastly, Oh Noes guy needs to have better coverage of errors, that make more sense to the coder. This is especially true when working with object methods. Make sure there is a "show me where" option for all errors.
TLDR: New coding courses, demand is high, need new Computing Lead, teach how to use real world tools.
Many learners find that real world computer programming is quite different than programming on KA. They are missing many real-world skills, and to remedy this KA should add more courses on other languages like C, Python, and Java, as well as a course on ES6, and keep these courses updated with the times. The KACP section of the site could now teach people how to make basic desktop, mobile, and web apps, something they can do professionally!
The demand for new courses has been high, one of the most requested features on the KA Help Center. This graph shows a random sample of 57 requests just from the Help Center:
This obviously means there needs to be someone who makes the tutorials, helps build new Live Editors, and monitor the courses. This would have been Pamela Fox, but she left as we all know. If KA is serious about investing in programming and wants to make new content, they need a new Computing Lead. (Jett, a member of the Revival, is very interested in this position.)
The new curriculum could also include basic articles that teach skills like using GitHub and a real text/code editor (Sublime, VSC, Atom, etc). We say basic because the purpose of this would just be to teach them the basics so that they can decide what kind of development they want to pursue, and then recommend off-site next steps and courses for them to pursue that type of development (Udemy, Udacity, SoloLearn, etc). That way they're set up for success in the real world of development, and have had a chance to decide what they want to pursue through basic tutorials on KA.
TLDR: Bring back contests and Golden Winston badges. Allow learners to submit contest ideas and appoint a trusted group of users to judge/create new competitions. Appoint/hire a new Computing Lead.
A really great way to revitalize KACP would be to bring back the official contests. This would add healthy competition to the community, and encourage people to make the highest quality programs they can. There would be more of a balance for webpage and SQL contests though, so that all the courses are regularly studied instead of just one. Golden Winston badges would be awarded to contest winners.
Allowing the community to submit contest ideas would be an efficient way to always have new, fresh contest topics, and a select group of KA-approved programmers and curators would pick one. Then the community would submit their contest entries like normal, and perhaps the same group would vote on winners for beginner, intermediate, and advanced brackets. This would be a great way to spark some creativity and excitement.
Speaking of this group of programmers, there should be a new volunteer program that allows trusted, veteran KACP users to become contest judges and creators, who can even give the Golden Winston badges to the winners. As long as the right people are chosen, we think this program would be a very effective addition.
Not much would be different from how Pamela once held the contests, only thing is that there needs to be someone who takes her place as Computing Lead, or at least someone who can do what she did. This could be a trusted volunteer or maybe a real paid employee.
TLDR: Group to pick great programs, better motivation to make great programs, featured list badge.
Add a Featured list for outstanding or very creative programs, regardless of votes. This would be curated by another group of KA-approved programmers, or maybe the same group who makes contests.
They would add truly outstanding programs that are original and innovative, and the list would be chronological. This would give more recognition to great programs and programmers, as on the Hot List the best doesn't always rise to the top. This would give the community motivation to create one of the next featured programs.
Like the Hot List's "1000 Kelvin" badge, there should be a new one like "shining star" or something for featured program creators.
TLDR: Add tags and ratings to stop voting abuse.
The current system of votes/time is not a very good method of assigning places on the hotlist. As demonstrated by subscription pages, votes/time can be abused by “famous” programmers in order to secure a high spot on the hotlist, whether purposefully or not. With ratings though, this could be fixed since ratings will better symbolize program quality.
There should be tags for different types of programs (Games, Graphics, Web pages, Tutorials… etc) that users can add to their program. This will allow programs of different varieties to get noticed, since there will be Hot Lists for each of the categories. Here is an example of this. The recent, featured, and top lists should be all tags combined.
TLDR: Replace the current voting system with ratings.
Currently, when a KACP user thinks a program is good, they vote it up. When they think a program is great, they vote it up. When they think a program is absolutely incredible, they vote it up. This leads to the decent programs receiving just as many votes as absolutely incredible programs.
This problem can be fixed by replacing the old voting system (which only allows users to express that they like or don’t like a program) with a rating system, to better determine program quality. One way this could be implemented would be a 3 or 5 star rating system: users could select 1 star for okay, 2 stars for decent programs, and 3 stars for good programs, 4 stars for great programs, and 5 stars for amazing programs. This would cause users to think before they rate, instead of instinctively clicking the vote-up button.
Thanks for reading through all that, means a lot! If you agree with any of the ideas or have some of your own, please let us know in the comments below. Also, vote up the post if you like the proposals, votes on Zendesk mean a lot!
Link to our brainstorming document, a lot more info is there: