Posts

New Block Proof Tool To Power Discrete Math Instruction

Discrete mathematics is a foundational subject for computer science students, but it can also be a challenging one to teach. 

Challenge with teaching proofs 

Proofs are a case in point. Proofs are a difficult concept to help students master, because instructors should work one-to-one with learners to edit their work and point out mistakes. It’s a lot like teaching writing – labor intensive. But in typical large discrete math classes, this approach becomes untenable. Instructors don’t have the bandwidth to review and grade hundreds of proofs written by students and provide individual feedback.

As a computer science professor at University of California, Irvine, and the author of the Discrete Mathematics zyBook, I’ve been working with the zyBooks content team to overcome this challenge.  We’re releasing a new block proof tool this fall that will be included in both the Discrete Math and Linear Algebra zyBooks. The tool is a major update that gives instructors the capability to directly assess and teach proof writing skills and do it at scale to accommodate large classes.

ā€œThe tool is a major update that gives instructors the capability to directly assess and teach proof writing skills and do it at scale to accommodate large classes.ā€

Dr. Sandy Irani

How the block proof tool works

The block proof tool is a software tool that automates how students engage with proofs. While it doesn’t replace writing proofs, the tool gives students a scaffolded proof-writing experience, allowing them to drag and drop prewritten proof lines into the correct order instead of starting from scratch. It also provides students immediate feedback on and reinforcement for their work. The goal of these exercises is to teach students how to reason and how to articulate that reasoning. We’ve created block proof exercises for logic-based and text-based proofs, and these are integrated throughout the book. 


The block proof tool in action 

In this video, Dr. Irani explains how students learn with the new block proof tool. 


Related research

Efficiency of Learning from Proof Blocks vs. Writing Proofs


Dr. Cay Horstmann: Three Key Insights for Teaching Programming

Dr. Cay Horstmann is a renowned computer science educator and the author of classic textbooks that have transformed the discipline, including Python for Everyone, Big Java: Late Objects and Big C++ Late Objects, all available in zyBook versions. 

In this interview, Dr. Horstmann shares three key insights for teaching programming that every computer science instructor should add to their pedagogical playbook. 

Let’s start with the challenges of teaching programming. What do you see? 

Dr. Horstmann  Computer science involves mastering a range of subjects, but what seems to be the biggest challenge for many students is programming. And I think the traditional teaching method, which often gives students four or five projects that last for several weeks, is simply not an effective approach to developing those coding skills. 

What happens? Students join what they like to call a ā€œstudy group,ā€ where one person usually writes the bulk of the code and the others don’t really learn very much. And then they move on to CS2. And you meet the CS2 instructor in the hallway and they’re livid. They want to know, how come the students finished a full semester of CS1 and they can’t program a simple loop? 

What’s an alternative approach? 

Dr. Horstmann What students really need to do, first and foremost, is practice coding in small chunks. Students learn by doing a lot of stuff, over and over. So literally, the way to teach loops is to make sure that students write 100 loops. And then the 101st one will not be all that hard. 

You can’t accomplish this with large, complex assignments. And I don’t believe that many students can learn the material by reading through the principles and applying them by the force of logic. They will figure it out simply by habit and by practice. 


Dr. Horstmann’s Tips for Teaching Programming: 

  1. Assign lots of small problems
  2. Start with Parson’s Problems to focus on logic
  3. Provide starter code to limit cognitive load

You’re talking about the power of short assignments.

Dr. Horstmann Yes. When they’ve done something a lot of times, the next time gets a little easier, and more automatic. 

When you start learning computer science, it’s totally brand new. There’s the programming environment, there’s the programming language with all of its weird exceptions and minor rules, and then there’s the problem you want to solve. Pretty soon you have cognitive overload. 

If you have to think about every little decision in the language, you won’t have enough brain cells left to also solve your problem. So there’s a lot to be said for making the simple parts routine – and that’s where these little exercises come in. Which is why our zyBooks versions are loaded with auto-graded formative questions and are so valuable. 

But look, if you really love your projects, you can still assign them! A few small projects can be very motivating because you can show students that they can do something that’s really exciting, even with the little programming they’ve learned up to that point. 

But what you also want to do is give your students ample opportunity to complete lots of simple, practice problems. And you know what? Students don’t seem to mind this. Because that practice is actually kind of rewarding – as long as what you ask them to do is simple and attainable.

That’s the really important part. The practice problems have to be something that takes them just a few minutes, and they get the instant reward of now having accomplished something that they previously had a hard time doing. That’s the power of small problems. 

