Jump to content

Menu

How to prepare for programming classes


Roadrunner
 Share

Recommended Posts

I've coded a little. I think Scratch is great preparation for real programming.

 

I agree. Saying Scratch isn't real programming is like saying basic arithmetic isn't real math. There's certainly a lot more depth to math than basic arithmetic, and you aren't going to be able to use just basic arithmetic to solve complex problems, but no one is going to say that basic arithmetic isn't math because it's simple and introductory.

Link to comment
Share on other sites

Scratch was a great intro for dd. The blocks helped her learn programming concepts. The Scratch community is an amazing resource. Dd can view the coding of programs that do something she'd like to try, and can borrow it to add to her own programs, or remix that project in some way. Dd has been able to do lots of collaboration.

 

She has enjoyed a book called Adventures in Raspberry Pi, which has helped her move from Scratch to Python. She started in on these because she had some programming goals that she could not achieve with Scratch.

 

Sometimes the project goals lead the learning, and sometimes the coding knowledge leads to new projects.

Link to comment
Share on other sites

My brother, who makes good money as a programmer, considers it a matter of personal honor to have the "cleanest" code possible. Not sure how he came to that philosophy exactly, but the amount of junky bloated code in the world aggravates him greatly. He says one his joys in life is being asked to fix a code, and then deleting massive portions of it. Um, ok...lol.

 

Imagine that at your job (8 hours or more a day, 260 days a year), all you do is read dissertations.  Now further imagine that each dissertation consists of densely packed chicken scratch that you can barely read.  Finally, imagine that you are somehow to glean meaningful insight into whatever is being written out, and then add your own insights in the context of said chicken scratch.  Oh, and maybe also correct the grammar mistakes along the way, for good measure.

 

I think very quickly you will come to appreciate that your job is infinitely easier to perform properly if the dissertations were typed neatly and in a consistent format.

Link to comment
Share on other sites

I've been watching this thread too, but have been shy about jumping in because I have nothing helpful to add.

 

Anyways!

 

Ds loves the *idea* of programming but dislikes the straight through logic. He does well with the discovery method but doesn't have a very direct (?) way of thinking. The comment about math being like art in my siggy is his, and it's this type of thinking that seems to hinder him in liking Scratch or the process of programming very much. That, and some LDs (dyslexic profile, insidious vision issue) are what seems to hold him back. In any case, he's expressed interest in programming again. Would there be resources or types of programming that are suited to this type of thinking?

 

Is Scratch the problem, or is it someone's approach to teaching it?  I really don't see the need to enforce formalities too soon.  A computer is just a fancy calculator -- you can use it however you see fit.  As your son said, there's no one right approach.

 

Clean coding skills are needed for a professional delivery -- not for exploration.  Ultimately, a programmer absolutely should understand object orientation and data abstraction.  When your child wants to start publishing apps, then it will be worthwhile to learn to do it well, in order to maximize scalability and stability.

 

A professional who codes like a child is not much of a professional, but I have seen kids who could code circles around many people who do make coding a career.  On the other hand, a child who spends too much effort to be a professional may be missing the artistry and fun in it all.

Link to comment
Share on other sites

Just for fun inspiration,

 

"13-Year-Old Creator of Lego Braille Printer Is Youngest Ever to Receive Venture Capital Funding"

http://www.nbcbayarea.com/news/local/13-Year-Old-Creator-Of-Lego-Braille-Printer-Now-Youngest-Ever-To-Receive-Venture-Capital-Funding-281559331.html

 

I agree with Mike, there is a time to explore and a time to do things professionally.

Link to comment
Share on other sites

I get what you're saying, Mike. Exploration is what I'm hoping for too.

 

Ds never took classes to learn Scratch. He was doing Tynker on the Ipad (sorry I mixed it up. Tynker is Scratch-like however). His complaint was that the "correct answer" is too prescribed. He doesn't actually have a problem with the logic, but wants to do things differently. This is a kid who, from young, didn't like to directly cancel out fractions when multiplying but would work it to a factor for easy conversion into percentages. It isn't as deep as it may sound, but the logic is definitely convoluted. He really thinks those are the clearest routes, maybe because it sets the stage for something else he has in mind.

 

Typing that out, I'm wondering if the starting point is a meaningful project rather than a specific language. We don't have the EV3 nor the Raspberry Pi. And he may want to explore the Scratch community, as Slackermom posted above.

Link to comment
Share on other sites

He was doing Tynker on the Ipad (sorry I mixed it up. Tynker is Scratch-like however). His complaint was that the "correct answer" is too prescribed.

...

Typing that out, I'm wondering if the starting point is a meaningful project rather than a specific language.

My kids played with Tynker and found it too close-ended too.

