Computer Science in the Real World

Have a Byte 2019
CC 210 Codio Example



So I’m going to be a little bit different because we’re currently in development of this program. So I’m going to take a step back and talk a little bit more about curriculum design, which is what we’re doing. So a year ago I was approached by our department head with a very unique problem that we have in computer science. We have a large demand for students to get the skills of programming and working with computers in a wide variety of fields, but because the popularity of our major has been so high the past few years, we don’t have room for those students in our courses. So how can we provide those computer science courses to a rapidly growing number of students that need them without using a ton of resources in our department? Obviously we could hire 15 new faculty, we could continue to teach more sections of all the courses we already have, but that’s simply not feasible to do.

So we decided to build a new program from the ground up that targets specifically online learning. And when we do that, I like to think of this quote by Carl Sagan that says, “If you wish to make an apple pie from scratch, you must first create [invent] the universe.” It’s a great quote because it really forces you to think about the frameworks that you’re working in and things that may be have been done one way. really can be rethought when you’re looking at an entirely new environment. So a about a year ago I went to a computer science education conference and as one of the programs there we were tasked with rethinking the educational system. If there was a worldwide catastrophe and we had to start over from scratch, what would we do? And my group very quickly hit on this idea of what we thought of as the ideal educational scenario and it turns out that this is a great example of it.

You have one world renowned master working with one student at a time until that student is the master. Sounds great, right? If we could do education like this, everybody would be fully educated. It would be great. Unfortunately, this is really not feasible, but when we look at education in this way, we realize that the rest of it is just a scalability problem. How do we take that educational model and scale it up to cover more students, more faculty, more classes, more skills? And the great thing about scalability problems is computer scientists like scalability problems. It’s one of the things we do.

So we looked at the traditional approach to scalability and education. If we have few students, we like to do things really well. We have small lessons, we have instant feedback to our students. We can customize the curriculum to match what they’re doing. We can spend most of our teaching time developing curriculum and engaging with students and we can focus on teaching those students the individual skills that they need to succeed. When we try and scale that to more students, we end up with large classes. We end up with students that have to turn in work and wait two or three weeks to get feedback. We use published textbooks, which we have to then fit our curriculum around the textbooks. We spend all of our time lecturing and grading and we’re really focused more on credit hours and courses and transcripts, then really those individual skills that our students need.

So when we take this traditional approach to scalability and we apply it to online learning, we get online learning that looks like this. This is not bad. This is better than nothing, but it really isn’t rethinking the educational system for online learning.

So my approach is, what if we could take all of these things that are so great about working in small class sizes and use modern technology to bring that over to more students? That’s really the curriculum design we’re trying to think our way through as we develop this new program for computer science. So in computer science we’re using this tool called Codio, which is an interactive online learning platform that allows us to deliver our lessons in a very unique way. We can record short YouTube videos that allow us to explain a particular skill. We can have text that’s very well marked up so that we can include code snippets and graphics and diagrams. And then right here, right beside their learning, students can immediately interact and engage with the code that they’re learning to do. And at the bottom we can have little buttons that assess and check that code right here, all in the same windowm without needing to install any software or have any special tools. This works in any web browser.

And so by thinking about education in that way, it allows us to really reframe what it takes to teach a technical skill such as computer science. Instead of having to learn a whole bunch of stuff within a 50 minute or an hour and 15 minute lecture, we can break that into a bunch of smaller topics and smaller lessons. And so if a student has five minutes or 15 minutes or an hour and 15 minutes, they can engage with the amount of content that fits for them, no matter what they’re doing.

At the same time, computer science is really well situated to take advantage of instant feedback. Basically, code works or code doesn’t work, so we can provide students with feedback right away and allow them to continue to revise their work until they get it right. Imagine if you could teach students and mark up their work and hand it back to the student and they fix it and hand it back. And you keep doing that over and over and over again, until every single student in your class gets 100% on their exams. We can do that with this instant feedback model through computer science.

And then when we start doing that, we can spend all our faculty time developing really engaging curriculum. We can work with our students, we can interact with them. Instead of spending all of our faculty time lecturing and grading, which is what many of my colleagues are doing right now. We can also customize this curriculum to match the needs of our students. Eventually in the future we’ll be able to customize it at the individual student level. We’re not there yet, but we can make sure that the curriculum we’re developing fits the needs of our students and we can very quickly adapt without having to worry about adopting a new textbook.

Finally we can start thinking about our curriculum as a set of individual skills. You can think of a skill as a skill tree if you play role playing games. And so when we start thinking about individual skills instead of courses, then we can look at different ways that we can break up our curriculum in a lot of unique ways to offer it to high schools, to industries as certifications, as micro credentials, all from the same basic curriculum that we’re developing. And actually we can do some of that right now in Canvas using the modules and prerequisite structure that’s already available in Canvas today.

Finally, how do we bring this into the real world? We’re really focusing on developing a capstone project course that helps tie everything together, allow students to interact with faculty both in computer science and another discipline and show that they can solve real world problems using those skills that they’ve learned in all the other courses to bring it all together and show the real world impact of this curriculum.

So if you’re interested in any of this, we just announced our computer science undergraduate certificate this semester. It’s brand new. We have nine students in the program right now, but we’re hoping to grow very, very quickly. It’s a hundred percent online. It’s designed for non computer science majors. So it doesn’t have that huge calculus prerequisite that a lot of people don’t like about programming courses. We took that out. But we’re looking at a lot of ways we can take this into the future. We’re considering working on an applied computer science degree. We’re looking at taking this into high schools, we’re looking at teacher training programs, industry certifications, you know, how can we take this one curriculum that we’re developing online and then adapt it to any number of uses out there. And for us, it helps us get that education out in the world. But it also helps us think about the monetary aspect of it. How do we get the best bang for our buck out of this curriculum that we’re developing?

So if you’re interested in this, one of the things I can do is instead of telling you about it, I can show you. We have a free trial of our CC 210 course. If you’d like to check it out. It’s open to any K-State faculty, staff, or students. All you need is a valid eID, but it allows you to see what we’re developing. There’s tons of stuff that we’re doing in this program that I don’t have time to talk about today. If you’re interested, feel free to grab that link or catch me afterwards. Thank you very much.