6 ms·
> We were exposed to some kind of lego-related programming, uhhh, thing in school, but none of us had any idea how to do anything beyond what was in the instruc
by cabaalis 9y ago
> We were exposed to some kind of lego-related programming, uhhh, thing in school, but none of us had any idea how to do anything beyond what was in the instructions. While it was fun, it was no more educational than a video game and had a similar impact.
I wonder how many of these "teach your kid STEM" toys have this result. I learned to program when my mom got me a vtech precomputer 1000 for Christmas when I was a kid. But becoming a "developer" took many years of effort. Hopefully more kids will be set on the path like I was.
- Jemmeh 9y agoEh, I get that it is limited in a "Okay but how do I step out of this toy environment and actually do stuff" kind of way, but I think it teaches people how to use their logical thinking without overloading them with information. I think that almost gets taken for granted, but I did an escape room recently and it really showed me just how bad most people are at just generally putting two and two together and solving problems.
- Waterluvian 9y agoSame! I had a logic gates robot game for my apple II, Lego mindstorms, and FIRST robotics through high school. Which really helped because I didn't come close to the grades needed to get into CS or engineering. I didn't Hello World until my 20s, and it took years to really grok the programming world, but I think my lifelong exposure to logic and programming of sorts made all those concepts accessible outside of a classroom environment. Ie. I could understand what a python snippet was doing because I knew what a loop and conditional was.
- anonemouse145 9y agoThis. A logic class could do the same thing if you could get a good, modern logic class. Internalizing for loops, if-else, while, boolean, etc is a universal benefit that would help anyone break into programming. Sadly, I've taken some really bad logic classes. Usually this is because they use terrible toy languages that are artificially difficult to work with. They should just do those classes in Javascript or python or something, after they cover the old Aristotelian logic bit. (Socrates is a man, all men are mortal...) You could rig up a test suite to brute force truth tables and verify when you create correct logical statements. It would be a blast. Instead you spend all year having to derive known logical theorems from scratch. Because reasons? Example:!(x and y) == (!x or !y). I had a class where in the toy language it took a whole hour to derive that theorem. Instead, how about we have to draw out a truth table or actually use that statement? You can do that in half the time and get more from it. I've had to use that in programming all the time. You can flip if!(!x.isEmpty and !y.isEmpty) into if(y.isEmpty or x.isEmpty)... If I typed that right. Comes up all the time refactoring or simplifying logic.
- barbersturgeon 9y agoSounds like prolog or minikanren would suit this - built in search is great as long as you don't accidentally make it exponential tine complexity
- philippejara 9y agoA logic class teaches logic, worrying whether people get interested in programming because of it is at best irrelevant and at worst detrimental to the subject(such as allowing the students to brute force it all, missing the point completely). That's like expecting the calculus class to foster programing interests because they use matlab. Maybe i'm missing something, but what does for-loops have to do with logic in a way that it might be part of the class?
- abecedarius 9y agoAs Leibniz put it, it's a goal of logic to be able to say "well, let's calculate" when you have a dispute. Truth tables are about the simplest way to calculate logic, but they don't scale. I think a good intro course could be made starting there and working up to fancier methods, explaining logic and computing together. My article https://codewords.recurse.com/issues/four/the-language-of-choice https://codewords.recurse.com/issues/four/the-language-of-ch... aimed in that general direction, though it's for people who can already program, because I wasn't ready to tackle anything more ambitious.
- philippejara 9y agoMy problem isn't with the idea of using truth tables to solve problems or using languages to assist in the class, but with the bizarre expectation that logic classes that make you to actually use the subject matter and prove stuff in a -supposedly- scalable way are somehow not modern(whatever that means) and the "right" way to teach such logic classes is teaching the basics of control flow. You can go in a direction of explaining logic and computing together, and by what I skimmed from your article it does seems to be a cool way to tackle the problem, but that's not what someone who takes a logic class should expect from it, they should expect it from the "topics of logic in computing or something like that" class.
- c-smile 9y agoSometimes you just need one joke from elders, here is my story: https://www.quora.com/Are-there-any-lies-that-your-parents-told-you-as-a-kid-that-you-believed-for-longer-than-youd-like-to-admit/answer/Andrew-Fedoniouk-1?srid=CZX0 https://www.quora.com/Are-there-any-lies-that-your-parents-t...
- jaequery 9y agoI've always felt that the "Scratch" programming that the kids are doing these days may actually get them turned off on programming. While easier to get the kids started, I think the kids quickly start to feel just how mundane and boring programming is when they are just dragging and dropping pre-set elements on their screen all day. The ones that are meant to program would flourish under a computer with just a black and white Terminal app on their disposal. But give them Scratch and I think they will be thinking of other careers.
- mtpn 9y ago> The ones that are meant to program would flourish under a computer with just a black and white Terminal app on their disposal. I don't know about "meant to". I avoided writing anything but plain HTML and CSS for years because I thought I wasn't a programming type person (wasn't smart in the right way, didn't like math, hit brick walls with basic as a teenager, etc). The terminal did nothing for me and still isn't my favorite place to be, but I do really like writing little web apps that solve problems and work. Programming, like most things, is available to anybody who wants to do the work to understand it and can put in the hours to get competent. I see the risk in Scratch turning some kids off and would never suggest just providing anybody with one option for how to learn a skill. But I don't know about this "meant to program" idea. I'm more in favor of fostering the curiosity that can fuel real learning by any means that work.
- kbsletten 9y agoYeah, this "meant to" attitude seems a little be self-aggrandizing. I feel like that's a very convenient way to say, "programmers only club, no _others_ allowed." My favorite thing has been teaching scratch in middle school and realizing how non-obvious programming aptitude is. Some real "nerd"-types don't have any actual skill and others who are little socialites or behavior problems take to it with ease. Makes you realize how not special us programmers are.
- trgn 9y agoHTML/CSS is the right kind of programming to introduce to kids. It teaches a lot of the cognitive skills that you need as a programmer (attention to detail, what you see is _not_ what you get, ability to abstract a problem); that combo teaches a lot of programming concepts (encapsulation, separation of concerns); and it is,last but not least, REAL and eminently useful. A lot of that lego-scratch-type-programming is completely useless once you take it out of that sandbox. HTML/CSS will be there at the heat death of the universe. HTML/CSS does not teach things like algorithms and data-structures, but it doesn't need to. It's complex enough that kids with an affinity for programming will find it stimulating, but not so complex that dumbo Timmy over there can't do at least something productive with it. And it straddles that line between nerdy-programming and design, so you can engage the creative kids as well. Family member's been teaching HTML/CSS to 14-15 year olds, with good results. Like all class topics, the engagement-distribution is a bell curve. 10% is lost like a puppy at sea, 80% is following along with varying degrees of success, and 10% are absolutely doing amazing things and taking it way beyond the class contents. One difference with the other type of kids-programming isn't that some robot scoots around the gym, but that at the end these kids are making goofy 90's websites, with bonker color-schemes and bouncing images. Parents and administration love the former. The latter only really clicks for parents with some familiarity in the domain.
- mlinksva 9y agoI misread "lego" as "logo" when reading the post, because that was my experience. Before having a computer at home took an extracurricular BASIC class which in hindsight I learned almost nothing from but it whet my appetite. The intermediate class had us draw stuff with Logo, which I felt was stupid, and turned me off of programming for awhile. Probably my fault, now Logo looks like an interesting language.
- coupdejarnac 9y agoI just finished creating a LOGO class, and I feel it's best for elementary school aged children. If you took LOGO over the age of say 12, it probably seemed childish and useless. But for younger kids, I think they can get interested in computing with LOGO. You can do some cool stuff with LOGO like create state machines, implement sorting algorithms, and create simple games.
- flavio81 9y ago>If you took LOGO over the age of say 12, it probably seemed childish and useless. Yes. However, at a fundamental level, LOGO is actually an advanced programming language.
- jacobolus 9y agoLogo is a great tool to use to learn visually about basic shapes and their properties (circles, polygons, conic sections, spirals, various sorts of roulettes, ...), logic, graphs of data and functions, fractals, cellular automata, synthetic geometry including projective geometry, transformation geometry and symmetry, basic number theory, complex arithmetic, polar coordinates, trigonometry, the logarithm/exponential functions, matrix algebra, linear regression and other statistical tools (Kalman filters!), optimization, basic probability, dynamical systems, lattices, group theory, graph theory, vector calculus, mechanics, optics, electric circuits, special relativity, 3d vector graphics, searching and sorting, trees, mazes, robot planning, game AI, .... Or really anything you want, though after several years of experience students might find other tools more convenient for some types of modeling.
- tomsmeding 9y ago
- lomnakkus 9y ago> vtech precomputer 1000 I had no idea that was even a thing, even though I'm definitely of your generation, though probably not in the same general area, situation, etc. You should have had an Amiga, C64, or C128 or... I'm happy that you made it, though!
- megaman22 9y agoI still think QBasic is one of the better ways to get people interested in programming. It starts off very simple, but you can really go a long ways with it. Plus it's got some pretty powerful, yet easy to access graphics and music capabilities built right into it. My first programming class in high school, we went from Hello World to creating an animated Christmas card, with MIDI Christmas carols accompanying it, in the first semester. QBasic might not have been the greatest language, but it had a pretty sweet IDE, fantastic live documentation, and was really just fun to play with. I feel like there ought to be a packaged up Python distribution with the same kind of attributes, but I've never really seen anything that really aced that spot the same way.