Go to Post There are so many creative and brilliant minds out there that build wonderful inventions and machines---surely we can be equally creative and open minded ... - Tonya Scott 476 [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 03-06-2012, 17:34
gixxy's Avatar
gixxy gixxy is offline
Programming and Arduino Mentor
AKA: Gustave Michel III
FRC #3946 (Tiger Robotics)
Team Role: Mentor
 
Join Date: Nov 2011
Rookie Year: 2012
Location: Ruston, LA
Posts: 207
gixxy is on a distinguished road
Teaching Help

Alright Guys. I am the Head of programming for my Team. I need to teach others to program. The kids I am going to be teaching can be anything from basic MS Word/OO Writer skills to already know a little. (and a few that really know what they are doing).

The problem is I need to teach both Java and C++/Arduino.

We use Java as our Competition bot language, and C++/Arduino for our other projects.

Now the only kids who can take both classes have to know a programming language already, but the others have to choose one, I don't have the time or means of transportation to get to the meeting place to do two SEPARATE Classes.

Any ideas from the community on what I should to keep the languages separate enough that I am not just confusing the holy hell out of them.... If I had the time I was going to teach Java to them all, then C++ for a group for Arduino. I just don't have that time....

I look forward to any help I receive. Thanks Guys.
__________________
Programmer - A creature known for converting Caffeine into Code.
Studying Computer Science @ Louisiana Tech University
Associate Consultant @ Fenway Group

2012-13: 3946 - Head of Programming, Electrical and Web
2014 - 3468 - Programming Mentor
2015 - Present - Lurker
  #2   Spotlight this post!  
Unread 03-06-2012, 17:48
David Smellie David Smellie is offline
Registered User
FRC #0217
Team Role: Alumni
 
Join Date: Apr 2012
Rookie Year: 2011
Location: Michigan
Posts: 11
David Smellie is on a distinguished road
Re: Teaching Help

Is there a specific reason the competition robot has to be in Java? If not it may be best to teach everyone C++ and use that as the competition robot language, both to lower the workload for yourself and to allow the students to better learn the language.

If some of the students already know a language you could have them help you in teaching the other members. In terms of splitting the languages of, I would try splitting the class between working a code and teaching them about the language and have one language be coding while you lecture the other. This seems like the best way to keep them separate from each other although the actual class may be a lot of work for you.
  #3   Spotlight this post!  
Unread 03-06-2012, 18:33
gixxy's Avatar
gixxy gixxy is offline
Programming and Arduino Mentor
AKA: Gustave Michel III
FRC #3946 (Tiger Robotics)
Team Role: Mentor
 
Join Date: Nov 2011
Rookie Year: 2012
Location: Ruston, LA
Posts: 207
gixxy is on a distinguished road
Re: Teaching Help

Well I talked to our Programming Mentor about using C++ for both. (He actually knows C++ more than Java). He was afraid that with something so much more complex as the Competition Bot that we would have a lot more problems with Memory Management and the other lower level pitfalls on C++.

Here is what he said:
Quote:
For next year's robot, I think java is better for beginners because it will prevent you from doing things like buffer over flows or invalid memory access. I think Java might be more inclusive and could get us some more programmers. For the t-shirt cannon and anything else, lets just use what ever we want.
Oh course that means I still need to teach C++ to them anyway. I only have one more year on the team.

Other than the Mentor I am the only one who knows any C++. There is only one other Student who knows Java, but not as well as I. It does help a bit, but not much.
__________________
Programmer - A creature known for converting Caffeine into Code.
Studying Computer Science @ Louisiana Tech University
Associate Consultant @ Fenway Group

2012-13: 3946 - Head of Programming, Electrical and Web
2014 - 3468 - Programming Mentor
2015 - Present - Lurker
  #4   Spotlight this post!  
Unread 03-06-2012, 21:11
gixxy's Avatar
gixxy gixxy is offline
Programming and Arduino Mentor
AKA: Gustave Michel III
FRC #3946 (Tiger Robotics)
Team Role: Mentor
 
Join Date: Nov 2011
Rookie Year: 2012
Location: Ruston, LA
Posts: 207
gixxy is on a distinguished road
Re: Teaching Help

OH i totally forgot. What are some good resources for teaching Core Java and C++.

Not stuff for the WPILIB libraries, but for the Languages themselves.
__________________
Programmer - A creature known for converting Caffeine into Code.
Studying Computer Science @ Louisiana Tech University
Associate Consultant @ Fenway Group

2012-13: 3946 - Head of Programming, Electrical and Web
2014 - 3468 - Programming Mentor
2015 - Present - Lurker
  #5   Spotlight this post!  
Unread 03-06-2012, 21:24
daniel_dsouza daniel_dsouza is offline
does what needs to be done.
FRC #2449 (Out of Orbit Robotics)
Team Role: Alumni
 
Join Date: May 2011
Rookie Year: 2011
Location: Chandler, AZ
Posts: 231
daniel_dsouza has a spectacular aura aboutdaniel_dsouza has a spectacular aura about
Re: Teaching Help

Quote:
OH i totally forgot. What are some good resources for teaching Core Java and C++.

Not stuff for the WPILIB libraries, but for the Languages themselves.
The year our 4-yr programmer graduated and left programming to the novices, he left us a whole bunch of sample JAVA programs and information from our school's [now nonexistent] AP programming class. I haven't looked through most of the files, but someone who did (and took the AP test a year later) said that he thought he did really well. I'm sorry I can't be more exact.

Link to mentioned files: http://sdrv.ms/JFwZ1O
Right-click -> Download.

2 years later, all the programmers are self-taught. We learned how to program the robot by reading some of these examples, perusing the FIRST provided samples, and reading other teams' code (available to CD).

Good luck to your and your team!

Last edited by daniel_dsouza : 04-06-2012 at 01:00. Reason: The file at the link should cover a lot...and added quote
  #6   Spotlight this post!  
Unread 03-06-2012, 22:35
slijin's Avatar
slijin slijin is offline
Pockets
AKA: Samuel Lijin
FRC #0694 (StuyPulse)
Team Role: Mentor
 
Join Date: Jan 2010
Rookie Year: 2010
Location: New York City
Posts: 537
slijin is a splendid one to beholdslijin is a splendid one to beholdslijin is a splendid one to beholdslijin is a splendid one to beholdslijin is a splendid one to beholdslijin is a splendid one to beholdslijin is a splendid one to behold
Re: Teaching Help

Quote:
Originally Posted by gixxy View Post
Well I talked to our Programming Mentor about using C++ for both. (He actually knows C++ more than Java). He was afraid that with something so much more complex as the Competition Bot that we would have a lot more problems with Memory Management and the other lower level pitfalls on C++.
Even with Java, when you start getting into the more involved methods, you begin to run into memory management considerations, especially because a lot of them are just wrappers of their respective C++ methods (if that's the right term for it). We actually hit a stack overflow error, if I recall correctly, when running camera code...

I can't speak for how to teach the differences as I'm not nearly familiar with both to offer a good perspective on both, but I will say that learning about, understanding, and seeing the OO nature of these languages is incredibly useful to understanding their structure and implementation. For me, I just learned the fundamentals then went through examples of existing code to learn the language.

One thing I will say is that you want to make sure that you not only teach new members the programming language, but that you also teach the implementation of the language in FRC. There are so many abstract concepts and so many more details about them that aren't related to FRC that it's easy to get lost in them and be completely bewildered going into build season. Our software engineering team taught our newbies this year by developing Java on Finches using Netbeans (a small minibot-esque platform) and neglected to give them a taste of how robot code is structured. As a result, one of the most consistent responses from their newbies this year was that they found acquainting themselves with the structure of robot code an incredible challenge because they had never seen it before build season, so when the veterans began preliminary code structuring many of them rapidly lost track of what was going on.
__________________

2010-12 CT Chairman's
2011 Galileo 5th seed
2010 NY Regional Winners
  #7   Spotlight this post!  
Unread 03-06-2012, 22:57
mathking's Avatar
mathking mathking is offline
Coach/Faculty Advisor
AKA: Greg King
FRC #1014 (Dublin Robotics aka "Bad Robots")
Team Role: Teacher
 
Join Date: Jan 2005
Rookie Year: 1999
Location: Columbus, OH
Posts: 642
mathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond repute
Re: Teaching Help

I will make a suggestion, as a teacher of both Java and C++. If you only have the time to teach one, just teach one and have the kids pick up the other on their own. Rather than confusing the second language tends to illuminate when you get a little practice in. Consider using something like Robocode to have the kids learn Java on their own. It is fun, easy to install and as a bonus if they do much with it they will learn a lot about how to use events and mathematics in a Java program. In general I think that picking up a second language is not only easier, it makes you understand the first language more completely.
__________________
Thank you Bad Robots for giving me the chance to coach this team.
Rookie All-Star Award: 2003 Buckeye
Engineering Inspiration Award: 2004 Pittsburgh, 2014 Crossroads
Chairman's Award: 2005 Pittsburgh, 2009 Buckeye, 2012 Queen City
Team Spirit Award: 2007 Buckeye, 2015 Queen City
Woodie Flowers Award: 2009 Buckeye
Dean's List Finalists: Phil Aufdencamp (2010), Lindsey Fox (2011), Kyle Torrico (2011), Alix Bernier (2013), Deepthi Thumuluri (2015)
Gracious Professionalism Award: 2013 Buckeye
Innovation in Controls Award: 2015 Pittsburgh
Event Finalists: 2012 CORI, 2016 Buckeye
  #8   Spotlight this post!  
Unread 10-06-2012, 14:09
gixxy's Avatar
gixxy gixxy is offline
Programming and Arduino Mentor
AKA: Gustave Michel III
FRC #3946 (Tiger Robotics)
Team Role: Mentor
 
Join Date: Nov 2011
Rookie Year: 2012
Location: Ruston, LA
Posts: 207
gixxy is on a distinguished road
Re: Teaching Help

Anyone have any good resources on teaching CORE C++. Syntax, Pointers, Class Structure, using/accessing Functions and Member Functions, ect? Not so much the C++ Library stuff (beyond some basics of course).
__________________
Programmer - A creature known for converting Caffeine into Code.
Studying Computer Science @ Louisiana Tech University
Associate Consultant @ Fenway Group

2012-13: 3946 - Head of Programming, Electrical and Web
2014 - 3468 - Programming Mentor
2015 - Present - Lurker
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 01:45.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


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