|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools |
Rating:
|
Display Modes |
|
|
|
#1
|
||||
|
||||
|
Re: How to: Teach java?
If you want something simpler for new students our 2014 robot code is very minimalist (no feedback loops or fancy objects) while still containing most of what you'd find in typical FRC code.
We typically have a generic skid-steer drivebase on hand for new programmers to work with after giving them a crash course on the control system and introducing them to C syntax and OOP (we start out by teaching them about variables, loops, scope etc. then give them challenges they must complete on their own like sorting an arbitrary array). When they're competent at programming we teach them WPI lib, and when they can make a simple robot run we have them start deriving drivebase kinematics and learning control loops on their own with a little bit of guidance and oversight. We also have 0 programming mentors on our team, so this is all done by student captains. Our robot code this year was written entirely by sophomores on the team who were completely new to programming last year and has had PID-corrected strafe, field centric and robot centric holonomic drive code (from when our robot had slide drjve lol), a position and velocity PI controller for our elevator and more all designed by them. Last edited by Spoam : 27-04-2015 at 20:06. |
|
#2
|
|||
|
|||
|
Re: How to: Teach java?
@Spoam, that's more or less what I've done with LabView for the students. Do you have a set of challenges that you cycle through or are they typically new each year? Some examples?
This feedback is great BTW, thanks so much! I won't feel so underprepared this Thursday's session! |
|
#3
|
|||||
|
|||||
|
Re: How to: Teach java?
Team 3946 has some java lessons and tutorials written by Gixxy, our founder. We also use Java for Dummies, and of course, the screenstepslive wpilib getting started and java tutorials.
|
|
#4
|
||||
|
||||
|
Re: How to: Teach java?
Quote:
In a similar vein, we used a lot of (the simpler) project euler problems to get them into critical thinking and problem solving with code. Along the way there would also be small challenges relevant to what we just taught them (like classes, file access, functions etc). Eventually we just tell them "write code so that this drivebase can move in all directions from joystick input" or "research x and y and implement it". If they get stuck, we give them guidance. Captains are always present for troubleshooting and tuning and review code before putting it on the robot (both to verify it will work, and to make sure it meets our standards). |
|
#5
|
||||
|
||||
|
Re: How to: Teach java?
Try this, FTC is going to JAVA next year and FIRST hired Intelitek to design a curriculum for the change. It is supposed to have 4-5 hours on the MIT app and another 5-7 hours on straight JAVA. Won't be available until September.
http://www.intelitek.com/pdf/FTC_Brochure_Final.pdf |
|
#6
|
||||
|
||||
|
Re: How to: Teach java?
This one is OK, but it doesn't contain anything about FIRST Robots.
Oracle's Tutorial |
|
#7
|
|||
|
|||
|
Re: How to: Teach java?
If you are dealing with students who have absolutely no conventional programming experience, my advice on teaching Java is to download Visual Studio Express, and teach them C# for a few weeks. The languages are practically identical at the beginning level.
The advantage of Visual Studio/C# over Eclipse/Java is that the development environment is much easier to deal with. It's easy to set up Eclipse wrong and end up with something that doesn't work at all, with the problem being some obscure checkbox behind the scenes that no one would know to look for. Also, Intellisense on C# works better than its equivalent in Java. Finally, the easiest programs to work with for object oriented programming concepts are ones with a user interface, and Windows Forms programs are very, very, easy to write. Once they get variables, functions, classes and objects down, it will be fairly easy to transition over to Java and the FRC environment. Sure, they'll have to start typing String instead of string, but that's an easy transition. Of course, I'm a Microsoft partisan myself. Programmers are notoriously religious about their favorite tools and languages, so a lot of people will think this is absolutely terrible advice. However, in the little bit of teaching I have done to absolute beginners, I've just found C# easier to deal with. |
|
#8
|
|||
|
|||
|
Re: How to: Teach java?
Quote:
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. |
|
#9
|
|||
|
|||
|
Re: How to: Teach java?
Here is an interesting online tutorial that lets you write and execute basic code in the browser: http://www.tutorialspoint.com/java/index.htm. As you read through you'll see some sample code and a "try it" button. While in "try it" mode , you are able to change the code.
This may be a good way for someone to get started without being overwhelmed by the JDK and IDE installation. Although that would eventually be needed. |
|
#10
|
||||
|
||||
|
Re: How to: Teach java?
For an introduction to Java that kids can really dive into, try Robocode. I use it to introduce kids who don't have any programming experience to the basics of Java in the summer before they start my AP Comp Sci class. I am also happy to share some other lesson ideas if you would like. Send me a message.
|
|
#11
|
||||
|
||||
|
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. |
|
#12
|
||||
|
||||
|
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. Last edited by gblake : 28-04-2015 at 13:42. |
|
#13
|
||||
|
||||
|
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 |
|
#14
|
|||
|
|||
|
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 |
|
#15
|
||||
|
||||
|
Re: How to: Teach java?
Quote:
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. Last edited by gblake : 28-04-2015 at 18:51. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|