Some kids create and morph their programs as they go. Some prefer to begin with the end in mind.

For example one of my boys wanted to draw an ice-cream on one of Khan Academy's programming module. So he drew his draft on scrap paper then figure out how to program it. After that he had fun modifying a program posted by another user to make it the way he like it.

 

I won't worry about a specific language until AP CompSci. Now is the time to experiment and have fun with any language he wants to use.

Link to comment
Share on other sites

My kids played with Tynker and found it too close-ended too.

Some kids create and morph their programs as they go. Some prefer to begin with the end in mind.

For example one of my boys wanted to draw an ice-cream on one of Khan Academy's programming module. So he drew his draft on scrap paper then figure out how to program it. After that he had fun modifying a program posted by another user to make it the way he like it.

 

 

That's great to know, Arcadia! I'm a total noob where programming is concerned. I remember ds' happy days when all he wanted to do was Lego and Mindstorms (his building was better than his programming :)) but all that has vanished in the last 2 years. I haven't exactly been active in helping him find the next progression- Tynker didn't work out. I shall look at more robots.
Link to comment
Share on other sites

I know they say no experience, but I was hoping somebody here has taken the class to reassure me that they mean it. :)

 

Yes, they assume no experience but it is fast-paced, so I think a little bit of experience can be helpful.  

 

I would go through the first half of  Python Programming for the Absolute Beginner or Hello World.  Since you have a couple of years, take it easy and go through them slowly.  I never really like a break-neck pace to learning.  I prefer to learn in small bits and let it sink in.  

 

Good luck!  

Link to comment
Share on other sites

Mukmuk,

 

Have you looked into arduinos?

Hi Desertflower, no I haven't. Many people I've spoken to have seen the kits abandoned after awhile. Maybe because it's too open ended? Depends on the kid too. Have you had success? What is a good entry point into that?

 

TIA!!

Link to comment
Share on other sites

Hi Desertflower, no I haven't. Many people I've spoken to have seen the kits abandoned after awhile. Maybe because it's too open ended? Depends on the kid too. Have you had success? What is a good entry point into that?

 

TIA!!

 

I just wrote up a post on this topic.  It is open-ended unless you have a book to provide direction and some interesting projects.  

Link to comment
Share on other sites

My kids did RobotC for Mindstorm during the Hour of Code. There is a 10 day trial link on the software publisher site.

 

http://www.robotc.net/download/nxt/

 

A familiarity with programming flow charts would be useful

https://www.udemy.com/blog/flowchart-examples/

I don't mean to hijack the thread but I have a question for those of you that were discussing Lego... how is using this programming different than using the software that comes with the Ev3. what can it do that the other cannot? is it easier, harder?

Explain please :-)

Link to comment
Share on other sites

We were using "spaghetti code" even back in the 70's.  It's appalling how much meandering, unfocused code there is in the wild.  It has been that way for what seems like forever.

 

MIT's "structure and interpretation of programming" is a real treasure in this regard.  It is no longer taught, but it is still available on OCW, if you hurry.  It's one of the masterpieces of computer science teaching.

 

 

SICP gets pretty math heavy pretty quick. It is an amazing book but I think it would be *very* rare for a younger kid to be ready for both the level of abstract thinking and math sophistication.

 

Luckily there are other great books with all the same lisp/schemey goodness that don't assume as much math. "How to Designs Programs 2nd ed"[1] is from professors at Northeastern and Brown and is free online and currently in use a Brown. "Simply Scheme" was written by Brian Harvey while he was teaching the intro courses at Berkeley in scheme. It is both available free online[2] and as a cheap used book(<$10 shipped)[3]. Either of these would be great for a bright interested high schooler. Quirky, out of fashion... but great.

 

Both of these books could also be fun to noodle around with while reading "Goedel, Escher, Bach" if you happen to enter the field through that path.

 

[1] http://www.ccs.neu.edu/home/matthias/HtDP2e/

[2] http://www.eecs.berkeley.edu/~bh/ss-toc2.html

[3] http://www.amazon.com/gp/offer-listing/0262082810

Link to comment
Share on other sites

QUT (Queensland University of Technology, Australia) has two MOOC courses coming up

 

The first one starting 16th Feb, 2015 has a project which could be done using Mindstorm NXT or EV3

 

https://moocs.qut.edu.au/learn/introduction-to-robotics-february-2015-814

 

The second one require knowledge of vectors and matrices and start 13th April, 2015

 

https://www.qut.edu.au/study/short-courses-and-professional-development/short-courses/robotic-vision

Link to comment
Share on other sites

QUT (Queensland University of Technology, Australia) has two MOOC courses coming up

 

