I was going to write this blog post on people’s concerns about Khan Academy, but found many of the concerns to be unfounded or disproven through empirical research. Many of the concerns are based on misunderstandings of how Khan Academy works. This could have turned into post about debunking the criticism but that did not seem very interesting.
Instead I decided to discuss alternatives to Khan Academy for someone who wants to learn the basics of computer programming.
Khan Academy has a section on computing that includes the topics ‘computer programming’ and ‘computer science’, among others. What is the difference you might ask? People often conflate computer programming with computer science, so I am going to explain the difference. Computer programming is how to program using a programming language while computer science is how to develop algorithms (solutions) to problems that work efficiently on computers. An algorithm is essentially a series of steps to solve a problem on a computer, preferably efficiently. For example, an algorithm might sort information. A computer science course might have students study sorting algorithms in detail, whereas a computer programming course is more likely to just teach how to use the sorting features of the programming language without gaining a deep understanding of them. Computer science courses teach a deep understanding of how to select the optimal algorithms for problems or how to develop them, whereas computer programming courses will usually just focus on simpler problems that are easily solvable using tools in the programming language with less focus on the efficiency of the solution or understanding it at a deep level.
Alright, back to the purpose of this blog post. Computer science is super cool, but what alternatives to Khan Academy are there for someone who wants to learn the basics of computer programming that are somewhat similar to what Khan Academy offers? I looked for alternatives that were interactive like Khan Academy and offered a reasonable amount of free access that was not a temporary free trial. I narrowed down my search to Codecademy and Alison, which I thought met the criteria, but after further research found that Codecademy charged for too many things that I considered basic access and Alison had way too many intrusive ads and was not very good overall. There may be paid alternatives to Khan Academy that are good, but I am not going to look at those. So there are no alternatives that I can find that meet my criteria.
Since I have run out of anything to say about alternatives to Khan Academy computer programming content, I will switch to discussing something completely different: what it means to be a non profit organization. I think this is relevant for this course since we are discussing a number of online educational services, service that are sometimes non-profit organizations, and I have seen some misunderstandings of what it means to be a non-profit organization.
I am not going to cite this information since it can easily be looked up on Wikipedia or elsewhere. A non-profit organization (NPO) is provided tax-exempt status because it has been assessed as providing public benefit. NPO income is not taxed, including donations which are usually tax deductible for donors. NPOs often have a mix of paid staff and volunteers, but can also have just one or the other. NPOs will usually pay their executives competitive salaries. For example. Sal Khan of Khan Academy makes $800,000 USD a year in an organization that has a total annual revenue of 133 million USD. NPOs may charge for products or services. For example, TED, which is an NPO, charges $6000 USD for attendance to its main conference. NPOs can make profits, but these profits are expected to go back into providing public benefit rather than the organization’s shareholders, leaders, or members.
In conclusion, Khan Academy has a great section on learning the basics of computer programming that does not appear to have any viable alternatives that are as interactive and free, and NPOs can and do charge for products and services and may reward their executives with competitive salaries.
There was a great interview on CBC at the beginning of May with the author of Artificial Unintelligence: How Computers Misunderstand the World. Despite the title, it has a lot to say about the coder bias that (human) programmers unconsciously inject into their work, and the profound ramifications that bias could have in artificial intelligence. She also does a great job of demystifying what artificial intelligence is.
http://www.cbc.ca/radio/spark/spark-396-1.4646907/new-book-exposes-technochauvinism-1.4648846
Thanks Jason!
Hi Sean!
Thanks for the link. I listened to it. It was good that she explained the difference between general AI, which doesn’t exist yet, and narrow AI (machine learning).
Machine learning often uses neural networks. Here’s a video that does a good job of explaining how neural networks work and manages to keep it relatively simple: https://www.youtube.com/watch?v=aircAruvnKk