Jump to content

Menu

If your child is learning programming/coding...


Recommended Posts

How do you keep up/progress with the learning? I have read that if not used, any skills learned in a particular class tend to disappear. I cannot come up with a trajectory of learning for this sort of subject because I can barely use excel, myself :)

 

If you have a child that has a specific goal, such as build an app or 3D game or website or whatever, you can just work towards that goal collecting the tools as you go along. But if there's no such goal, and you want programming to be learned just for its sake, how do you progress along without just dabbling? I mean, there is no "do the next thing" here is there?

Thanks for any thoughts.

 

Link to comment
Share on other sites

I can't speak as a teacher, but I can as a student. I've taken various programing courses over the year in various languages. I've also self-taught some languages. I may forget syntax for a specific language, but all the main concepts (how if/then statements work, types of loops, how to search/sort data, etc) stick around in my memory. So when I go back to programming (in a previously learned language or in a new one) it's just a matter of refreshing my memory/learning new sytanx and doesn't take long at all.

Link to comment
Share on other sites

I just let the kids do what they do.

 

In college, they prefer all the students take the first computer science class, regardless. My son did very well on the AP computer science course. He knew this stuff very well. He had been programming for years and my husband is a software engineer.  He is the one who would break in to the blue screen and reprogram to get around the admin password when he was young. When he went to college, he did skip the first computer science class. The college allows it. But, they said later, when I was talking one on one with the head of the department, that the students who come in advanced tend to do the worst in the end. He said he would prefer to just have all students start with the first class so they can learn it the way the college teaches it. We have actually heard that from every single college we visited (UT Austin, TAMU, Baylor, etc).

Link to comment
Share on other sites

DS tested out of the basic computer science course also.  They did not accept the AP test and he said only 18 out of the 1000 or so freshmen passed their test.   He majored in CS and did fine.   I think he said the test was in some other language but apparently enough of it was common for him to pass it.  (He graduated this year, so this was all  four years ago and the details are now fuzzy.)  .And he knows he didn't miss anything by not taking the course because everyone and their brother came to him for help with it.

 

 

During his high school years, he "played" with his computer every time I turned around.  I just let him go.  He taught himself how to program HTML, CSS, Java Script, PHP, & MYSQL, made websites and apps.  I'm not familiar with most of those and just based his grades on the fact that his "final projects" always worked.  

 

 

 

If you have a child that has a specific goal, such as build an app or 3D game or website or whatever, you can just work towards that goal collecting the tools as you go along

 

He claims that this is the only reasonable way to learn programming, not through a course with tests and homework.  Seems to have been successful.

 

 

Link to comment
Share on other sites

Ds is doing programming all on his own. A class would only slow him down. As for progress, I listen to what he's doing, when he started he would show me projects he worked on. I am programming illiterate, so anything I would try to help would be pointless. He does have his own laptop and desktop, Internet available, and free reign to do what he wants to his computers. 

 

He watches a lot of tutorials. 

Link to comment
Share on other sites

I agree that creating one's own project and working on it steadily is a better learning experience than working with the time/resource constraints of a course. Courses are useful, but open-ended exploration gives more learning opportunities.

 

Within programming, there is a progression of skill. As the code is written, a student can ask:

1) Is the solution logically composed? If the requirements changed, would the code need to change extensively?

2) Is the solution efficient? Does it make unnecessary repetitions or use a lot of memory? Would it scale well with large amount of data?

3) Is the solution extensible? Can a friend use my code in another project easily? 

 

To that end, I would encourage the students interested in the programming field to use frameworks/languages that allow such exploration, and try projects with code 'in use', e.g. Apache's open source projects. 

Link to comment
Share on other sites

  • 4 weeks later...

How do you keep up/progress with the learning? I have read that if not used, any skills learned in a particular class tend to disappear. I cannot come up with a trajectory of learning for this sort of subject because I can barely use excel, myself :)

 

 

 

You can type into a search engine "python programming assignment" and see what turns up.  I did that a couple of times and found nice projects for my dd that were just at her level.  

 

Project Euler also lots of interesting programs.

 

Also, as you move along in math, you may see projects which seem to lend themselves to programming.  For example, dd learned about the Stable Marriage Algorithm and wrote a program that allows you to select the number of men and women to be matched, runs the match over and over hundreds of times, and calculates the average rank of the matched persons for men and women.  If you assume men are doing the proposing, then the men are matched to their higher ranked women than women are to me.  

 

As someone else on this list said, sometimes it's a matter of chasing rabbits down different holes and learning things that are interesting.  

