OCCRA
Go to Post Here on CD, we are all one big FIRST team, mentoring each other. - Joe G. [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Events   CD-Media   CD-Spy   FRC-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #16   Spotlight this post!  
Unread 07-12-2012, 03:02 PM
Joe Ross's Avatar Unsung FIRST Hero
Joe Ross Joe Ross is offline
Registered User
FRC #0330 (Beachbots)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1997
Location: Los Angeles, CA
Posts: 7,939
Joe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond repute
Re: Team with beginner programmers?

Quote:
Originally Posted by ktrobotcreator View Post
Personally I hate LabView and would NOT recommend a beginner to use it. It can be very confusing and the logic behind it is much more complicated to understand than that of C++ and Java.
Due to the fact that dataflow programming is a different paradigm then object oriented programming, it can often be harder for someone who already knows a textual language to transition to LabVIEW then for a beginner to pick up LabVIEW from scratch. It sounds like you might have had that issue.
  #17   Spotlight this post!  
Unread 07-12-2012, 03:06 PM
AdamHeard's Avatar
AdamHeard AdamHeard is offline
Lead Mentor
FRC #0973 (Greybots)
Team Role: Mentor
 
Join Date: Oct 2004
Rookie Year: 2004
Location: Cal Poly San Luis Obispo
Posts: 4,575
AdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond repute
Send a message via AIM to AdamHeard
Re: Team with beginner programmers?

Quote:
Originally Posted by Joe Ross View Post
Due to the fact that dataflow programming is a different paradigm then object oriented programming, it can often be harder for someone who already knows a textual language to transition to LabVIEW then for a beginner to pick up LabVIEW from scratch. It sounds like you might have had that issue.
Agreed.

In my curriculum we use labview for some courses, matlab for some, and then mechatronics is in assembly/C++. My classmates that have never experienced programming before have much, much more trouble with the text based programming in terms of understanding.
__________________
Need help? Check out 973 Remote Assistance and Mentorship Program.

Like us on Facebook!

2014 Galileo Champions
2011 World Champions

Like our Robots? Check out the CAD files of MOST of our robots!
  #18   Spotlight this post!  
Unread 07-12-2012, 03:23 PM
Hugh Meyer's Avatar
Hugh Meyer Hugh Meyer is offline
Registered User
FRC #1741 (Red Alert Robotics)
Team Role: Mentor
 
Join Date: Feb 2009
Rookie Year: 2008
Location: Greenwood Indiana
Posts: 137
Hugh Meyer is a splendid one to beholdHugh Meyer is a splendid one to beholdHugh Meyer is a splendid one to beholdHugh Meyer is a splendid one to beholdHugh Meyer is a splendid one to beholdHugh Meyer is a splendid one to beholdHugh Meyer is a splendid one to beholdHugh Meyer is a splendid one to behold
Re: Team with beginner programmers?

This book, C++ for Everyone, is very good if you want to learn C++. Our team did a full 16 week class last year using this book. If you work through this book you will lean a bunch about C++.

http://www.wiley.com/WileyCDA/WileyT...HEP001707.html

-Hugh
  #19   Spotlight this post!  
Unread 07-12-2012, 04:46 PM
JohnGilb JohnGilb is offline
Programming Mentor, Drive Mentor
FRC #0488
 
Join Date: Mar 2011
Rookie Year: 2003
Location: Redmond, WA
Posts: 97
JohnGilb has a spectacular aura aboutJohnGilb has a spectacular aura aboutJohnGilb has a spectacular aura about
Re: Team with beginner programmers?

Quote:
Originally Posted by Joe Ross View Post
Due to the fact that dataflow programming is a different paradigm then object oriented programming, it can often be harder for someone who already knows a textual language to transition to LabVIEW then for a beginner to pick up LabVIEW from scratch. It sounds like you might have had that issue.
Just a small correction - I think the best comparison to make (and feel free to correct me) is that LabVIEW is a dataflow language, and C++/Java are imperative languages.

All of them can be used to write in an object-oriented fashion, though doing so in a dataflow language may feel extremely different.
  #20   Spotlight this post!  
Unread 07-12-2012, 08:20 PM
Katie_UPS Katie_UPS is offline
Sometimes I do neat stuff.
AKA: Katie Widen
no team
Team Role: College Student
 
Join Date: Feb 2008
Rookie Year: 2008
Location: Ames, IA
Posts: 857
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
Send a message via Skype™ to Katie_UPS
Re: Team with beginner programmers?

Quote:
Originally Posted by profamous View Post

Can anyone show me where to start programming in Java? Either in general or FRC based. This is my first language ever so I have no clue what an IDE is or anything like that.
I can't link you to any specific websites/tutorials. I would go to your library and find an intro to Java book. Then, to just get used to the language, I would do simple tasks:
-Write your "hello, world" code : This teaches you the very basic structure of how to code in that language.
-Create something that takes user input and manipulates (in a simple manner) it and gives output (ie does addition with two numbers, or capitalizes words) : This will teach you basic variable manipulation*.
-Go to Project Euler and try to solve the problems.
-Create a simple program that does something that you think is cool. My friends and I, to learn languages at school, wrote chose-your-own text adventures. I wrote a game of checkers and a program that solved the "chickens and cows" math problem with any number of heads/legs(I couldn't find a non Q&A example of that problem). These are good because you do something you find interesting while finding ways to use certain programming tools/techniques.

These are basic steps to getting you familiar with how to write code in java without having access to a robot/any other machines. If you can, find a bored Computer Science or Computer Engineering college kid and have them teach you (other majors may know Java as well, but I wouldn't know which) (or a bored Computer Scientist or Computer Engineer)(or anyone who is bored and knows Java).

If you need more help, you can private message (PM) me (and probably anyone else who responded in this thread).



*A lot of programming is taking numbers/data and assigning them to variables (like how in math you have the unknown number that we are calling "x". In programming you can call this number "NumberOfBananas" or "NumberOfMonkeys" and pick what you want that number to be, and change what you want that number to be, and then use that number) and then manipulating your variables (maybe you'll divide NumberOfBananas by NumberOfMonkeys so that you can tell the user how many bananas each monkey gets).
  #21   Spotlight this post!  
Unread 07-16-2012, 04:40 PM
MAldridge's Avatar
MAldridge MAldridge is offline
Lead Programmer
AKA: Rube #1
FRC #0418 (LASA Robotics)
Team Role: Programmer
 
Join Date: Jan 2011
Rookie Year: 2010
Location: Austin
Posts: 117
MAldridge will become famous soon enoughMAldridge will become famous soon enough
Re: Team with beginner programmers?

I would say that if you can get ahold of a team that uses java, see if they will send you their code. That way you can see how it is implemented. For me, starting at hello world was frustrating, but then again, my first language was assembly for apple II.
__________________
'Why are you a programer?' --Team Captain
'Because the robot isn't complicated enough!' --Me
  #22   Spotlight this post!  
Unread 07-16-2012, 09:15 PM
nightpool's Avatar
nightpool nightpool is offline
robotRectifier
AKA: Evan
no team (formerly of CORE 2062)
Team Role: Alumni
 
Join Date: Oct 2011
Rookie Year: 2011
Location: Waukesha, WI
Posts: 62
nightpool is an unknown quantity at this point
Re: Team with beginner programmers?

Quote:
Originally Posted by JohnGilb View Post
Just a small correction - I think the best comparison to make (and feel free to correct me) is that LabVIEW is a dataflow language, and C++/Java are imperative languages.

All of them can be used to write in an object-oriented fashion, though doing so in a dataflow language may feel extremely different.
While C++/Java is definitely imperative, and Labview definitely ISN'T, it might be more useful (and more in line with the terminology of the rest of the programming world) to categorize them such:

Java: Object-oriented, as Java is probably one of the only strongly object oriented languages, EVERYTHING in Java is an object and that is enforced by the compiler.

C++: Imperative (But most of the wpilib is written with OO)

Labview: Functional (As in, everything is functions acting on data that passes between them. While this misses out on some of what Labview is, the difference between dataflow languages and functional ones mainly has to do with execution order, and it's not really THAT big of a difference, as many similar concepts and styles are shared)

Labview can't natively be used in an OO style, by the way, as it has no concept of state. You'd have to pass around the state of the object to each method you want to call.
__________________
Proud alum of CORE 2062.
www.core2062.com
  #23   Spotlight this post!  
Unread 07-16-2012, 09:19 PM
MAldridge's Avatar
MAldridge MAldridge is offline
Lead Programmer
AKA: Rube #1
FRC #0418 (LASA Robotics)
Team Role: Programmer
 
Join Date: Jan 2011
Rookie Year: 2010
Location: Austin
Posts: 117
MAldridge will become famous soon enoughMAldridge will become famous soon enough
Re: Team with beginner programmers?

I agree, although as a happy labview programmer, I like it's stateless nature. Admittedly, if you come from the OO, or for that matter, the text based world, it takes some getting used to.

Once you are used to it though, it works great. It also is great if you haven't ever programmed before, because it is easy to go from stateless to OO, just not the other way round.
__________________
'Why are you a programer?' --Team Captain
'Because the robot isn't complicated enough!' --Me
  #24   Spotlight this post!  
Unread 07-16-2012, 09:36 PM
Fletch1373's Avatar
Fletch1373 Fletch1373 is offline
Registered User
AKA: Fletch
FRC #3555 (Aluminati)
Team Role: College Student
 
Join Date: Jan 2008
Rookie Year: 2004
Location: Connecticut
Posts: 228
Fletch1373 has much to be proud ofFletch1373 has much to be proud ofFletch1373 has much to be proud ofFletch1373 has much to be proud ofFletch1373 has much to be proud ofFletch1373 has much to be proud ofFletch1373 has much to be proud ofFletch1373 has much to be proud ofFletch1373 has much to be proud ofFletch1373 has much to be proud of
Send a message via AIM to Fletch1373 Send a message via MSN to Fletch1373 Send a message via Skype™ to Fletch1373
Re: Team with beginner programmers?

Quote:
Originally Posted by nightpool View Post
Java: Object-oriented, as Java is probably one of the only strongly object oriented languages, EVERYTHING in Java is an object and that is enforced by the compiler.
I'd like to pass on something that one of my former Computer Science professors once told me. "Java is not an Object Oriented language."

Okay, some of you are probably going to need a little explanation. He went on to explain how a language as a whole can't be object oriented. Some languages just make it significantly easier to program that way. For example, C++ has special syntax that is needed is order to follow the OOP paradigm, whereas Java requires that syntax no matter what you're writing. Java, however, can be written in a functional way. You could easily write a (simple) program in Java with the full body of it in the main function, potentially using a few other static methods as well.

Sorry to hijack the thread. If anyone cares to continue this, please PM me. I love philosophical discussions of all kinds.
__________________
<04: 213 - BAE> <05-08: 1373 - CT>
<09: 809 - PA> <09: CT - Inspector>
<10: 809 - VA> <10: WPI, BOS, CT, CMP - Inspector>
<11: CMP - Official Scorer> <11-12: 3555 - CT> <11-12: WPI - FTAA> <11-12: CT - Inspector>
<12: 73 - Mentor> <12: CMP - CSA>

  #25   Spotlight this post!  
Unread 07-16-2012, 11:51 PM
Greg McKaskle Greg McKaskle is offline
Registered User
no team (Team NI)
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Austin, TX
Posts: 4,000
Greg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond repute
Re: Team with beginner programmers?

Quote:
Labview can't natively be used in an OO style, by the way, as it has no concept of state. You'd have to pass around the state of the object to each method you want to call.
First off, I wanted to say that you did a good job on the language analysis. Kudos for getting deep into language features.

I thought I'd offer a few clarifications about LV. First off, LV really isn't purely functional, nor is it purely data flow. Pure data flow tends to use fork and join operators in order to make conditions and repetition, and in the end it is tedious and practically like using gotos. The authors intentionally merged the control structures with the more pure data flow expressions to create what they believe to be a more usable hybrid.

As for OO, it is true that initially LV didn't have objects or classes. About fifteen years ago an external Swedish company started adding OO to LV. They called it GOOP. There were a few others, and it was very interesting to see how each approached the extensions.

Ultimately, the LV team felt that in order to do it in a way that was more true to the language, we would need to do it internally. So perhaps 8 or ten years ago, the OO features started being integrated.

One of the more unique things you'll notice is that objects use by-value-semantics -- meaning that wires contain the value, rather than a reference to the value of the object. This is similar to how stack objects are done in C++. Anyway, this matches how LV does arrays, strings, and obviously scalars. It makes some OO algorithms trivial and complicates others a bit where the goal was really to create a topology of objects. In that case the user can define a reference type whose value copy can choose between a deep, shallow, counted, or other copy semantics. At this point, very little of the libraries that ship with LV are OO, but a good number of external professional SW development libs adopt it quite heavily.

Greg McKaskle
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 09:52 AM.

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


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