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.
https://www.zybooks.com/wp-content/uploads/2023/04/blue-4.jpg6751200Dr. Sandy Iranihttps://www.zybooks.com/wp-content/themes/zybooks2018/images/zybooks-logo-wiley.svgDr. Sandy Irani2023-07-25 06:42:102023-09-08 12:05:28New Block Proof Tool To Power Discrete Math Instruction
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:
Assign lots of small problems
Start with Parsonās Problems to focus on logic
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:
https://www.zybooks.com/wp-content/uploads/2023/04/green-6.jpg6751200Dr. Cay Horstmannhttps://www.zybooks.com/wp-content/themes/zybooks2018/images/zybooks-logo-wiley.svgDr. Cay Horstmann2023-07-17 07:28:162023-07-17 07:28:23Dr. Cay Horstmann: Three Key Insights for Teaching Programming
Project-based learning is an authentic, meaningful way to engage students. Computer Science Instructor Dennis Sigur describes how to implement the method.
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.
About 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.
https://www.zybooks.com/wp-content/uploads/2021/12/AdobeStock_182044577-scaled.jpeg18072560Ricky Porcohttps://www.zybooks.com/wp-content/themes/zybooks2018/images/zybooks-logo-wiley.svgRicky Porco2021-12-28 18:26:232021-12-30 09:45:05Why Cay Horstmann Thinks Now is a Great Time for Interactive Materials