--
Let's teach someone how to teach these things, capture the
knowledge as best we can, and ask people we teach to teach 2 other
people.
That kind of peer learning is one of my ideas for this, which I'd
like to get going soon in one form or another. I have thought a
lot about this kind of thing as I cofounded an edtech startup
which ran for 6 years.
I just saw some great examples for doing things like that in the last couple days, and other things before. I'll look for some links. It would be great to combine wiki pages, video, 3D models, and simulators in an easy to use web page.
Stephen
To view this discussion visit https://groups.google.com/d/msgid/hbrobotics/CAJMCBuYg4f3KS%3DF0c5%3D4X8razYjeD5%3Dy1LOt7ts2bUULV5-K9w%40mail.gmail.com.
|
Stephen D.
Williams
Founder: VolksDroid, Blue Scholar Foundation |
To view this discussion visit https://groups.google.com/d/msgid/hbrobotics/CAB4wyt1KY33BrPs%2BWkDtVGipzTjU4c_eH3DCvKoiwpJRPjO7qQ%40mail.gmail.com.
First & other robotic leagues are good places to start, although necessarily shallow in various ways.
Here are a few interesting robotics roadmaps. Note that they are all about software & software interacting with hardware, with little or no mechanical design, electrical, construction, sensor characteristics, etc. It would be interesting if we can find some good coverage of that, or make it. I have my own opinions, but not organized yet.
These are not very helpful as is for a 9 year old, or complete beginners at any age. However, from these, we could create simplified, introductory versions of much of this, with paths to increasingly detailed explanations.
A lot of systems & software aren't as simplified as they could be, while some are. Narrowness is not always the best form of simplification, not for long. Creating multiple levels, at least 3-4, of robotics knowledge that can be employed to build working things would be very good. More complex elements can be packaged as black boxes until a higher level.
https://www.kevsrobots.com/blog/roadmap.html
https://github.com/h9-tect/AI-Roadmaps/blob/main/robotics-ai-roadmap.md
https://erc-bpgc.github.io/handbook/roadmap/
https://risc-iitbbs.github.io/risc-handbook/
https://sarrasor.github.io/RoboticsRoadmap/
https://medium.com/@saliimranz12/a-brief-roadmap-to-become-robotics-software-engineer-1e2fbbd66efa
A key part of creating a good roadmap & learning path is explicitly listing each concept that should be understood & mastered. This is generally missing everywhere, and needs a good visual map.
Another aspect is defining types of jobs, depth, and career
paths. Not everyone needs to be a PhD researcher and not everyone
would be a maintenance technician. It is good to clearly define
all of those roles, then to talk about what knowledge &
experience is needed for them. This applies to home brew too.
Maybe we need a "belt" system: "Gear" type / size / color for
mechanical design / technician / engineering? A "tassel" or
"card" or "badge" or "merit" for software areas, topics, levels?
A gmerit & smerit for hardware & software?
Stephen
To view this discussion visit https://groups.google.com/d/msgid/hbrobotics/CAMeC8cTqSJd%3DRUc2Yu6x8ounJaEb_25CWZ2KkZ7oY-n0g1nQJQ%40mail.gmail.com.
For most early & minimal programming, language doesn't matter
much, as long it is a fairly modern language.
I have sometimes felt that (modern) Javascript would be, and
would have been for recent years, better than Python. A lot of
people disliked early Javascript, and the complexities of the
browser environment plus the complexities of frameworks &
build systems for application development made it a mess for a
while. But there is a way to use it that is clean, easy, and
fun. Especially with modern enhancements.
If someone gets Python installed & running with the right libraries (which for a while was a pain on MacOS), it is a good replacement for BASIC, Pascal, etc. while being easier than C/C++. At least we're past the era of colleges insisting on teaching everyone Pascal to start. But there are still colleges (even community colleges in California as of a few years ago) teaching Visual Basic. Which has been obsolete for 20 years...
One thing that is very, very good with Javascript is debugger
support, especially using the Chrome debugger which supports a
remote protocol. I have used that with complex server-side
Javascript code. I have not experienced that level of debugging
with Python yet, or really any debugging that was usable.
Pointers?
Still, we would be better off with Javascript... Better language, better runtime optimizing JIT, the best choice for browser development, a reasonable choice for back end development. The main negative is that threading is awkward, but at least it does exist in addition to async operations (mostly networking, I/O) that were always there.
So I would say that Python & Javascript are the new BASICs. Java was kind of there, and Java-based Processing was very interesting years ago. They found a way to let you start writing code with practically zero boilerplate or complexity, yet it was still full Java. That became ProcessingJS which then became P5js. One good way to learn coding basics with immediate multimedia feedback.
User interfaces are hard, especially if you want anything advanced. Web browsers are the best target for most UI, short of full 3D/VR, although it can do a pretty good version of those too.
One approach to robotics is to use a browser on a mobile phone to interface to and partly / mostly run things. Paired with a microcontroller or other computer, it is a powerful, economical combination.
One thing I've started working with is an embedded Javascript
engine in a C++ program. It is possible to do that with Python
too, but much more messy, difficult, resource intensive.
Stephen
To view this discussion visit https://groups.google.com/d/msgid/hbrobotics/2D6D73BA-7EE1-4B15-B6CF-3D9C6FBFA8EC%40gmail.com.
|
Stephen D.
Williams |
Founder: VolksDroid, Blue Scholar Foundation |
Julia,
The Dexter GoPiGo kits
https://www.dexterindustries.com/gopigo3/
are excellent!
They're not expensive.
They're table-top, easy to assemble in an hour or two.
Have a standard cable interface.
Can connect w/ Lego bricks.
Have a large library of sample programs.
Have a variety of available sensors
with drivers and programs.
Grow easily from simple to sophisticated.
We have a couple of teachers at Houston Community College that built a whole curriculum around them.

James H Phelan "Nihil est sine ratione cur potius sit quam non sit" Leibniz
--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/hbrobotics/445ed8b0-751a-41af-a98a-9673f0ba09d0%40hal-pc.org.
That's something, but TCL/TK is reeaaallyy old and old
fashioned. I think I last programmed TCL/TK over 20 years ago.
It if fine for quick buttons, inputs, etc. But for more complex
things, I think it would be painful.
There are a lot of options for Python. PyQt would be interesting as Qt is just about the only GUI system that rivals web UIs.
https://www.google.com/search?client=firefox-b-1-d&q=python+web+gui
This looks promising, although it has to be more convoluted than
just using Javascript. But in an all-Python context, seems good.
If someone is searching for a clean way to do web development, I
can point out my choices there. I've used React, and I've seen
some good Angular code. But I did early WebComponent web
development and plan to use the modern version of that, usually in
a no-build way.
Stephen
To view this discussion visit https://groups.google.com/d/msgid/hbrobotics/7A3B7897-FFB8-4715-A487-64780D891770%40gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/hbrobotics/39ab5f17-6d8f-48c6-bc5e-ba2a65bbaf25%40lig.net.