Gifted Issues Discussion homepage
Posted By: Quantum2003 1st programming languages - 08/08/13 07:51 PM
I think I noticed one or two threads a while back touching on this subject but it is a hassle trying to locate them and I am not sure if they are directly applicable. My own computer knowledge/programming experience is so ancient that I would not want to rely on it.

Anyhow, which programming languages are ideal as a 1st language and why? Does the age of the learner matter? What resources are effective for self-teaching purposes (as opposed to an actual course)?
Posted By: 1frugalmom Re: 1st programming languages - 08/08/13 08:19 PM
Not sure exactly what you are looking for but our girls have played some with Scratch. They found it fun, but weren't excessively interested (meaning they didn't constantly ask for computer time to play around with it).

http://scratch.mit.edu/
Posted By: Bostonian Re: 1st programming languages - 08/08/13 08:24 PM
A recent thread on this topic "Codecademy (learning to program in Javascript)" is at

http://giftedissues.davidsongifted.org/BB/ubbthreads.php/topics/138843/1.html .
Posted By: polarbear Re: 1st programming languages - 08/08/13 09:04 PM
FWIW my ds liked Scratch when he was young (he was intro'd to it at school). He's studying Python on his own (self-paced, has a "how-to" book that we got through a reference on these boards). He tried one of the online Java courses - I can't remember who it was through - but it required a lot of debugging from me and dh.... and he ended up dropping it because it wasn't all that appealing to him.

polarbear
Posted By: Zen Scanner Re: 1st programming languages - 08/08/13 09:19 PM
I'd say Scratch for any age as a first language because by its nature it encourages play and exploration to learn the language. It also minimizes the impact of syntax learning on the development of programmatic thinking and design skills.
Posted By: amylou Re: 1st programming languages - 08/08/13 09:22 PM
Our kids did Scratch first, and then Gamemaker (the latter in a NUMATS GLL online course). Ds then studied making IOS apps. Now he's studying Java through GLL because he wants to create a Minecraft mod to establish his programming cred in the Minecraft world. The next step of the plan is for Mojang to hire him so he can spend the rest of his life in Stockholm programming Minecraft. He's 13yo.
Posted By: GinaW Re: 1st programming languages - 08/08/13 11:22 PM
DS9 played a little with Gamemaker when he was 7- but he didn't really understand what he was doing. Sort of like doing math with no numerical understanding- just following the prescribed set of rules. He's doing Python now, self-taught with a book (Python for kids). He seems to be getting a better understanding of what he's doing instead of blindly following steps.

Edited to add: We also love the MIT course and DH has been watching it to head off any questions from DS.
Posted By: Quantum2003 Re: 1st programming languages - 08/12/13 03:47 AM
I think that I will at least let DS/DD take a look at that when I get around to encourage programming language acquisition.
Posted By: Quantum2003 Re: 1st programming languages - 08/12/13 03:51 AM
Thanks for the link. There are a lot of useful information in that thread. I am marking it for future reference.
Posted By: 22B Re: 1st programming languages - 08/12/13 03:52 AM
The last programming I did was in Fortran.
Posted By: Quantum2003 Re: 1st programming languages - 08/12/13 03:53 AM
While I'll have DS/DD look at Scrath first, either Python or Java will likely be the first real programming language I'll steer them towards.
Posted By: Quantum2003 Re: 1st programming languages - 08/12/13 03:55 AM
Interesting - I think that DS will have more issues with syntax than programmtic thinking/design skillls.
Posted By: Quantum2003 Re: 1st programming languages - 08/12/13 03:57 AM
LOL. DS, another minecract afficionada since age 8, will be in the next cubicle/office!
Posted By: Quantum2003 Re: 1st programming languages - 08/12/13 04:00 AM
Thanks - that was very informative. Based on the little bit that I have learned, it seems that Python would be the "best" choice in general, but DS is really into minecraft so Java may have more appeal whereas DD would need some external motivation to get her to learn any programming at all.
Posted By: Quantum2003 Re: 1st programming languages - 08/12/13 04:02 AM
It's good to get confirmation that there are good sources aimed at kids, especially for self-teaching. I have my eye on the MIT course from Bostonian's thread.
Posted By: Quantum2003 Re: 1st programming languages - 08/12/13 04:04 AM
Fortran was my second language (college) and back then it was one of the languages of choice for differential equations applications.
Posted By: Bostonian Re: 1st programming languages - 08/12/13 11:50 AM
Originally Posted by Quantum2003
Fortran was my second language (college) and back then it was one of the languages of choice for differential equations applications.
It is still being used in scientific computing and has been modernized substantially since the FORTRAN 77 you probably used. There are free compilers gfortran and g95 that can be tried.

Nowadays many engineers use Matlab, the full version of which is expensive. The student version for high school and college students is cheaper. Octave is a free alternative compatible with Matlab but does not have a GUI. Python with SciPy has many of the capabilities of Matlab and is what I'd recommend for students who want to program for scientific research.


Posted By: Quantum2003 Re: 1st programming languages - 08/13/13 06:55 PM
I figured as much! In those days, the university had huge mainframes to do the compilations. We only used macs for word processing/grahpics and pcs were not far from its infancy.

I imagine that programming lanaguages today are quite different from the Pascal and Fortran that dominated in the maith/science disciplines back then. That is why I am completely clueless and count on my children being able to teach themselves.
Posted By: Zen Scanner Re: 1st programming languages - 08/13/13 07:06 PM
In some ways I think Python is the thought cousin of Pascal. Philosophically, Python is a living language and plans to adapt with or without downward compatibility to implement improvements in design or methodology.

My interaction with Fortran was in a high school summer program in 84; we were supposed to input a Fortran program to calculate predicted flight times for model rockets. I translated it into BASIC and ran it on an AppleII in some secretary's computer at the college. -smirk- I won the award for best predicted average flight time for my two rockets.

Posted By: Quantum2003 Re: 1st programming languages - 08/13/13 07:37 PM
Interesting. Pascal was the language of choice for introductory programming courses back in my day. I think it was conducive to teaching the basics of programming to beginners. Perhaps that is also true for Python
Posted By: madeinuk Re: 1st programming languages - 08/13/13 07:38 PM
I am so old that I have always liked the parsimony of good old fashioned C. My K&R still sits up there on my office book shelves and even though I never use it anymore I am loath the throw it out. I think that C allows learning of the fundamentals very well without a whole lot of syntax to worry about. I have worked with far too many 'expert coders' from the wizards and other gadgetry generation that hardly know what bits and bytes are let alone basic error checking not to insist on giving someone a solid grasp of the fundamentals first. From there if there appears to be a sustainable level of interest then move to OO with Java. If you want to try Java on steroids then try Grails.

Incidentally Fortran is still very much alive and kicking over at Bloomberg...
Posted By: Quantum2003 Re: 1st programming languages - 08/13/13 08:01 PM
In my day, C was for real programmers (computer science majors). Pascal provided the basics for math/science majors as well as everybody else. Fortran was used to supplement math/science instruction in specific courses.

I kind of see the parallel between the DOS vs. Windows generations. Back in the DOS days, I felt much closer to my PCs and able to trouble-shoot problem. These days there are so many layers between my keystrokes and what the machines are actually doing. It may just be because I have not kept up with technology.
Posted By: Bostonian Re: 1st programming languages - 08/13/13 08:25 PM
Originally Posted by madeinuk
I am so old that I have always liked the parsimony of good old fashioned C. My K&R still sits up there on my office book shelves and even though I never use it anymore I am loath the throw it out. I think that C allows learning of the fundamentals very well without a whole lot of syntax to worry about.
Harvard's popular intro course CS50, for which materials are available online, uses C as its primary language.
Posted By: Chana Re: 1st programming languages - 08/16/13 01:38 AM
I want to start my DD8 on the path to learn programming. I was hoping to find something that I can put on an Android tablet that someone gave her. There is a Scratch 2 Games. Does anyone know if this is what I am looking for? Does anyone have any other recommendations for an Android device?
Posted By: Zen Scanner Re: 1st programming languages - 08/16/13 04:09 AM
No, that is just a video bundle of examples that someone put together. I don't believe Scratch is out for Android. Depends on what level you want to start with. There is Lightbot which is a puzzle game that relies on programmatic thinking to solve levels.

MIT also has App Inventor which is a streamlined way to make Android apps: http://appinventor.mit.edu/explore/content/hellopurr.html

If you want to head right at code, there are a few Python options for the Android.
Posted By: Chana Re: 1st programming languages - 08/16/13 04:39 AM
ZS, I am not sure where I want to start. She is 8 and she loves Simulation games on the Ipad. She does a number of them, but the old Ipad 1 is going to dad and she has a new Android tablet that someone gave her. We are homeschooling her and would like to get her started on a track that will develop programming skills.

I am starting at ground zero and I want something she can do on her tablet on her own, if possible. She will be much more interested in it, if it is on her device rather than on the computer. I am considering putting Minecraft on her tablet, but I don't know enough about it. I have heard people talking about Minecraft and Java but I don't know how that fits in and if that is for down the road when someone has a good amount of experience in both Minecraft and Java.
Posted By: Bostonian Re: 1st programming languages - 04/14/15 03:43 PM
I am reviving this thread to mention the essay below. The author, who works at a firm that uses OCaml, recommends it and similar languages. I've programmed in Python, VBA, Fortran, and the functional languages look hard to me. But since my 11yo son is already comfortable with Python, something very different could be a good learning experience for him.

How to choose a teaching language
by Yaron Minsky
November 17, 2014

Quote
As was highlighted by an informal study by Philip Guo, lots of schools now teach Python, particularly for early introductory courses. I have mixed feelings about this choice. Python is a wonderfully friendly language, but that friendliness is bundled together with some problems.

This was made apparent to me in part by my experience with students who chose to code in their interviews in Python. In many ways, Python is the ideal interview language, since its concise and readable syntax makes the constraints of coding on the whiteboard more bearable. But what I saw was that students who learn Python often walk away with a rather rough model of the semantics of the language. You might be surprised at what fraction of students who have programmed extensively in Python can't guess how Python lists might be implemented, to say nothing of their ability to explain the semantics of language features like generators or decorators.

This isn't really a knock on Python. After all, there's something great about a tool that lets you get things done without fully understanding how it works. But in different ways, both Scheme and C encourage you to understand what's going on from the ground up, and there's a certain pedagogical power in that. All in, I think Python is a great choice for an early introductory course, particularly one meant for those who aren't going to end up as computer scientists or full-time programmers. But I'd be leery of using it outside of those circumstances.

A development that I'm personally rather encouraged by is the emergence of statically typed functional languages, ML in particular, as teaching tools. Over the last few years, I've had the pleasure of visiting and lecturing at a number of schools that teach using OCaml or SML, including Brown, Cornell, Penn, Princeton, CMU and Harvard.

ML has gained ground for good reasons. First, it shares much of Scheme's elegant intellectual foundations, even though its core isn't quite as charmingly minimalistic as Scheme's. But ML has a wider range than Scheme because it allows you to show students the role of types in programming. Despite that greater range, OCaml and SML are relatively simple languages, which matters even more for teaching than it does for everyday use.

The only choice I've seen a lot of that I can't reconcile myself to is Java.
Posted By: Mom2Two Re: 1st programming languages - 04/14/15 05:12 PM
I haven't read the other responses. But, I do think age matters.

For example, one of my kids taught himself scratch at age 7. At 7, I wouldn't have wanted him doing Java or C. He learned scratch so well, that at 9 I handed him a JAVA book. He taught himself that and is actually fairly good. He hasn't been formally taught, he just figures it out.

At 12 with a kid who wasn't showing any interest in programming, I signed him up for a Visual Basic course. That went so well, that the next class was C. After C, came Java. Part of the order was determined by available classes.

So two different kids, two different paths, both kids love to program.
Posted By: iynait Re: 1st programming languages - 04/14/15 05:43 PM
Code combat is excellent. It's a RPG game where one has to learn to write programs to control the character. Several different programming languages can be chosen.
http://codecombat.com/
Posted By: Bostonian Re: 1st programming languages - 08/04/15 07:12 PM
Learn Coding Before School Starts
by Erick P. '17
MIT Admissions Blog
August 2, 2015

Both the blog post (in the form of a Python program smile ) and the comments are informative.
Posted By: BenjaminL Re: 1st programming languages - 08/04/15 07:57 PM
"Elementary school - I got a book on HTML from the library" Wow this makes me feel old having started learned to code in elementary school on a TRS-80.
Posted By: madeinuk Re: 1st programming languages - 08/04/15 11:52 PM
Bostonian,

I like the format and I tend to agree with their points.

Posted By: ElizabethN Re: 1st programming languages - 08/04/15 11:56 PM
Originally Posted by BenjaminL
"Elementary school - I got a book on HTML from the library" Wow this makes me feel old having started learned to code in elementary school on a TRS-80.


You said it. I learned BASIC in elementary school on a 4k PET with a cassette tape drive.
Posted By: bluemagic Re: 1st programming languages - 08/05/15 12:07 AM
Originally Posted by ElizabethN
Originally Posted by BenjaminL
"Elementary school - I got a book on HTML from the library" Wow this makes me feel old having started learned to code in elementary school on a TRS-80.


You said it. I learned BASIC in elementary school on a 4k PET with a cassette tape drive.
Junior High.. same thing. By High School I was coding circles around the typing teacher who was supposed to be teaching us BASIC.

The difference is back then there weren't many programs already build. So if you didn't learn to code on it.. the computer was boring.
Posted By: ElizabethN Re: 1st programming languages - 08/05/15 05:00 AM
Remember getting a magazine that had a program in it and typing the whole thing in? Then debugging it because you never typed it perfectly?
Posted By: Bostonian Re: 1st programming languages - 08/05/15 01:04 PM
Originally Posted by ElizabethN
Remember getting a magazine that had a program in it and typing the whole thing in? Then debugging it because you never typed it perfectly?
When our eldest son was 8 or so we gave him unfettered access to a PC without an Internet connection. He did type in programs from books and try to run them. Lots of books on programming are still being published, but programming magazines are dying out. Their successors may be sites like Hacker News that link to programming blogs.
Posted By: madeinuk Re: 1st programming languages - 08/05/15 03:27 PM
Originally Posted by ElizabethN
Remember getting a magazine that had a program in it and typing the whole thing in? Then debugging it because you never typed it perfectly?

Haw! Yes, I do LOL
Posted By: LRS Re: 1st programming languages - 08/21/15 01:19 PM
I was rereading this thread because my son is asking to learn programming. He knows some from Jr. FLL robotics, Minecraft, and is fairly proficient at Scratch.

We got a book on modding for Minecraft, and he's going to start working on that with his uncle.

Has anyone used "codecademy"? I wonder if he'll be able to do a fair amount of that independently. He's homeschooled and unfortunately I have a very low tolerance for frustration with tech (and a 3 year old!)
Posted By: Bostonian Re: 1st programming languages - 08/21/15 02:16 PM
Originally Posted by LRS
I was rereading this thread because my son is asking to learn programming. He knows some from Jr. FLL robotics, Minecraft, and is fairly proficient at Scratch.

We got a book on modding for Minecraft, and he's going to start working on that with his uncle.

Has anyone used "codecademy"? I wonder if he'll be able to do a fair amount of that independently. He's homeschooled and unfortunately I have a very low tolerance for frustration with tech (and a 3 year old!)
There was a thread Codecademy (learning to program in Javascript).
Posted By: George C Re: 1st programming languages - 08/21/15 02:42 PM
I remember writing Choose Your Own Adventure games on the Apple IIe back in the day... in Applesoft BASIC.
Posted By: HowlerKarma Re: 1st programming languages - 08/24/15 02:09 AM
Hmmmmm... punchcards... stacks of 'em.

Yes, I guess I am that old. grin

DD enjoyed Codeacademy, btw-- I will also add that the offerings there are a bit limited, but it's definitely worth the time to invest.

I believe that may be how DD learned PYTHON-- or maybe it was something else.
Posted By: bluemagic Re: 1st programming languages - 08/24/15 03:39 AM
Originally Posted by HowlerKarma
Hmmmmm... punchcards... stacks of 'em.

Yes, I guess I am that old. grin
LOL.. I'm on the cusp. My brother who was 2 years older than me took his first programming class in Fortran his freshman year of H.S. on a mainframe using punch cards.

Two years later when I was a freshman the school had a classroom full off Apple 2's (one of the first schools with 'home' computers) and all freshman took a one a week class where we were being taught a bit of Basic by the old typing teacher. Two classmates & I who could have taught the class better than the teacher, were allowed to goof off (work on independent projects) together in the back of class.
Posted By: Dude Re: 1st programming languages - 08/24/15 04:23 PM
Originally Posted by bluemagic
Originally Posted by HowlerKarma
Hmmmmm... punchcards... stacks of 'em.

Yes, I guess I am that old. grin
LOL.. I'm on the cusp. My brother who was 2 years older than me took his first programming class in Fortran his freshman year of H.S. on a mainframe using punch cards.

They still call a batch control file a "job card" in the mainframe world today, long after it stopped being a punched card (or giant stack thereof).
Posted By: HowlerKarma Re: 1st programming languages - 08/24/15 04:29 PM
Yeah, I was thinking about that when I posted-- the term "stack" is also still very much embedded in the jargon of the industry (and beyond). Probably most people under 40 don't realize that it refers to punched cards.

Fun fact: for years and years, I was with an auto insurance company that used punched cards for billing-- until about 1990, when they upgraded their servers. I was forever charmed to get my billing statement with a detached punched card to return with my payment, and a bit wistful when they finally went modern.
Posted By: Bostonian Re: 1st programming languages - 08/24/15 04:50 PM
Originally Posted by bluemagic
Originally Posted by HowlerKarma
Hmmmmm... punchcards... stacks of 'em.

Yes, I guess I am that old. grin
LOL.. I'm on the cusp. My brother who was 2 years older than me took his first programming class in Fortran his freshman year of H.S. on a mainframe using punch cards.
Programming has become more convenient and fun, but I wonder if a much higher fraction of entering college freshmen has done any programming today vs. 30 years ago. I don't know of any colleges that require a programming background. Looking at MIT's What To Do In High School I see the following recommendations:
Quote
One year of high school physics
One year of high school chemistry
One year of high school biology
Math, through calculus
Two years of a foreign language
Four years of English
Two years of history and/or social sciences
There is nothing about programming, but having never programmed would likely cause more challenges in passing MIT classses than not having taken a foreign language, as illustrated by a MIT student blog post I linked to earlier http://giftedissues.davidsongifted....st_programming_languages.html#Post220423 .
Posted By: bluemagic Re: 1st programming languages - 08/24/15 05:08 PM
I think the only reason they taught everyone programming at High School when I was a freshman was because they were gifted with these computers and they needed to show they were doing somthing with them. Thye KNEW they would be important for every kid to gain computer skills but they wasn't much else to do with them but learn how to program at that time. The class was only 3 times a month taken out of a students math class. It really only gave most students a taste of what programming was like.

I do agree more students should know some programming. Not sure where you fit it in the schedule.

I had a H.S. principal (not for my son's school) last year tell me that he thought the emphasis on foreign languages was misplaced in college requirements. When I called him on it he said that he did agree learning another language was important but that 2-3 year of H.S. classes didn't teach you fluency and that there were many more important skills students could learn in H.S. That a lot of students were missing out on other important and useful H.S. coursework because of the college language requirement.
Posted By: HowlerKarma Re: 1st programming languages - 08/24/15 07:42 PM
I have to agree with him, bluemagic. I can't say that my 2+ years of high school programming were any kind of waste of time, even if I did develop such an aversion to the subject after a brush with machine language that I never truly recovered my love of coding...

it's still the case that I used that information more over the next 30 years than anything else that I learned in that building. Well, maybe old-school Personal Finance, which was (at the time) a state requirement. Wisely so, IME.

I also took 3 years of high school French, and several years of college German, and neither thing did much to make me fluent by any stretch of the imagination.

On the other hand, a few weeks on the ground with Quebecoise or Parisians surrounding me does wonders.


My DD has found a lot more use for her HTML than she has for her Greman, that's for sure-- and she's got that linguist gene that I lack, so her fluency is pretty great given her level of exposure. She also picked up French at a rate that was flatly kind of astonishing once she landed in an immersion setting-- with no instruction at all.




Posted By: madeinuk Re: 1st programming languages - 08/25/15 12:41 AM
When I first started in IT we used to call them a deck of cards just like playing cards. With a serious batch stream you learned to draw or score a diagonal line across the top in case you dropped the deck and scattered them everywhere LOL. For a while afterwards we used to refer to the files holding JCL as decks too.
Posted By: Dude Re: 1st programming languages - 08/25/15 02:46 PM
Originally Posted by bluemagic
I had a H.S. principal (not for my son's school) last year tell me that he thought the emphasis on foreign languages was misplaced in college requirements. When I called him on it he said that he did agree learning another language was important but that 2-3 year of H.S. classes didn't teach you fluency and that there were many more important skills students could learn in H.S. That a lot of students were missing out on other important and useful H.S. coursework because of the college language requirement.

Personally, I've found my foreign language requirement did a wonderful job of teaching me English. Much like a fish doesn't know it's wet, an English speaker doesn't know he's conjugating commonly used irregular verbs (to be, to have) until he tries it in a foreign tongue.

And when you look at languages from the outside, you start to notice their quirks, which can be revealing about the history and culture of their speakers.
© Gifted Issues Discussion Forum