Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Advice for teaching new students (http://www.chiefdelphi.com/forums/showthread.php?t=130795)

weaversam8 13-10-2014 10:22

Advice for teaching new students
 
Our team has sustained major growth this year, up to around 40 students. A good percentage of them wish to learn programming, which is a huge load on our 2-man programming team.

Does anyone have any ideas on how to teach programming to such a large group during build season?

BriteBacon 13-10-2014 10:39

Re: Advice for teaching new students
 
Teach them before build season on the basics. This will also help filter out people who aren't 100% serious on joining the programming team. In the past our team has recoded our old robots so the new students can get the actual experience they need before build season.

MamaSpoldi 13-10-2014 11:36

Re: Advice for teaching new students
 
Quote:

Originally Posted by BriteBacon (Post 1404076)
Teach them before build season on the basics. This will also help filter out people who aren't 100% serious on joining the programming team. In the past our team has recoded our old robots so the new students can get the actual experience they need before build season.

Totally agree with this statement. Way back in 2009 our only experienced programmer (student) was a senior and I had this crazy idea that we could have students coming up to speed on programming during the build season. Just doesn't happen... things are hectic during build season. No one had time to learn anything so after build season a student asked if I could run an off-season class to help prepare them for next year. I have been running off-season programming classes for our students every year since then. This has proven very useful, in fact at this point I think more than 50% of the kids on the team have taken the class even though most do not end up doing software for the robot.

It is not an extensive class (like you would expect in a high school or college programming course) where I cover every aspect of the language and programming. Not sure what language you are using, we use C++ so I bring them up to speed on the language facilities we generally make use of especially classes and the implementation of things like state machines... and also the architecture our team uses in creating our code. It is fast-paced, intensive, hands-on class done in 6 weeks and it gives them a flavor of what is to come. And it gives me an idea of who is really interested and what their abilities are.

Each student does the short exercises in C++ [using Visual Studio Express (which is free)] on a laptop during class time so that they are able to learn from their mistakes and get a general feel for how to use a debugger, compiler, etc. During our last class we review a few classes from the previous year's code so that they have some idea of what the actual robot code entails. I have a set of powerpoint presentations that I have developed over the years that I use to stay on track as well as providing a reference for them in the future.

Katie_UPS 13-10-2014 13:12

Re: Advice for teaching new students
 
If you're using Java, Codebat.com seems to have (read: I haven't used it, but looked at it) some good practice exercises that can help solidify concepts. LearnJavaOnline also seems to be a good walk-through website, but the "read this and go" method will most likely not go over well as its pretty boring.

If you have the resources, I high recommend doing some sort of class-room style teaching where you teach the basic ideas (variables, loops, syntax, etc) and then having a "lab" portion, where students are given tasks/goals and are able to code on their own or in pairs. You and your fellow programmer can oversee this portion and answer questions as they come up. You don't have to dive into robot-specific coding right away, but if you have a robot on hand that you can deploy code to, it would be most relevant/interesting for the newbies to have activities/tasks that are related to actual robot-coding.

If you do multiple days of this, where each day is a lecture followed by a lab, you could, in the least, get students comfortable with basic programming. The most you could achieve really has no bounds.

Its worth noting that the best way to learn programming is by programming.

Zach101 13-10-2014 14:02

Re: Advice for teaching new students
 
Quote:

Originally Posted by BriteBacon (Post 1404076)
Teach them before build season on the basics. This will also help filter out people who aren't 100% serious on joining the programming team. In the past our team has recoded our old robots so the new students can get the actual experience they need before build season.

I agree. Have them see what they are getting into first and see if they actually want to get involved in programming. Then if they do get into programming then see what they are strong at in programming and what they have trouble with. Also be patient with them cause some will learn really fast and some will learn really slow. Don't get inpatient if one person is way behind than the others and a few people are super far ahead than others. Get a pace going and set that pace. That will make students a lot less frustrated if you suddenly speed up or slow down. Doing this all before build season will be hard but you can always set up times with students to help them with something. Whether its after school or before or during the weekend.

