Rediscovering the Passion, Beauty, Joy, and Awe: Making Computing Fun Again
The following post is a summary of the talk by Dr. Eric Roberts given at UMBC on April 24,
Unfortunately, I did not have time to edit the notes and post it sooner. I strongly feel that this is an important subject and academia, industry and schools need to work together on this issue. I think many readers of this blog are equally passionate about this topic and would be interested in Dr. Roberts talk. The PPT of the talk is available here.
Here is my attempt to highlight some key points:
Dr. Roberts addresses how we can make undergraduate education fun ... Again. ("In case it is not already" -- Marie DesJardins). During his role as the chair of the ACM education board, Dr. Roberts has been greatly concerned about this topic.
Int his talk he mentions that there is a paradox in this field: computing industry offers the best employment opportunities, salaries yet the enrollments have gone down -- almost by 50%. And in some schools it is probably as high as an 80% decline. The statistics are alarming more so in women and minorities. If you compare Computer science with fields like Biology, where there is an overproduction of degrees you find that on an average one must do two postdocs before applying for a tenure track position! In Computer Science -- the demand is increasing but the supply is really low resulting in 2/3 people being hired from outside (not outsourced but people hired from non-CS backgrounds).
Dr. Roberts addresses some reasons for this paradox:
1) Fears about long term economic stability of employment
This is primarily due to the perception of lack of jobs and fear of outsourcing. However, looking at data about offshoring -- there are more jobs despite outsourcing. Number of computer programmers hired are going down but computer scientists and software engineers is up.
Dr. Roberts suggests an interesting thought experiments: Say you are a company that has the option of hiring $200k/year engineer in USA / a $75k/year engineer in Bangalore... both very talented and have the potential to generate 1M -- what do you do?
Most people would think that the reasoning would lead to hiring just the 75K/year engineer in Bangalore however, if you wear the HR hat you would try hire them both!!! Since they both have the potential to generate the 1M /year -- which is profitable.
2) kind of exposure to computing at elementary and secondary school levels
AP test in computer science use to be based on pascal in '94, CPP in 95 and JAVA in 2003. The problem is that it is difficult to find good teachers for advanced programming languages. Additionally, computing skills are becoming harder to teach and teachers dont have the resources to keep up. Moreover the education board views computing courses as "Vocational" almost at par with shop courses. Finally schools are evaluated in terms of math and science performance alone. So good computer science teachers are being moved to teach math/science classes. Finally the schools only care about teaching kids toools!! Like...powerpoint!! WTH?
3) image of work in the field -- no longer seems fun?
"Has anyone considered the possibility that it is not fun anymore?" -- Donald Knuth Oct 11, 2006
What are the reasons? Is it because there is no chance to make a legacy? Has programming is becoming harder? Or is it because startups are too fragile? Dr. Roberts points out that people would rather be Dilberts boss than Dilbert...perhaps this explains why economics and management branches are most popular.
4) University curriculum is broken somehow
However, there is a variation in enrolment by time and in some cases enrollment seems independent of curriculum. Student decide not to take before they even look at the curriculum! And those who do land up taking the classes love the courses... but decide not to major in cs anyway. This is quite alarming.
Here are a few of Dr. Robert's suggestions on what we can do:
- Realize that the problem is beyond just the university level
- Press govt and industry to improve computing education
- Emphasize the fact that programming is a key to the field
- Restore passion...and make computing Fun!
From my own perspective, this problem is not just here, in the US educational system but seems to be a greater worldwide issue. For example, in India, a small Montessori school that my mom helps to run, is trying innovative methods to involve children in computer education from early on. However, the lack of resources, good computer programming teachers has been a great challenge for them. Additionally, when it comes to primary level education, there arent may educational tools that introduce children to computing. Kids are extremely fast with learning powerpoint, getting online and playing games and it would be great to build software that could teach children basics of programming in a fun and exciting way. These tools need to have a way in which children can take something "tangible" back home to show to their parents and give them a sense of actually building something cool!