I will be teaching a summer camp about robotics for elementary school students. This camp will be about ev3 and VEX iq. However, there is a problem regarding which programming software to use. The camp could either utilize vexcode iq with lego’s programming software or utilize graphical robotc, which can use be used in both EV3 and VEX iq. My adult supervisor has also already both the lincenses to use robotc to its full potential. I personally think that having two different programming languages might be a little cumbersome but graphical also has many limitations. What do you guys think? Should we utilize graphical or vexcode iq with ev3’s software?
I think it’s best to use iq code with ev3 software, as it was easy for me to grasp as a students
So robotc then? What other benefits are there to robotc that you have observed?
Unless you have a particular need for functionality that’s present in ROBOTC but not VEXcode (and for running camps, you probably don’t), I’d lean towards VEXcode. ROBOTC is not being actively maintained and I find the VEXcode interface to be more intuitive overall.
(and on the EV3 side, the new programming environment “EV3 Lab” is also based on Scratch and looks pretty similar overall to VEXcode IQ – so I wouldn’t worry too much about using two different programming environments under those circumstances)
As someone who did FLL and used robotic the biggest benefit I see is the skill ceiling. Robot C is extremely simple to pick up while still giving students to get better and better at coding. I used robotic for 3 years and in that time I wasn’t able to get to multiple things but I wis still able to learn so much.
I find Graphical RobotC and Vexcode IQ to be about the same difficulty, but VEXCode does have some things that make it easier, such as being able to set up a drivetrain.
Hey @74656A I’m a hugh fan of the Robot Mesh programming environment for IQ, thats what I use with the elementary roboteers.
Given your situation with doing both Lego and IQ, I’d go with the common platform, that way all of the load, save, download processes are the same and you are just teaching programming. And since it sounds like you have experience and the licenses it seems the best path forward.
I still have an epic ton of Cortex / controllers and I use RobotC text to program them. (And the two 0.5 PIC brains that I have running some LED displays. They will get exchanged out this winter for RPis to manage the holiday lights.)
Good luck with your summer sessions!
My daughter’s school will be restarting their summer robotics camp soon, as well, after no summer camp last summer due to Covid. This is one of the questions we’ve been grappling with, too. Stay with Graphical RobotC or move to VexCode IQ. The way I see it, this may be a good time to start the pivot over to VexCode IQ. I don’t see much of a big difference between the scratch based usability of VexCode vs Graphical RobotC (VexCode may be prettier). But one thing that may swing the pendulum is that VexCode is not tied to Windows and can be used from devices like an iPads or Chromebook. And there’s support for Remote code download.
Thanks @Foster ! The only issue I have with graphical is that I am a little unsure as to the extent that robotC will even be supported. I don’t want to teach a language that will become obsolete, but the shared environment argument makes sense. These elementary schoolers might also be forced to used cortex in middle and high school, which would make robotC a better option. Can someone tell me the estimated time that robotC will still be supported for VEX IQ?
Here’s what I would do with regard to week-long summer camps:
Beginning “robotics” camp: graphical
Beginning “programming” camp: graphical for elementary, text for MS/HS
Advanced “robotics” camp: graphical for elementary, text for MS/HS
Advanced “programming” camp: text
Here’s my rationale:
“Robotics Camp” should be about robots, which involves both mechanical and programming aspects. The goal of a beginning camp should be to build, operate, and program robots as quickly as possible, while learning the mechanical details like speed, torque, gear ratios, etc, without being bogged down by learning text-based syntax. “Programming Camp” on the other hand would be expected to be more programming/syntax. If using robots in “Programming Camp”, they should be simple (build in half a day, then get to the programming), or be pre-built.
Regarding the particular programming language, it really doesn’t matter: do what is easiest to work with for you for this year. Our camps were shut down last year, but before that we were using RobotC with the Carnegie Mellon free online curriculum. You’ll probably be changing every couple years anyway. 50% of the students may never program again for years so the thing that is most important is not the program itself (that is, the syntax, commands, {},) but the thought process that goes into programming. If you can get your students to think through the logical step-by-step process (think flowcharting), then most every programming software is about the same, whether it be Sinclair (or TRS-80) Basic, Fortran 77, Pascal, Robot C, or C#, the skill that needs to be created, and will “transfer” from program to program, is the process of programming.
For the longer term, in our organization we steer the young IQ kids to graphical, encourage the MS IQ to switch to text, while the advanced HS and our U-team tend towards PROS.
You’ll need to get that from @jpearman, he has his finger on stuff like that.
As kmmohn said, once you program something you can transition to the new syntax pretty easy. I do graphical with the elementary and middle school students, since I want to teach the concepts and not futz around with all of the syntax. A bonus for me is that Robomesh blocks will give you the Python code and you can modify and go from there (but you can’t go back). I think one of the VEX code things does that (or it’s on the drawing board)
VEXcode IQ will show you C++ code that’s equivalent to the blocks code you’ve written, and will let you convert that code to a new text project. But there is no conversion to Python since that language is not supported by VEXcode IQ.
do scripting, visual is useless in life
@jpearman how long do you think robotC will continue to support vex iq products?
It’s unlikely there will ever be any new development efforts for RobotC, the last version we built was back in 2017. RobotC does not support V5, GO or 123, all future development effort will go into the VEXcode product line. It will remain viable for IQ and cortex as long as there is no breaking change caused by Windows 10.
VEXCode is great, but it has some major flaws. There are no multiple files in vexcode text, which makes it impossible to use it with github. Robotc has its own flaws, but it has a lot of desired features such as debug stream, sensor debugging window, data logging. There are a lot of things I could teach kids before they move up to VRC with Pros. I wish there is a pro version of vexcode for vex iq team.
FWIW you could track a .iqcpp file in a git repo just like any other file – if you open one in a text editor, all your code is there, just wrapped in some JSON along with the configured devices and some other metadata about the project.
(Admittedly, git will behave a little weirdly – among other things, the whole .iqcpp file is one long line, so anything that tracks changes in your source code line-by-line will not work as intended – but if what you want is file synchronization and version history, that should work fine.)
Yeah. I know the iqcpp file could be checked into repo like any other file. But in our case, we have multiple students working on different functionalities, e.g. one student is in charge of writing all the libraries, and auton routes are done by different students. I’m teaching them with gitflow with branching, pull request, merging etc. All of them cannot be done with just one iqcpp. How are you gonna do a branch merge with just one file, and there is always gonna be conflict, which cannot be resolvable. That’s why all of our top IQ teams are not using VEXCode at all.
Yeah, for sure if you want to do stuff like that, git will not play nicely with the .iqcpp format.