Menu Close

Case Study: University of Southern California​

CSULB: Four Top Strategies for Elevating CS Classes, Part 1

Gaurav Sukhatme

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.”

In this case study

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.

Increased Computer Science Enrollment

message-square-01 (1)

What is driving the increased enrollment in computer science?

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.

message-square-01 (1)

Do you think the interest is caused by some fundamental shift in demand for computing literacy, or is it a temporary phenomenon?

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.

message-square-01 (1)

As a society, we are getting closer to mandating that computing literacy be introduced at a very early stage, but a lack of qualified teachers in K-12 seems to be the biggest barrier to accelerating this introduction. What role do you think leading computer science programs like USC can play in bridging that gap?

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.

Role of Technology

message-square-01 (1)

I remember you mentioning very early in our discussion that computer science teachers need tools to address the challenges of scaling. I come from the electronic design industry where there was a multi-billion dollar vendor base focused solely on making engineers successful. While there are tools to make administration more efficient or even tools for students, why hasn't an industry emerged focused on making computer science teachers successful?

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.

message-square-01 (1)

What role should technology play in addressing the needs of computing education?

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.

Current Approach

message-square-01 (1)

What are some of the things USC has done to address the increased interest?

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.

Using Vocareum

message-square-01 (1)

How did USC start using the Vocareum platform, and what was the experience?

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.

message-square-01 (1)

What would you like Vocareum, or a platform like Vocareum, to invest in?

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.

Similar Case Studies

Increased Computer Science Enrollment

What is driving the increased enrollment in computer science?

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.

Do you think the interest is caused by some fundamental shift in demand for computing literacy, or is it a temporary phenomenon?

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.

As a society, we are getting closer to mandating that computing literacy be introduced at a very early stage, but a lack of qualified teachers in K-12 seems to be the biggest barrier to accelerating this introduction. What role do you think leading computer science programs like USC can play in bridging that gap?

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.

Role of Technology

I remember you mentioning very early in our discussion that computer science teachers need tools to address the challenges of scaling. I come from the electronic design industry where there was a multi-billion dollar vendor base focused solely on making engineers successful. While there are tools to make administration more efficient or even tools for students, why hasn’t an industry emerged focused on making computer science teachers successful?

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.

What role should technology play in addressing the needs of computing education?

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.

Current Approach

What are some of the things USC has done to address the increased interest?

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.

Using Vocareum

How did USC start using the Vocareum platform, and what was the experience?

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.

What would you like Vocareum, or a platform like Vocareum, to invest in?

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).