The first one starting 16th Feb, 2015 has a project which could be done using Mindstorm NXT or EV3

 

https://moocs.qut.edu.au/learn/introduction-to-robotics-february-2015-814

 

 

What would you say are requirements? It looks like we would need higher math and programming knowledge. My kd wants to try, but i don"t think this is doable for young age.

Link to comment
Share on other sites

What would you say are requirements? It looks like we would need higher math and programming knowledge.

Looks like algebra 2 is needed in terms of math (ETA: matrices and vectors, Larson algebra 2 has a matrix chapter, AoPS has matrix in precalc). Are you familiar with Matlab? Link below is for 2014 edition of Matlab programming fundamentals in pdf

 

https://www.mathworks.com/help/pdf_doc/matlab/matlab_prog.pdf

 

I intend to see if the library has a copy of the textbook used for the courses and just audit both courses.

The textbook is Robotics, Vision and Control by Prof Peter Corke

http://www.amazon.com/Robotics-Vision-Control-Fundamental-Algorithms/dp/3642201431

 

ETA:

Older boy is curious about programming the TI-84 but I am not keen to spend the money yet so the mathlab free to use during class license would be useful. Hubby had use mathlab during his elect. engin. undergrad. Hubby was the one who saw the course listed on Fatwallet

Link to comment
Share on other sites

SICP gets pretty math heavy pretty quick. It is an amazing book but I think it would be *very* rare for a younger kid to be ready for both the level of abstract thinking and math sophistication.

 

 

 

:ph34r:   Maybe so, but I didn't find such things overly challenging when I started out coding at a young age, so I have a tendency to believe kids are more capable than they are given credit for.

 

We are talking MIT-OCW on this count, so it would be a safe assumption to expect a little mathematical maturity if you want to try that route.  DS12 is really enjoying it, but he has an "algebra 2" level of understanding.

Link to comment
Share on other sites

A little late to the party but fwiw www.ev3lessons.com has some good info on programming the Ev3 robot, from beginner to advanced. Dh is a robot programmer for his job and he would agree that while it isn't the same it does help start teaching them logic and some of the skills are transferable. We started our own FLL team as well and it has been good for getting ds' feet wet. We are preparing now for the local 4H robotics competition and it also has competitions in scratch, as well as little robotics (although not specifically Lego robots). It seems so far that 4h is much easier to get into as their competitions (they are much more laid back and open-ended) and I know our local chapter is begging for people to start teams and has money there waiting. 

 

I was considering a programming class through homeschool buyers co-op for ds next year, it seems to be well reviewed. I don't know past that. I've asked dh but to him that is an insane question as the world of programming is so broad. To him the similarities would be the math and logic, so I guess past that we are looking for interest, which is why we're doing Legos. 

 

FTR dh is militant about clean code, it drives him insane. He also makes them label their code as well, to show that they understand why they are using various commands/functions

Link to comment
Share on other sites

DS did Mindstorms about 2 years ago and stuck with it for all of one summer, maybe less. He spent about a day or two with Scratch when he was 9 (I think). No Alice. Maybe a day or 2 of Python when he was 10 before deciding he is not interested in programming at all.

 

Fast forward to this semester. He decided to try intro to C++ and is loving it. Loves creating neat little non-assigned additional tricks in assigned projects. Textbook: Starting Out With C++ which he highly recommends to others like him.

 

Maybe it's his math background and some logic via eIMACS and working with his tutor the last few years. Maybe it's just the sudden strong interest. Fingers crossed that he will continue to love it.

 

Just thought I'd add some hope for those with kids like mine who didn't think they'd ever get into programming or go past just the very basics.

Link to comment
Share on other sites

how is using this programming different than using the software that comes with the Ev3. what can it do that the other cannot?

The software that comes with mindstorm is drag and drop style programming, similar to Scratch.

 

The RobotC programming software that I mentioned is line/text programming, similar to Python and other text programming language. Text programming languages are usually more versatile/open-ended and are what is behind the user interface that you see.

Link to comment
Share on other sites

Textbook: Starting Out With C++ which he highly recommends to others like him

Just in time since I'll be at the library tomorrow while kids are at class :)

If you have a spare old laptop/PC or a Raspberry PI, you can get him to load any Linux he like. The GNU C++ compiler should be already in the operating system.

 

Math logic does help programming :) Has he done Boolean algebra/computational math?

 

ETA:

Computational physics was my 2nd choice for undergrad after engin.

Link to comment
Share on other sites

A little late to the party ...

 

FTR dh is militant about clean code, it drives him insane. He also makes them label their code as well, to show that they understand why they are using various commands/functions

 

Welcome to the party!

 

Would you mind sharing some examples of "unclean" code?  

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...