View Single Post
  #1   Spotlight this post!  
Unread 27-05-2016, 10:23
Jaci's Avatar
Jaci Jaci is offline
Registered User
AKA: Jaci R Brunning
FRC #5333 (Can't C# | OpenRIO)
Team Role: Mentor
 
Join Date: Jan 2015
Rookie Year: 2015
Location: Perth, Western Australia
Posts: 251
Jaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond repute
Re: FRC Primer for Programmers

Quote:
Originally Posted by Katie_UPS View Post
Why do they need to know this in depth? Why is "Deploying Code" not closer to the top? You're going to bore 99% of them to death. Why would I as a high school student spend my summer watching power-points on dynamic IP addressing?

Its cool to teach them everything (though most of it isn't really necessary, just interesting to some), but get them interested first. If they signed up for "learning to program" maybe programming should be in the first few topics.

None of this is going to have any context until they start writing code anyways, so why not start with code?



Again, what does this add? How does this help them write an autonomous program? If a student shows interest in the deeper parts of how-things-work then explain it (or if it becomes a relevant lesson because of a problem they're having).

They're not starting Computer Engineering. They don't need to know the networking layer right now, or how the FPGA in the roboRIO works... It's cool and useful eventually, but you're just going to scare away anyone who doesn't think they're smart enough.
I have mixed feelings, some disagreements and some agreements.

Learning about the hardware in the robot is important. We're not building desktop applications here, we're building applications that make a robot run. Students are learning to program for an embedded system, and with that comes some limitations and gotchas that don't come with regular programming lessons. For this reason I think (2) should be included.

FMS -> If your robot is dead on the field, your electrical and programming teams will be the first port of call. Most of FMS is a black box, but things like Periodic and Iterative functions are important as they're important for the control of your robot. I've taught FRC software classes before, and I've had many students come up to me and as "wait, so why do we run the same code over and over again? Can't we just put it in init and it will work?". Students need to understand how states in the robot work, otherwise their code is just plain not going to work. If you look at any child of the RobotBase class, you'll see the words "{state}Init" and "{state}Periodic" pop up very commonly. This grants (3) a pass in my book.

(12), Network Details. Robots don't always work, especially when they're on the field with 6 other robots. While this isn't as important as the other topics, and maybe shouldn't be included in the general, introductory course (sorry op), I think it has a place in more advanced classes maybe later in the pre-season. I'd have to agree that it doesn't belong in the 'primer' course.

NetworkTables. I'd recommend swapping this out for SmartDashboard in the primer, since most of the time (unless your programmers have spare time), you won't be dealing with your own network data transport. I'd have to agree that this doesn't belong in the primer, either.

When you're providing a primer course to students, you're setting the foundation for what they'll do later on, when they start to get more in depth and more advanced. Unfortunately in FIRST, a lot of the code resources are just examples without any real explanation, which places some programmers into bad practices, or in the horrible state of knowing but not understanding. Understand first, execute second. Not the other way around.

~Jaci
__________________
Jacinta R

Curtin FRC (5333+5663) : Mentor
5333 : Former [Captain | Programmer | Driver], Now Mentor
OpenRIO : Owner

Website | Twitter | Github
jaci.brunning@gmail.com
Reply With Quote