You guys, omg… I’ve been having way too much fun with this!
Anyways, I would LOVE any feedback or opinions at all. Their first programming assignment was due yesterday, and they didn’t do too well. Most of them waited until last night to open the assignment… but that’s an issue for another day lol
So, I came up with this assignment flow to use on the next programming assignment. I’m actually using their last assignment as an example of how to debug their own code.
What I did was deploy a bot app on Heroku, that checks student submissions for syntax and style errors. Then, I have GitHub Actions set up to check student submissions for logic and formatting errors. I’ll have the students toggle their windows with replit on one side, and the GitHub Classroom feedback pull request on the other. That’s where my bots comment on their submissions.
So I’ll have them watch this video first and open the assn in GitHub:
Here’s the video
Here’s the assignment invitation URL
I’ll keep the assignment link live until March 15th at least. I’d really appreciate any feedback.
I’d be curious how this this works out. I have been contemplating doing something similar using the Infer static analyzer developed by FaceBook ( https://fbinfer.com/ ). There’s a Github Actions solution in the market for Infer with C#, but not for C or C++ which is what I need.
In general, there are pro-and-con decisions about static analyzers. You want students to develop these skills even in the absence of such tools, but then again, they are commonly used and should be a valuable way to reduce frustration during learning.
Yes, students should develop these skills. New programming students get overwhelmed though. By repeating the same debugging process as I’ve laid out, it will become habit.
Also, a lot of professors let students new to programming write ugly code from the beginning. That reinforces bad habits from the beginning.
One last point, immediate and actionable feedback is how students learn best. Completing a programming assignment, turning it in, and waiting for feedback is far from optimal.
You are right that programmers should be able to debug their code without these types of tools.