Go to Post A chop saw may cut aluminum, a knife can also be used to eat ice cream. - fox46 [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 Rating: Thread Rating: 4 votes, 5.00 average. Display Modes
  #16   Spotlight this post!  
Unread 28-04-2015, 12:37
JesseK's Avatar
JesseK JesseK is offline
Expert Flybot Crasher
FRC #1885 (ILITE)
Team Role: Mentor
 
Join Date: Mar 2007
Rookie Year: 2005
Location: Reston, VA
Posts: 3,624
JesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond repute
Re: How to: Teach java?

For learning the basics of brand new languages, two generalist websites come to mind:
http://exercism.io/
http://www.codecademy.com/learn

From there I would browse existing successful teams' public code repositories on GitHub. It's like CAD - you don't know what you need to know until you see an example of it.
  #17   Spotlight this post!  
Unread 28-04-2015, 12:59
gblake's Avatar
gblake gblake is offline
6th Gear Developer; Mentor
AKA: Blake Ross
no team (6th Gear)
Team Role: Mentor
 
Join Date: May 2006
Rookie Year: 2006
Location: Virginia
Posts: 1,934
gblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond repute
Re: How to: Teach java?

A few folks have mentioned Eclipse.

To complement Eclipse, I'll mention NetBeans. It is tightly affiliated with Oracle and the rest of the Java community. It was easy for me to learn as a Java beginner. It has some fancy features that I might get around to using some day, but until I want to use them, they don't get in my way.

Eclipse on the other hand, never makes me happy. Probably because I have invested less time into using it than I have invested into NetBeans. However, there might be a fundamental difference in ease of use. Tools that emerge from the Unix/Linux community often assume users have a tremendous depth and breadth of knowledge, and/or expect you to understand instinctively subjects like the convoluted, terse syntax used writing a regular expression.

If I had a nickel for every time a *nix tool or help file used a word or phrase for which I had no definition or antecedent, I would have a lot of nickels....

About Visual Studio and C#... I have to agree that switching from Java (+NetBeans) to C# for one project was just about as easy as falling off a log; but my prejudices against Microsoft's attempts at global hegemony (and my curmudgeonly belief that C# was created and promoted for business reasons, not for technical reasons) caused me to switch back to using Java as soon as that one project was over.

Blake
PS: If writing FRC robot code is made easy by some plug-in or other tool integrated into Eclipse, but not into NetBeans, that makes the choice pretty easy.
__________________
Blake Ross, For emailing me, in the verizon.net domain, I am blake
VRC Team Mentor, FTC volunteer, 5th Gear Developer, Husband, Father, Triangle Fraternity Alumnus (ky 76), U Ky BSEE, Tau Beta Pi, Eta Kappa Nu, Kentucky Colonel
Words/phrases I avoid: basis, mitigate, leveraging, transitioning, impact (instead of affect/effect), facilitate, programmatic, problematic, issue (instead of problem), latency (instead of delay), dependency (instead of prerequisite), connectivity, usage & utilize (instead of use), downed, functionality, functional, power on, descore, alumni (instead of alumnus/alumna), the enterprise, methodology, nomenclature, form factor (instead of size or shape), competency, modality, provided(with), provision(ing), irregardless/irrespective, signage, colorized, pulsating, ideate

Last edited by gblake : 28-04-2015 at 13:42.
  #18   Spotlight this post!  
Unread 28-04-2015, 14:18
AndyB871 AndyB871 is offline
Registered User
FRC #0871
 
Join Date: Jan 2012
Location: East Islip
Posts: 37
AndyB871 has a spectacular aura aboutAndyB871 has a spectacular aura aboutAndyB871 has a spectacular aura about
Re: How to: Teach java?

@mathking robocode looks pretty neat, I think im going to combine a bunch of ideas here. I'm going to start with the MIT course first, using a couple of individual challenges along the way. Once they get comfortable with that I think we'll take a look at robocode and then finally WPIlib.

As for the IDE sub-conversation, I used to be a VS buff myself, but at work we develop software for small embedded platforms, hence no microsoft support. Short of using a text editor *blegh* I gave eclipse a try and i've come to love it, in all it's obfuscated glory.

Since I'm familiar with it, and since we're going to be stuck with it (essentially) for FRC I'm going to take the trial by fire route with eclipse and just commit to it. As issues crop up I'll show them how to navigate through the piles and piles of configuration options.

Thanks guys, this has been really helpful
  #19   Spotlight this post!  
Unread 28-04-2015, 14:29
gblake's Avatar
gblake gblake is offline
6th Gear Developer; Mentor
AKA: Blake Ross
no team (6th Gear)
Team Role: Mentor
 
Join Date: May 2006
Rookie Year: 2006
Location: Virginia
Posts: 1,934
gblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond repute
Re: How to: Teach java?

Quote:
Originally Posted by AndyB871 View Post
...
As for the IDE sub-conversation, I used to be a VS buff myself, but at work we develop software for small embedded platforms, hence no microsoft support. Short of using a text editor *blegh* I gave eclipse a try and i've come to love it, in all it's obfuscated glory.

Since I'm familiar with it, and since we're going to be stuck with it (essentially) for FRC I'm going to take the trial by fire route with eclipse and just commit to it. As issues crop up I'll show them how to navigate through the piles and piles of configuration options.
...
I understand. Eclipse comes with both blessings and curses.

Folks tell me that the Notepad++, sup'ed up text editor is not *blegh*. Ima gonna try it someday soon, but I haven't yet. It might be a nice lightweight intro that leads a student toward Eclipse or other IDEs, without quite so many fires or trials on day one. It's probably worth a quick peek.
__________________
Blake Ross, For emailing me, in the verizon.net domain, I am blake
VRC Team Mentor, FTC volunteer, 5th Gear Developer, Husband, Father, Triangle Fraternity Alumnus (ky 76), U Ky BSEE, Tau Beta Pi, Eta Kappa Nu, Kentucky Colonel
Words/phrases I avoid: basis, mitigate, leveraging, transitioning, impact (instead of affect/effect), facilitate, programmatic, problematic, issue (instead of problem), latency (instead of delay), dependency (instead of prerequisite), connectivity, usage & utilize (instead of use), downed, functionality, functional, power on, descore, alumni (instead of alumnus/alumna), the enterprise, methodology, nomenclature, form factor (instead of size or shape), competency, modality, provided(with), provision(ing), irregardless/irrespective, signage, colorized, pulsating, ideate

Last edited by gblake : 28-04-2015 at 18:51.
  #20   Spotlight this post!  
Unread 28-04-2015, 16:34
Jalerre's Avatar
Jalerre Jalerre is offline
Registered User
FRC #4965 (FIRE)
Team Role: Alumni
 
Join Date: Apr 2014
Rookie Year: 2013
Location: Anderson, SC
Posts: 147
Jalerre is on a distinguished road
Re: How to: Teach java?

This is a great resource for teaching Java. It breaks it down to the very basics and gives lots of examples. My suggestion would be to pick and choose the lessons that are the most applicable to FRC. And don't forget to utilize the resources that FIRST provides.
__________________
Vex
2013: 415 - Fabrication, Programming, Electrical
2014: 415D - Captain, Programming Lead
FTC
2014: 7354 - Programming Lead
FRC
2013: 415 - Safety Animation, Fabrication
2014-2015: 4965 - Programming & Electrical
2016: 4965 - Captain, Programming Lead, Electrical
  #21   Spotlight this post!  
Unread 28-04-2015, 18:50
David Lame David Lame is offline
Registered User
FRC #0247
 
Join Date: Feb 2015
Location: Berkley, MI
Posts: 84
David Lame is a jewel in the roughDavid Lame is a jewel in the roughDavid Lame is a jewel in the roughDavid Lame is a jewel in the rough
Re: How to: Teach java?

Quote:
Originally Posted by Aero View Post
If you teach them one language for a few weeks than switch over, the differences are just going to confuse them more.

If you're teaching them Java, teach it from the beginning.
If Eclipse being complicated is a worry, I'd recommend IntelliJ IDEA as an IDE - they'll be happy to give your FRC team a free copy of the Ultimate edition if you email them.

For people with absolutely no programming experience, it's going to be hard to teach them pure Java and expect them to pick up on WPIlib easily. You can teach WPIlib from the start, but don't expect them to grasp the language's syntax quickly.
I taught a group of rookies Python over a few months. What I found worked best was getting them through basic syntax, then giving them challenges that required independent research to solve. I find teaching programming works better the more self-directed you can make your class.
Using an easier java environment makes sense. I've only used Netbeans and Eclipse. Both of them aren't very beginner friendly.
  #22   Spotlight this post!  
Unread 28-04-2015, 19:13
Katie_UPS's Avatar
Katie_UPS Katie_UPS is offline
Registered User
AKA: Katie Widen
no team
Team Role: Engineer
 
Join Date: Feb 2008
Rookie Year: 2008
Location: Wisconsinite lost in Texas
Posts: 955
Katie_UPS has a reputation beyond reputeKatie_UPS has a reputation beyond reputeKatie_UPS has a reputation beyond reputeKatie_UPS has a reputation beyond reputeKatie_UPS has a reputation beyond reputeKatie_UPS has a reputation beyond reputeKatie_UPS has a reputation beyond reputeKatie_UPS has a reputation beyond reputeKatie_UPS has a reputation beyond reputeKatie_UPS has a reputation beyond reputeKatie_UPS has a reputation beyond repute
Re: How to: Teach java?

You're receiving a lot of awesome resources. I TA a freshman level intro to C course, and this is a rough outline of what we use (I wrote this up a while ago for my own purposes, so some function calls are C specific)(we also teach pointers but I removed that section):
Code:
Using IDE / Hello World -- how to navigate in IDE/run a program/write hello world
	write skeleton code - what is “#include”, what is main, printf()
	run code once,twice,many times (same thing happens)
	understanding basic debug messages

Varaiables / Printing Basic Variables
	what are variables?
	how do I make a variable?
	how do I print a variable?

Modifying Variables / Scanf()
	printing/changing/printing variable
	using scanf to set the value of a variable

If() statements
	What is an if statement
	How does it work
		if(1) if (0)
		if(x = 1) vs if (x==1)
		different operators (&&, ||, !=, !)
	examples
		using one operator
		using multiple operators

Functions
	how do functions work
	how does return work
	the anatomy of a function (type name(parameters))
	how does a function and main() talk

Loops - for(;;)
	What is a loop
	The anatomy of for(;;)
	examples (use var tables to show behind the scenes)
		counting up by 1
		counting down by 1
		counting up by 2
		counting up by power 2*2*2*2…
		counting down by devision
		printing fractions

Loops - while()
	What is a while loop
	Anatomy of a while loop
	use while loop to count
		use var table
	use while loop to wait for a specific input (ie guessing game)

Arrays - 1D
	What is an array?
	visualizing an array
	anatomy of an array
	using an array
		accessing an element
		filling it with a for loop
		accessing every element with a for loop

Arrays and Functions
	Passing an array
	modifying an array in a function
If for some reason, you really want to write your own curriculum, that has been a tried and true path for teaching complete newbies.
  #23   Spotlight this post!  
Unread 28-04-2015, 22:45
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: 632
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: How to: Teach java?

I have used a pretty wide variety of IDEs, plus command line compiling, in teaching computer science. I settled on Eclipse as the one that produces the best results for my students. There was a while when I considered switching to Net Beans because of FRC robot programming, but I decided to stick with Eclipse because overall I have found it to have the best balance of learning curve and power. I guess I am saying don't feel too bad about sticking with Eclipse.
__________________
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
  #24   Spotlight this post!  
Unread 28-04-2015, 23:04
lagringa841's Avatar
lagringa841 lagringa841 is offline
Registered User
AKA: Critinnnaa
FRC #0841 (The Biomechs)
Team Role: Leadership
 
Join Date: Apr 2015
Rookie Year: 2015
Location: San Pablo, CA
Posts: 2
lagringa841 is an unknown quantity at this point
Re: How to: Teach java?

Hello!
I highly recommend Pogo! He starts teaching Java from Elite. He's great at explaining and he starts from the beginning. My teams head programmer recommended him to many members of our team including me and I've learned so much! Best of luck!!
https://www.youtube.com/user/PogoStick29Dev
  #25   Spotlight this post!  
Unread 30-04-2015, 13:36
WillNess's Avatar
WillNess WillNess is offline
Programmer
AKA: Will Ness
FRC #4944 (The Hi Fives)
Team Role: Programmer
 
Join Date: Apr 2014
Rookie Year: 2014
Location: United States
Posts: 90
WillNess is just really niceWillNess is just really niceWillNess is just really niceWillNess is just really nice
Re: How to: Teach java?

Quote:
Originally Posted by Fusion_Clint View Post
FTC is going to JAVA next year
Is it going to be very similar to FRC Java?
__________________

Outreach Lead // Lead Programmer // Junior

2014 FRC:
Rookie Allstar, Highest Rookie Seed & Semifinalist @ Utah
Rookie Allstar, Highest Rookie Seed & Semifinalist @ Colorado
2015 FRC:
Creativity In Engineering & Semifinalist @ Arizona West
  #26   Spotlight this post!  
Unread 30-04-2015, 13:40
levydev levydev is offline
Registered User
FRC #0116
 
Join Date: Oct 2011
Location: northern va
Posts: 13
levydev is an unknown quantity at this point
Re: How to: Teach java?

No. FTC teams are going to be deploying Android applications. There will be n Scratch like visual programming alternative called MIT App Inventor. However for those choosing to code in Java , they will be using the Android Studio IDE.
  #27   Spotlight this post!  
Unread 30-04-2015, 16:20
RobOTies RobOTies is offline
Registered User
FRC #5122
 
Join Date: Mar 2015
Location: Old Town, ME
Posts: 3
RobOTies is an unknown quantity at this point
Re: How to: Teach java?

I tried teaching Java for FRC for the first time this year with the help of our mentors. We created a series of activities that are on the class website.

We started with the Blockly Activities and then the BlueJ activities. By the end of those activities, students were familiar with the basics of Java programming that are most relevant to using with FRC robots. Then they are using "EasyJ" as a scaffold to building the code, and then they copy and paste it into the simple iterative robot template in Eclipse. From there they can modify the code as needed. Note - "EasyJ" was created last year, so be careful with the port numbers since they start at 1 instead of 0.

The activities need some tweaking for next year, but so far I've been impressed at how students have been able to work together to program our Aerial Assist robot from last year with little help from me. Feel free to use any activities and I welcome feedback to make them better!
  #28   Spotlight this post!  
Unread 30-04-2015, 17:03
JCharlton's Avatar
JCharlton JCharlton is offline
Registered User
AKA: JC
no team
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2002
Location: Montreal
Posts: 119
JCharlton is a splendid one to beholdJCharlton is a splendid one to beholdJCharlton is a splendid one to beholdJCharlton is a splendid one to beholdJCharlton is a splendid one to beholdJCharlton is a splendid one to beholdJCharlton is a splendid one to behold
Re: How to: Teach java?

I'm surprised no one has mentioned Processing.

It's a simple all-in-one that you can use to teach basic programming concepts, while using Java syntax.

I'll admit it might not be the best path to understand FRC robot-objects, but will help new programmers get familiar with basic concepts up to Object properties and methods.

After that then get them started programming in the FRC framework with a "real" IDE.
__________________
"There is no problem so bad that you can’t make it worse." - via Chris Hadfield
  #29   Spotlight this post!  
Unread 30-04-2015, 18:29
Techwiz's Avatar
Techwiz Techwiz is offline
Blake B
AKA: Blake
FRC #4909 (The Bionics)
Team Role: Mentor
 
Join Date: Mar 2009
Rookie Year: 2007
Location: Massachusetts
Posts: 82
Techwiz will become famous soon enough
Re: How to: Teach java?

I'd like to share a tool I've been working on to make WPILibJ programming easier. I'm calling it EasyJ. Its a block environment where each block roughly correlates 1 to 1 with a line of code.

Currently it supports Iterative Robot style programming, but we are working on Command Based.

I'm working with a teacher at Old Town High School and after teaching some Java basics her classe used EasyJ to start programming the robot.

http://easyj.team5122.com/

Hope that helps,
Blake
__________________
Blake
Electrical, Programming and Design

Creator FRC Q&A 2017
Mass FRC Team 4909: The Bionics
Maine FRC Team 5122: The RobOTies (2014-2015)
Maine FRC Team 2648: Infinite Loop (2008-2011)
  #30   Spotlight this post!  
Unread 28-12-2015, 15:11
pafwl pafwl is offline
Franciose
AKA: Frank Larkin
FRC #0272 (Cyber Crusaders)
Team Role: Mentor
 
Join Date: Jan 2005
Rookie Year: 1998
Location: Lansdale, Pennsylvania
Posts: 108
pafwl has much to be proud ofpafwl has much to be proud ofpafwl has much to be proud ofpafwl has much to be proud ofpafwl has much to be proud ofpafwl has much to be proud ofpafwl has much to be proud ofpafwl has much to be proud ofpafwl has much to be proud ofpafwl has much to be proud of
Re: How to: Teach java?

You can access sample code and a presentation from our Comcast FIRST Bootcamp. I presented a section on JAVA/C++. I has a review of Java basics and it presents a method to build your robot code on. This method makes the process very logical, flexible and creating multiple autonomous programs very, very easy.

http://www.frc272.com/files/seminar/Archive/

Good luck... have fun...

Email me directly at pafwl@aol.com.

PS - There is a presentation on using Sensors included and examples in the code.
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 20:48.

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