Why everyone should know programming
You need not be a doctor to be able to put a band-aid on a cut. But it seems to work a bit differently in the world of computer science. Most people tend to assume that everybody with an interest in programming wishes to become a computer scientist. It is precisely this thought that Charles Severance (a.k.a. Dr Chuck), Clinical Associate Professor at the University of Michigan School of Information, is trying to change. At the university, he teaches various technology-oriented courses including programming, database design, and web development and has been using the medium of Coursera to ensure that programming can be learnt by all. Over 1.6 million students from around the world are taking his courses, nearly19 per cent of whom hail from India. His aim is to teach everyone the basics of programming computers using Python. Today, he arguably runs the largest and most successful Python class in the world.
Python gets a new life
Speaking to Business Today, Dr Chuck says, "Python is a programming language that is 25 years old and was originally designed for young people to learn programming. This was the easiest possible programming language that was also powerful. It was not successful for many years as it was considered too easy." However, things changed.
About 10 years ago, he says, there was a renewed interest in data mining and all of a sudden it was important to analyse data and Python turned out to be really good at this and the number of people that were needed in the data mining field were just way more than what computer science could produce.
"So, there was this demand for people who could write Python. Computer science departments realised that Python helped their struggling students learn programming better. So, Python became popular as the first programming language with its best application in data-oriented things."
It could make a difference to anybody from any field. Giving an example from sales, he says, if there is a person in sales who looks at data every morning to see who performed best and spends considerable amount of time on it, he can do it in minutes with the Python programming language.
Chuck has written a number of books including 'Using Google App Engine,' and 'Python for Informatics.' His research field is in building the learning management systems such as Sakai, Moodle, Blackboard, ANGEL, and others. In the mid-1990s, he was the host of Internet: TCI, a television talk show about the Internet that ran for several years on the TCI cable system. Mention television and he smilingly says, "When I was young, about 16, I wanted to be an actor and my mother told me to be an engineer and then an actor. So, when I had an opportunity in television, I jumped at that chance."
From literature to lawyers
Dr Chuck wants to help everybody other than computer scientists to learn programming. "Anybody, be it a person handling sales or even a lawyer, will at some point need programming therefore, programming can help you in every field."
That is one reason why he wants more classes for non-computer scientists. "We do have classes for them, but they are taught by computer scientists in the same way they teach in the class for computer scientists. Not everyone may want to be a computer scientist. If you have taken psychology, you should take one programming class, if you were taking literature or if you are a lawyer, you should take one programming class too. But that class should not be a computer science class because a lawyer is never going to be a computer scientist and we need not teach them for a career in computer science."
The rigour of a computer class
Dr Chuck did acknowledge the importance of computer scientists for computer science indeed is a serious business, and needs rigour of a different kind. "If there are programmers who are going to write the code for self-driving cars, it gets serious because even a small coding error may cost life. We need highly talented and well-educated people who have deep understanding of lot of things or we shall never be able to build self-driving cars." So, in computer science it is necessary to have a high level of standard for a computer scientist and a small fraction of people are capable of doing that.
The learning curve
Ask him about programming languages and the learning curve on that path to getting to higher levels, he says, many schools tend to make mistake of teaching Java first. Chuck's programming steps i.e. the path to increasing complexity begins with learning Scratch first, followed by python, HTML, CSS, SQL, Java script, Java, algorithms and data structures, operating systems, theory of data bases, hardware, hardware architecture, machine language and performance, and Artificial Intelligence etc. "It just gets bigger and bigger."
Taking control of your data
Speaking about the direction of research in computer science, he says, it is towards enabling people to take control of their data. "If you look at privacy issues, laws are moving in that direction like the GDPR (The General Data Protection Regulation) in Europe. The trend is towards a distributed Facebook. So, instead of putting our pictures on Facebook, we have a PoD in the cloud, which is encrypted and no one can see it. You put your pictures in your PoD and you can share them with your friends through a Facebook-like application, which only you and your friends can see."
It is an interesting problem, he says. "Right now, people are dependent on Facebook and many may not be able to organise their life without it. That will be so until something else comes up and people can begin to take control over their data and still be able to organise their life. At the moment, that is an interesting trend of people trying to take control of their data and protecting it."
What does it mean for the programmers and the challenges it throws up?
Dr Chuck explains that the problem really is about building fully encrypted environments where we can have your data and software running on someone else's hardware (read: in public platforms), but they cannot see your stuff. That is a great research area. He sees parts of it already happening, but he noted that encrypting all the data and decrypting it should be done in a way that people running your data cannot see it.
"This has performance and cost implications and we are yet to create a fully encrypted environment that can store data, and run software in a way that people who own the hardware cannot see it. That is a computer science problem and a great challenge to solve."
Tech & teaching
On his research focus, he says, it is in the area of building better technology to teach people. "I build these apps for every assignment that are fun and engaging and plug them into my Coursera classes and also into my campus classes. What I want to build is a framework that is good enough so that others may want to build these same tools."
He further explained if someone has to build an app on an Apple phone, he or she may have to go to Apple and then they elaborate the rules to write an app to show up at the Apple store. "After following the rules, you submit the app to the store and it shows up. My job is same but is meant for educational applications so that those apps can easily plug into teaching and learning environments."