What tools can you recommend to ease students into programming? 

Dr. Horstmann It’s really hard for students to get started with coding, so you want to avoid having them stare at a blank slate. That’s really frustrating. 

In our zyBooks, we avoid that pitfall by including what’s called Parson’s Problems, where students rearrange pre-formatted lines of code. This way, students don’t have to worry about getting bogged down with syntax and can focus solely on logic. I think of Parson’s Problems as a kind of icebreaker activity which I like to assign at the start of a course, so students can begin to think about logic and algorithms right away.

You also believe in giving students ā€œstarter code.ā€ Why? 

Dr. Horstmann Another way to avoid the blank slate problem is to give your students some starter code to get them going. And it also reduces their cognitive load. In my experience, instructors don’t always appreciate this. They say, well, at some point, students are going to have to start from scratch. But that is not what I have ever experienced.

I can’t remember a single project in the last 30 years where I started from nothing. I have always had prior code that serves as a starting point, and developed the project from there. So I think starting from something and modifying it is very useful. It’s also more rewarding for students because they can focus on the one thing that they want to accomplish right now. 

Final thoughts? 

Dr. Horstmann The points I’m making are not limited to programming. I mean, in every type of instruction, the more you can get a student to practice effectively, the better, right? 

Lots of small problems, Parson’s Problems, starter code – they all make a difference. 


Dr. Horstmann on the benefits of teaching with zyBooks: 

Interactive Learning Materials - zyBooks

How Programming Professor Dennis Sigur Effectively Uses Project-Based Learning

Project-based learning is an authentic, meaningful way to engage students. Computer Science Instructor Dennis Sigur describes how to implement the method.

Interactive Learning Materials - zyBooks

Why Cay Horstmann Thinks Now is a Great Time for Interactive Materials

Computer science higher education has experienced a technical transformation. Innovative tools, such as interactive textbooks and digital course platforms, are helping to drive success for this generation of students. In many ways, it’s a great time for students, authors, and professors. But for higher ed instructors, this transition also brings new teaching challenges. How can university and college educators engage with and inspire their programming students through virtual lectures? We connected with Dr. Cay Horstmann, author and professor of computer science, to discuss teaching in a digital world.

Why Cay Horstmann says now is a great time for interactive materials for students, authors, and professors

For students

A textbook is a tool. Students want to read just what they need, jump around, and come back to specific sections — which keeps them moving through the material while staying motivated. With interactive material, students can instantly assess what they have learned and where they still need to put in work. You don’t have to take our word for it — students are voicing the value of immersive content. Of students responding to the Spring 2021 zyBooks Student Survey, 85% shared that zyBooks’ participation activities, learning questions, auto-graded challenges, and descriptive animations helped them learn.

For authors

In the past, Dr. Horstmann relied solely on the conviction of his words to carry students along. But that worked only if students actually read the material. Now, he can help students by designing activities. Dr. Horstmann includes hundreds of interactive programming activities in the newest version of his award-winning Big Java Late Objects, now available on the zyBooks platform.

For professors

In the past, there were only books. Now, technology, tools, and digital course platforms enable professors to better understand where students are succeeding or struggling. Dr. Horstmann recommends referencing your class’s reading analytics to see whether students found the reading easy or challenging.

Cay Horstmann’s 3 tips for teaching computer science in ā€œthe Zoom ageā€

1.Talk about what excites you

When lecturing for a digital online course, it’s more important than ever to discuss the things that excite you as a computer scientist to inspire and engage your students. For Dr. Horstmann, these are topics like algorithms and design vs syntax.

2. Assign pre-class reading

This is key to focusing on exciting topics in class. When students learn the basics by reviewing the material in advance, they get to dive straight into the engaging, more complex topics in class and improve student engagement during virtual classes.

3. Leverage innovative technology

To ensure your students complete pre-class reading, leverage technology, such as the zyBooks gradebook, which allows you to require participation, track individuals’ successes, and understand overall student engagement. These abilities, ultimately, help you plan your virtual presentations.

Professor Cay HorstmannAbout Dr. Cay Horstmann

Dr. Cay Horstmann received a master’s degree in computer science from Syracuse University and a Ph.D. in mathematics from the University of Michigan in Ann Arbor. He taught computer science at San Jose State University for almost 30 years and held visiting appointments at universities in Germany, Switzerland, Vietnam, and Macau. He also served as a vice president and chief technology officer of a startup company. Dr. Horstmann authors books and develops online courses for beginning and professional programmers.