Easily Adopt Interactive Data & Computer Science Textbooks for Better Student Outcomes

8:55 AM on March 22, 2022 | Teaching Resources data science online IDE computer science programming autograding research

We recently conducted a study of professors and lecturers about pedagogical tools and practices that they use in their classrooms. A trend we noticed throughout the survey results indicates that educators are likely to adopt a new pedagogical practice that they believe will directly improve student learning outcomes.

Across the 20 pedagogical practices included in our survey, the most beneficial outcomes educators cited included improved student understanding of content, increased student engagement and/or interest, and increased student participation in class. In terms of interactive “textbooks” or eBooks, we found that many instructors saw the value in interactive textbooks, but were unsure of how to effectively implement them in the classroom. You can learn more in the recorded version of the seminar on this topic that I presented at SIGCSE 2022.

On-Demand Webinar:  Easily Adopt Research-Based Teaching Practices

Encouraging Hands-On Learning with Less Text, More Interactivity, and an Integrated Online IDE

When you’re using a traditional textbook, the vast majority of students spend less than two hours reading for an assignment. There are a sizable number of students who don't actually purchase a required textbook at all. We avoid some of these issues by using less text. When we say less text, we're talking about 50% of the original.

There is a bump in student satisfaction when they have to read less. We also see learning games when less text is involved. By relying on less text, you are allowed to add different modalities of learning. For Codio, you can add images, GIFs, video, audio, whatever you want! At Codio, we like to promote a learn-by-doing approach. We want the students to be active participants in their learning experience.

Create Instructor Account

With the click of a button, you can copy that code block and paste it into the fully-featured, browser-based IDE, and then run it again with another click of the button. But this isn't a limited IDE. You'll see that we offer some variations of this code and we want the students to edit it. And so we challenge them to, okay, how do we modify the code in a particular way? And it's up to them to do it and they can try it. And if they get errors or they're stuck, we provide a solution. This is a very low-stakes way for students to explore.

 
 
 
Video Thumbnail
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1:34
 
0:00
 
 
 
 
 
 
 
 
 
 
 

But what we want from them is the ability to go where they're interested. If they're curious about, can I do this, can I do that? They have the ability to do it. Sometimes we ask them to do things, like a particular task. We'll have students write code that will give them very unexpected output. And then we provide a rationale for that. Sometimes we'll ask students to make changes to their code, and it will cause an error. We want them to see the limits of what they currently know.

A good example of this might be Arrays and ArrayList in Java. To novice programmers, they look very similar, but you can only treat an ArrayList like an Array for so long. Eventually, you'll see some very glaring differences. So we want them to see that this works for an Array, but if you try to transfer that knowledge to an ArrayList it doesn't work. So they can see the differences in these data structures, and they're learning that way as well.

Visualizing Code

Because we're asking students to write a lot of code, one of the things that we want to do is give them the tools that they need to help them understand the code that they're writing. So Codio works with the Python Tutor Code Visualizer. Python Tutor works with a variety of languages like Java C, C + +, JavaScript, and Ruby. You’ll notice in the video below, there's just a link in the course materials.

 

When the student clicks that link, the code from their IDE is brought into a new page of the Code Visualizer, and their code is put in there. Then they can go ahead and step through their code. And you'll see the state of the program change over time. In this particular instance, we have an empty list that slowly gets values appended to it, and then finally it prints it out. And so by clicking through or moving that scrubber at the bottom, students can see how their program changes over time. And this helps them understand what's going on with the code they write without having to read a bunch of information. And if they're exploring code on their own, or through some of the suggestions that we offer, they can still use this Code Visualizer and still understand what's going on. A static paragraph would not help them there.

Customizing Curriculum Materials

Another benefit of using an interactive textbook is customization. We see that there's greater student retention and performance when faculties engage with the material. Being able to either write or modify your course material allows you to be more engaged with it. When we say customization, that you can write completely from scratch, you have that option. We'll also talk a little bit about some of our resource catalog titles.

Explore Resource Catalog

You can easily remix or edit curriculum content that's already written. Codio content is composed using markdown. Some of you're familiar and comfortable using this, others may not be, so we have a markdown ribbon, so you can treat writing markdown like you at any kind of WYSIWYG editor. Write the content, highlight it, and then you can make it bold or a bullet point list, or whatever you need.

To explain more about what I mean by "remixing" content, there is an example of a course in the clip below. This course is on object-oriented programming in Python. And if you use some of our pre-made courses, this is what you would see. But let’s say you're a veteran instructor. You have a series of labs that you know are battle-tested, and they work really well with students, and they like them. And they're getting the content knowledge that you want them to have.

We have a list of modules in the course, in every module there are assignments, and every module has a lab assignment. So you want a student lab, you just don't want the one that we've made, you want to use your own. On the right, there's a button to customize, and it'll pull up the course broken up into modules. And then each module of course has an assignment. I'm going to go through here and find the lab in every module and go ahead and highlight it, and then I'm going to remove it. We're trying to make this as easy as possible for you to customize your course, to get it through so that you are engaged and that your students reap the benefits from that as well.

 
 
 
Video Thumbnail
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1:27
 
0:00
 
 
 
 
 
 
 
 
 
 
 

For example, let's say that you want to do encapsulation before you do inheritance. As you can see in the clip, you can just drag and drop and the order changed. I can drag and drop the assignments, and can even take an assignment and move it into a different module. You can do all of that. You really get a lot of powerful and flexible choices for you to make your content the way you want.

Furthermore, you can add to the content. For example, if you really want your students to know something, but it's not covered in a resource available, Codio makes it easy to supplement with your own content or other ready-made curriculum materials in our course resource catalog. This is a great way to take content that's pre-made and customize it to your needs. And of course, you always have the option to write code from scratch.

Easily Configure Programming Environments with Software Stacks

Another way you can customize your course is through stacks. These are cloud-based Linux containers. In fact, they run in Ubuntu. This is the technical foundation for your content. When you are preparing a course, you can go ahead and set up everything you need from a technical point of view, and this will serve as a template. You can take some of our stacks that we have official versions, Python, Java, C++, etc., and start adding on different modules.

codio preconfigured software stacks

If you're teaching a course like Haskell, you can go ahead and build your own custom stack just for you. You can even share stacks. For example, if you notice that we have some supported stacks, and you see a language that's missing, and you think it's really important, you can make a stack and make it public.

Then, when instructors go to Codio and they start searching our stacks, yours will pop up that they can use. One of the neat things that you can do with this is you can have different versions.

Maybe you set up a stack and then you realize, “oh, I'm missing some software for my students.” You can go ahead and install that missing software. And then you'll have version one, version two, etc. But you can also select an option for your students to always use the latest version of the stack. So if you've started teaching and you realized, I'm missing some software, you could go add the software to your stack. And if the template that your students have is set to use the latest version, they will automatically get those updates to their stack as well. This way everyone can stay up to date.

 
 
 
Video Thumbnail
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2:29
 
0:00
 
 
 
 
 
 
 
 
 
 
 

Best of all, you're not relying on students to set up all their coding environments. When I was an instructor and working with novice students, asking them to use the terminal to set up their environment was challenging for many students, and found it to be a major obstacle. You can avoid this.

In addition, the stacks are editable by students. Let's say you're working with some more advanced students and you don't want to give them everything they need. You want them to learn how to do this as well.  You can give them just a base stack of what they need, the language, the compiler, whatever it is you need at the absolute minimum. hen, students can decide what particular piece of software they need for a particular project. Students have access to the terminal in their container. They have root privileges, and they can install whatever it is they need to help them with their coding assignments. Stacks are a way to customize, not at the content level, but at the underlying technology level. 

Customizable CS Curriculum Resources

Finally, let’s go over our curriculum resource catalog. We have an in-house curriculum development team who work tirelessly on a range of programming content, some of which is derived specifically for Introductory CS1 and CS2 courses. We offer content in Python, Java, and C++. We’ve also recently added data science resources in both Python and R (integrated fully with RStudio). And we also have Operating Systems content developed in-house, too.

Additionally, we offer a range of popular OER titles like Think Python, Think C, Think Java, Think Data Structures, and R for Data Science. Our library is constantly growing—but while Codio offers a whole range of curriculum resources for computing instruction, it's is so much more than just content.

Codio offers customizable instructional content fully integrated with a robust platform that integrates configurable cloud-based coding environments, a powerful auto-graded assessment and student feedback engine, and course authoring and customization tools.

Watch On-Demand DemoIn my next post, you’ll learn about some of our most cutting-edge technological features that, when paired with our course resources, makes an incredibly compelling and engaging experience for your students.

Patrick Ester

Patrick is Codio's Director of Content. He has spent the last eight years teaching computers and programming to students in K-12 schools.