Gaurav Sukhatme is Dean’s Professor and Chairman of the Computer Science department at the USC Viterbi School of Engineering. Under his leadership, since 2012 the Computer Science undergraduate program has nearly doubled in student enrollment, and the graduate program has grown considerably. All programs have been revitalized with the creation of numerous new courses and structural reforms. These changes have come in concert with the recruitment of 16 new faculty in the department.
Gaurav sat down with Sanjay Srivastava, CEO of Vocareum, to discuss challenges in addressing increased demands for computing education and how technology platforms like Vocareum can help universities better serve this opportunity.
Gaurav Sukhatme, Profesor and Fletcher Jones Chair in Computer Science and Executive Vice Dean at USC
“Computing is a discipline that now affects every other human endeavor and the central role of computing is now irreversible … Using Vocareum to set up large submissions for homework, assigning graders to their submissions, publishing scores – all that was just much easier than what we were using in the past, so the faculty loved that.”
The easy answer is that there are a lot of jobs in computer science. Students realize that a degree in computer science makes them very desirable to employers. The deeper answer is that computer science has become increasingly democratized in the last few years. That means a very large number of people can participate and contribute, and the barrier to entry has been considerably lowered compared to previous years.
If you look at what computing used to look like 20-30 years ago, hardware was not ubiquitous. Programming classes were not ubiquitous. Today you can go online and teach yourself to start writing code on a browser. That level of access to computing and to being able to contribute to building real products and solutions is unprecedented.
I don’t think it is temporary because computing is a discipline that now affects every other human endeavor you can think of. It doesn’t really matter whether you are interested in healthcare, in the environment, in social justice, in consumer products and retail, or entertainment. The central role of computing is now irreversible. This is a fundamental shift. Computing embodies where modern engineering is going. We have a phrase for this at USC – we call it Engineering+. Progressive computer science departments will, over time, expand their offerings so that they will train people who are experts in some particular domain to be experts in computing and computer science as well. We call it cross-disciplinary today, but I don’t think over time it will be seen as cross-disciplinary. It will just be seen as something that is necessary. At USC, we’re already doing this in our computer science offerings.
At USC, we are in the early stages of a conversation about creating an undergraduate degree that trains students in computer science education. Graduates will have core skills in both computer science and in education. We want to enable a new corps of people who can teach computing at the K-12 level. This is a huge need – the K-12 space is going to grow rapidly – and while it’s going to be big in the US, it’s going to explode in India, China, and parts of Africa. There are a few billion people who need to be brought into the computing literacy fold, so it’s a tremendous scaling challenge. It can be done and mechanisms will evolve to meet the need. If you think about the fact that education was not universally available to most people in the world just two- or three-hundred years ago. The advent of universal primary schools enabled that to happen almost everywhere in the world. There are still parts of the world where this is not as ubiquitous as it should be, but it’s near universal. Even with the technology of the time (i.e., books), it was possible to scale up the enterprise of reading, writing, and basic arithmetic – something that 500 years ago was available only to very few people. Computing for everyone is definitely achievable, particularly with modern tools.
I think part of the reason tools have not emerged for making teaching more efficient is that it has been a relatively small-scale enterprise till recently. In the last three or four years, on many leading American college campuses, the computer science major has been in the news. It’s the big shift in student interest that’s suddenly putting a spotlight on the need for such tools. The industry has some catching up to do, but I’m confident that it’s going to happen soon. Before, it was relatively easy for professors to manage their small-size classes. They didn’t really need too much by way of tools, but that has now obviously changed.
I think some aspects of technology are going to be for what I call the bookkeeping aspect of education. One aspect of education is certification. Educators provide students with a certificate that says they have competence in a subject, whether this is at the K-12 level, at the university level, or at the community-college level. Associated with that is necessarily some bookkeeping to manage things such as tests and assignments and grades. Those have to scale up and be easy to use, and over time, they’ll get better.
The more interesting challenge is giving students the ability to customize and navigate the educational offerings. This is where modern advancements in machine learning will play an important role in helping students create personalized trajectories to navigate the subject matter they are seeking to learn. Different students will have different starting points, different preferences and varied learning styles. Technology will ultimately – in a data-driven fashion – allow each student to personalize his or her individual learning path. There is a lot of work to be done in this area.
Scaling the material itself is easier. We could have the material available for a million people, or a hundred million people. In fact, if you can make it available cheaply enough and the network bandwidth is there, in theory, everybody has access to the material. But that is not enough. It’s the ability to navigate the material and personalized tools that help in the process that’s going to be important.
We have a tremendous diversity of computer science programs at USC. We offer four distinct bachelors degrees for students in computer science. In addition to a degree in computer science, we have one that is a mix of computer science and computer engineering (joint with the Electrical Engineering department), a third that is a computer science degree focused on game development (joint with the Interactive Media and Games Division in the USC School of Cinematic Arts), and a fourth degree that is a mix of computer science and business (in cooperation with the USC Marshall School of Business). At the master’s level, we offer nine different computer science MS degrees. All are customized depending on areas of interest. We also offer three MS degrees in Informatics. In the Fall of 2016 we will begin offering an undergraduate add-on major in Informatics. This is designed for students who already have declared another major at USC and want to additionally study computing. It’s designed to be added onto another major that the student is already studying. We have figured out how to get this done in four years.
This is distinct from doing a minor in Computer Science while majoring in another field (something students at USC can do today) and double majoring in another field and Computer Science concurrently (also something students at USC can do today). It’s a new option in between these two existing options. In addition, we offer a variety of classes and minors in Information Technology (distinct from Computer Science or Informatics) for students who want computing literacy, but don’t necessarily want to study the theoretical foundations of Computing. In the old days, if you wanted to learn computer science, your only option was to get a four-year degree in computer science. Now at USC, there are more than a dozen options that you can choose from. This allows students to tune their level of engagement. We’re really addressing this head on at USC, both in the Computer Science department in our Viterbi School of Engineering and in collaboration with other units on campus.
A major success of Vocareum for us has been with CS 101, which is our programming class for students who have not programmed before. We were very impressed with Vocareum. All the professors who used it immediately said that one word came to their mind: easy. Faculty are very busy with teaching, and they want to focus on teaching. They said that Vocareum was very easy to use and was a straightforward platform. Setting up large submissions for homework, assigning graders to their submissions, publishing scores – all that was just much easier than what we were using in the past, so the faculty loved that. It had some positive ramifications for scaling. It freed them to think about other things. Our experience is very positive.
You already have the capability for auto-grading, and we are looking forward to using it. We still use graders to manually look through the code, but this will allow more time to be focused on teaching. The automated code checking is definitely on our list to try.
In terms of advancements and integration of additional tools in your platform – maybe some of these are already done – some of the suggestions from our faculty include integrating a Python shell into your platform, so that students can directly use it, expanding toward more publishing and authoring in addition to all the elements you already have (auto-grading, plagiarism detection, analytics, etc).