I hope this helps!!!!:D

Oblarg 13-10-2014 14:50

Re: Advice for teaching new students
 
Make sure that your programmers don't only know programming. I've found that ensuring programmers have a healthy understanding of electronics and mechanics serves several purposes:

1) For those students who don't continue with programming (there will be many of them, trust me), it provides a much easier transition to productive work elsewhere on the robot

2) For those students who do continue with programming, it makes them far better at their job - you can't program all that well if you don't understand the mechanisms that you're trying to control.

3) In general, I think it is good pedagogy to have every student have some level of understanding of all that goes into making the robot function, even outside of their specialization.

Misty Dawn 13-10-2014 15:49

Re: Advice for teaching new students
 
We have a big team as well and lots of the new members want to program. We are running weekly programming classes now. We started in September - our 2 Lead Programming Mentors are teaching this class. This will also weed out any that decide they don't want to continue this sub-team later on.
Also, during the summer - our lead programmers take our robots home and hold programming classes during the summer for our up and coming programmers. This has been hugely successful!! Our past two years the top programmers attended the summer classes from the previous programmers and they were very grateful for the chance to see how their programming works with the actual robot. They had to learn to program the robot in multiple languages - we never know which one we will use -depends on the game, robot and the programmer.

weaversam8 13-10-2014 17:39

Wow guys! Thanks for all the helpful responses! I will show this to my other programmer and we can decide how to move forward. :)

alecmuller 13-10-2014 22:44

Re: Advice for teaching new students
 
So technically this is a CAD-related post, but if your team has grown recently like ours has, you might be training a bunch of new people in CAD as well as software.

Our team uses SolidWorks for CAD (we got 25 free seats from them last year - I'm not sure where you go, but it's possible), but I wasn't happy with the tutorials that come with SolidWorks (they're nice and all, but not very closely related to what we do in FRC), so I made two of my own. New students were able to get through each of them - with help getting unstuck from me and other experienced users - in about 2 hours each.

Click "Download All" and look for the PDF, which walks you through the tutorial.

https://grabcad.com/library/frc-soli...ox-and-motor-1

https://grabcad.com/library/solidwor...all-gatherer-1

Good luck with preseason training,
Sincerely,
Alec Muller
Team 2342 Mechanical Engineering Mentor

weaversam8 14-10-2014 09:52

That's awesome @alecmuller! We are interested in CAD.

mplanchard 22-10-2014 00:01

Re: Advice for teaching new students
 
For SOLIDWORKS

Software sponsorship now. Www.solidworks.com/First

New 25 videos on making a competitive robot

http://m.youtube.com/playlist?list=P...W-gEKDxfWgShwG

rsegrest 22-10-2014 08:51

Re: Advice for teaching new students
 
Like the OP we have had massive team growth this year. This has been a great thread and I appreciate all the responses. I am a teacher in Texas and we have an official Robotics and Automation class offered under the CTE curriculum. In looking online at the posted lesson plans for the course it follows the FRC model. I am posting the link to the lesson plans below. I hope that it helps someone else as much as the posters her have helped me. ::rtm::

Have a great day!

http://cte.unt.edu/stem/curriculum/robot-autom

virtuald 22-10-2014 09:00

Re: Advice for teaching new students
 
I've tried teaching students in a class-like setting, and I've found that I'm pretty bad at it, and they tend to forget what I've told them. Instead, I've found that 'learning by doing' is more effective.

What I did this year is create a repository that they can clone to their computer (link below -- we're using python), and they are instructed to solve various 'challenges', that bring them through the language's basic features as they move on. To check to see if they 'pass' the challenge, it runs a bunch of unit tests that check to see if they followed instructions. We did something similar last year with good results, but it wasn't as comprehensive.

We've been doing it a few weeks, and I think the students have gained a greater understanding of the language. After we finish this, then we'll start using the pyfrc robot simulator to start creating code that could actually run on a robot, to solve similar types of challenges.

https://github.com/frc1418/pybasictraining.git


All times are GMT -5. The time now is 02:39.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi