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