Link to comment
Share on other sites

I'm also not really trying to track it.  They do what they do, as others are saying.

 

I have thought about this a little, as I know very little about programming - just a little html and rss (and by little, I mean, really little) - I don't feel like I have the ability to track or keep tabs on what they do with it completely and I feel that's fine.  I also have not worried too much about what language they use or learn.  I assume that ds learning something utterly professionally useless like Scratch will still be helpful to him in the long run because it's teaching him the principles of programming and that general idea will continue to convey as he learns new languages, which he's already started to do a little bit.

Link to comment
Share on other sites

What age and what have you done so far?

10. He's played around with scratch, done that minecraft youth digital class, and also a one week id tech camp where they worked with scratch and java.

Thanks for all the responses. I am not fully convinced that this is an area worth focusing educational resources in at this point, but assuming it is, I am not sure letting him "do his own thing" is the approach to take with my own kid. Because 1. It wouldn't get done, as he doesn't have the basic tools to go out there and teach himself code and 2. We do not take that approach with anything else we decide to focus resources on, like math or English or foreign language, so not sure why I should do that here. Anyway, we are doing the aops python class this fall. Thanks again everyone.

Link to comment
Share on other sites

10. He's played around with scratch, done that minecraft youth digital class, and also a one week id tech camp where they worked with scratch and java.

Thanks for all the responses. I am not fully convinced that this is an area worth focusing educational resources in at this point, but assuming it is, I am not sure letting him "do his own thing" is the approach to take with my own kid. Because 1. It wouldn't get done, as he doesn't have the basic tools to go out there and teach himself code and 2. We do not take that approach with anything else we decide to focus resources on, like math or English or foreign language, so not sure why I should do that here. Anyway, we are doing the aops python class this fall. Thanks again everyone.

 

Think of programming like learning an instrument:  There are kids who do lessons, and dutifully take out their exercise book and open it for 30 minutes a day or whatever the teacher requires, and practice.  There are other kids who do what the teacher requires and then add on:

 

They decide that D-major is their favorite key, and translate a bunch of songs to that key to see what they sound like. They buy or download their own sheet music of songs they've heard and like and bring them to lessons to learn.  They find musical friends and put together a neighborhood band.  etc. 

There are very few musicians who are 100% self taught, but becoming a great musician involves both lessons and the desire to keep adding on by exploring music on your own.

 

Another example might be art:  You can send your kid to art class for an hour a week, but budding artists are keeping sketchbooks and drawing more at home as well to improve their skills.

 

Programming is like that:  Becoming a great programmer means trying to write programs on your own, not just what has been assigned.

 

For example, DD (13) has written programs to: quiz herself on ballet vocabulary, play mad-libs, and animate drawings.  She's also used the computer for science fair, and wrote a program to format, sort, and organize data downloaded from NASA. Her program to do her algebra homework automatically didn't work, but it did provide incentives to learn about more complex programming techniques.  She has started to use Stack Overflow to figure out how to solve various issues that come up with her ideas.

 

My little brother was a baseball card fanatic.  He wrote lots of fantasy baseball programs as a kid.  Even in college and professional life, when he had to learn a new programming language, the first thing he did was try to write a baseball simulation game in that language.

 

Lots of time to explore self-directed programming projects (alongside or in between the classes and books) is an important part of maturing as a programmer. 

Link to comment
Share on other sites

I do think personality plays a role in how kids pursue self-directed projects.  My 16 yo son currently plans to obtain a degree in CS or Comp Engineering.  He spends little time playing around with programming.  But, when he has a goal oriented project, he applies himself to it quite well.   He has always been this way with most tasks.  He wants to have direction and specific goals and while he does set his own goals, he is busy also with a variety of responsibilities.  He does not have time to do much self directed programming.  He has taken classes in Visual Basic and Java and has a paid internship this summer involving machine learning to manage data sets.  Just to say, if your child is not doing a lot of self directed programming, I do not think that necessarily means they will never be a great programmer.

 

If your son does the AoPS python class, I would imagine after that he would be ready to tackle some of the coursera and or udacity free, online classes in python, data structures or algorithms (generally considered college lvl). 

Link to comment
Share on other sites

Trilliums- thanks very much for your post. My son is exactly the same, in that provided with a task and a bit of structure that is not completely defeating, he applies himself and does quite well. He loved that camp where they did nothing for 6 hours a day but program, and has asked to do an even longer one next year-- yet, upon returning home he hasn't touched a thing related to it. Thanks again.

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...