How to make programming (Java) training interesting for rookies?

I’m struggling with ideas on how to make Java training more interesting and engaging for rookies for the upcoming season. Currently we use Code Academy and our own Java slides that go over syntax overviews with examples, but I want to develop some training that gets people “pulled” into programming and interested in Java.

The target demographic are students who have little to zero prior programming experience and join our programming team because it “looks cool” or because they are interested in doing it in the future (ex. pursuing CS, software development, etc.). The timeframe I’m looking for to implement this training is September to before build season, so they understand what’s going on in build season and can contribute.

I’m looking for ideas on how to make this sort of training interesting so that newer students who might only have been slightly interested in Java before really love it.

5 Likes

Don’t focus on Java. Focus on programming and software engineering fundamentals. Java itself is not a very exciting piece of technology; it is the most popular language in FRC mostly by historical accident.

The code is a means to an end. No one’s gonna be super excited about learning language syntax and semantics. To some degree, students need to take responsibility for their own learning of the basics, because the more time a team spends on language fundamentals that can be learned elsewhere, the less time the team can spend on FRC-relevant content.

18 Likes

Super short answer… Include a robot.

Like, as much as you can, have the students writing software for a real robot that moves around and looks and feels as much like an FRC robot as possible.

I’ve been leaning more and more toward the idea that I don’t actually care if students evolve into good software developers. I just want them to have some fun using software to make good things happen on a robot. That’s the hook to get em interested in doing it on their own or in college… Where the real teachers can take over.

17 Likes

The best piece of advice I’ve been given for when I’ll teach the kids next year is “people love instant rewards”. If you start off with the absolute basics of, e.g., running a motor, rather than going through all the subsystem and command junk right off the bat, you’ll get a reward quickly, encouraging them to keep going.

This is especially true for brand-new programmers. This could very well be the first time they EVER write any lines of code, and seeing come to life quickly leaves a good impression. Compare this to experienced programmers, who know that it’ll work out eventually.

Also: with more “advanced” stuff like commands and subsystems, you are introducing a very large margin for error. Seeing a compile error or the motor do nothing as the very first code they ever wrote is very discouraging. (flashbacks to my first Python program getting 6 syntax errors…)!

7 Likes

While this simulator is FTC specific, I think it’s a great coding intro for students with little to none programming experience, but are interested in coding robots.

It also has the added bonus that you can start in block based programming, but can also move up to Java. The simulator aspect allows students to see the output on a robot, and the various puzzles do feel a bit game like, which keeps students engaged.

5 Likes

Once your students are able to get a basic understanding of Java, try to give them as much robot experience as possible. Team Paradox 2102 has some great resources on building and coding a minibot/nerfbot to train newer members.

http://programming.sdarobotics.org/

5 Likes

We definitely try to get people onto physical robots as quickly as possible. The moment a student succeeds in making a robot move around on the floor, their eyes light up.

Our minibot tutorial takes students through things step-by-step, providing all source code. For our nerfbot tutorial, students must find and adapt solutions for themselves; we hope this is much more like the experience of being handed an FRC robot for programming. For both, unlike most minibot kits, we have tried to make the experience as similar to programming an FRC robot as possible. (If we were starting from scratch in 2022, we would definitely be taking a hard look at Romi.)

If you really want students to find programming interesting and engaging, it is important to solicit and respond to feedback. One key piece of feedback we have gotten is that programming is more interesting and engaging for students when it is a social activity, not isolated and silent, talking only to adults. We have no magic solution for this, but we encourage students to help each other, talk through their experience, do code reviews, and pair-program when appropriate.

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.