• Starting today August 7th, 2024, in order to post in the Married Couples, Courting Couples, or Singles forums, you will not be allowed to post if you have your Marital status designated as private. Announcements will be made in the respective forums as well but please note that if yours is currently listed as Private, you will need to submit a ticket in the Support Area to have yours changed.

What Programming Language Would You Introduce To...

JWGU

Newbie
Sep 29, 2013
279
4
✟22,946.00
Faith
Judaism
Scheme or Racket (failing that, Common Lisp). Functional languages are the best teaching languages for more advanced students. They eliminate many of the common hurdles of order of operations, keeping track of counters, control flow, and mutable variables, and they introduce important concepts in computer science and metaprogramming that are much harder to grasp in other languages. And, of course, after a few weeks you can have them writing their own interpreters :)

Second language should be C. Third, Python or Smalltalk. The worst commonly used teaching language is Java. Stay away like the plague.
 
Upvote 0

Lotuspetal_uk

Say 'CHEESE!!!!'
Jan 26, 2003
10,882
1,297
57
Good Ole' Blighty!
Visit site
✟100,652.00
Country
United Kingdom
Faith
Non-Denom
Marital Status
Private
Scheme or Racket (failing that, Common Lisp). Functional languages are the best teaching languages for more advanced students. They eliminate many of the common hurdles of order of operations, keeping track of counters, control flow, and mutable variables, and they introduce important concepts in computer science and metaprogramming that are much harder to grasp in other languages. And, of course, after a few weeks you can have them writing their own interpreters :)

Second language should be C. Third, Python or Smalltalk. The worst commonly used teaching language is Java. Stay away like the plague.
Thanks JWGU! :thumbsup:

You've recommended Scheme/Racket for more advanced students, would it cross over well if the students are learning a programming language for the first time?

The age group that I would teach would have had no more than 6 weeks learning Scratch at or around the age of 13-14. They would then not touch any kind of programming until A'Levels (ages 16-19). One exam board in the UK has recommended Python.

I'm kind of anticipating a very broad range of abilities.

Thanks again for any help. :thumbsup:
 
Upvote 0

Lotuspetal_uk

Say 'CHEESE!!!!'
Jan 26, 2003
10,882
1,297
57
Good Ole' Blighty!
Visit site
✟100,652.00
Country
United Kingdom
Faith
Non-Denom
Marital Status
Private
Thanks everyone for all of your contributions so far.

I have another two weeks to go before Half Term when I should be able to collate the overall concensus here as to which one to go for.

Thanks again. :)
 
Upvote 0

dysert

Member
Feb 29, 2012
6,233
2,238
USA
✟120,484.00
Gender
Male
Faith
Christian
Marital Status
Married
Scheme or Racket (failing that, Common Lisp). Functional languages are the best teaching languages for more advanced students. They eliminate many of the common hurdles of order of operations, keeping track of counters, control flow, and mutable variables, and they introduce important concepts in computer science and metaprogramming that are much harder to grasp in other languages. And, of course, after a few weeks you can have them writing their own interpreters :)

Second language should be C. Third, Python or Smalltalk. The worst commonly used teaching language is Java. Stay away like the plague.
No offense, JWGU, but are you serious about Lisp? I've been programming for more than 30 years. I have never once done anything or known anything as a result of learning Lisp. It's a waste of time, and utterly impractical when it comes to learning something that's going to have any value in the working world.
 
Upvote 0

JWGU

Newbie
Sep 29, 2013
279
4
✟22,946.00
Faith
Judaism
Thanks JWGU! :thumbsup:

You've recommended Scheme/Racket for more advanced students, would it cross over well if the students are learning a programming language for the first time?
Depends on the student. At MIT, the first programming courses are historically taught in Scheme. Not all students are MIT students, though :)

The age group that I would teach would have had no more than 6 weeks learning Scratch at or around the age of 13-14. They would then not touch any kind of programming until A'Levels (ages 16-19). One exam board in the UK has recommended Python.
I have taught a fair number of students programming myself and have had good results with LOGO and Python at that age. I would say Python is good for the "average" student. Younger students, something like LOGO would be better--something with a strong graphical component.
I'm kind of anticipating a very broad range of abilities.
Here's my recommendation--with any language, try to keep what you're teaching as independent of the implementation as possible, and focus primarily on the concepts. Talk about functions and algorithms and loops and abstraction, not the specifics of the language's string library (or whatever :)). This will leave them much better prepared to deal with any language you can imagine.
Thanks again for any help. :thumbsup:
Any time!
No offense, JWGU, but are you serious about Lisp? I've been programming for more than 30 years. I have never once done anything or known anything as a result of learning Lisp. It's a waste of time, and utterly impractical when it comes to learning something that's going to have any value in the working world.
No offense taken :p I am personally using LISP in my work right now, so I can't really agree with this, but in any case we are talking about teaching languages. Is it really important for a thirteen year old student to waste time trying to track counters within loops? The functional programming style also has important applications in multithreaded programming and map-reduce / declarative "Big Data" solutions like Hadoop, and the metaprogramming techniques are extremely useful in writing APIs, compilers, and of course AI solutions.
 
Last edited:
Upvote 0

adrianmonk

Recursive Algorithm
Jan 14, 2008
683
775
Seattle, WA
✟280,882.00
Country
United States
Gender
Male
Faith
Atheist
Marital Status
In Relationship
Politics
US-Democrat
Here's my recommendation--with any language, try to keep what you're teaching as independent of the implementation as possible, and focus primarily on the concepts. Talk about functions and algorithms and loops and abstraction, not the specifics of the language's string library (or whatever :)). This will leave them much better prepared to deal with any language you can imagine.

Agreed. I highly recommend "Introduction to Algorithms" It is a great book to have.

No offense taken :p I am personally using LISP in my work right now, so I can't really agree with this, but in any case we are talking about teaching languages. Is it really important for a thirteen year old student to waste time trying to track counters within loops? The functional programming style also has important applications in multithreaded programming and map-reduce / declarative "Big Data" solutions like Hadoop, and the metaprogramming techniques are extremely useful in writing APIs, compilers, and of course AI solutions.

I started out learning Lisp, then moved to Pascal and taught myself C. Well Lars Pensjö C for mudlib, but C nonetheless :) These days I work mostly with Ruby and some Groovy.
 
Upvote 0

Lotuspetal_uk

Say 'CHEESE!!!!'
Jan 26, 2003
10,882
1,297
57
Good Ole' Blighty!
Visit site
✟100,652.00
Country
United Kingdom
Faith
Non-Denom
Marital Status
Private
Looks like I'm going down the Python route. :thumbsup: I've installed the software and it transfers over nicely from my old VB6 days in terms of me getting back up to speed.

My kids do not know it yet but they're getting me a raspberry pi for my birthday :D

Thanks again for all your help! :wave:
 
Upvote 0

EphesiaNZ

It's me! Who else could it be...
Apr 19, 2011
5,471
453
New Zealand
✟30,297.00
Gender
Male
Faith
Christian
Marital Status
Married
Looks like I'm going down the Python route...
My kids do not know it yet but they're getting me a raspberry pi for my birthday :D

Cool, Python Pi is one of my favorite meals :)

My Pi has had quite a few uses so far and is very flexible in what it does and currently experimenting its use as a firewall appliance using FreeBSD. It's never gonna be a serious commercial firewall but for home use it might just hack it

The Pi brings back the days of my youth hacking my Acorn Atom and BBC Micro and it's kinda comforting to know Acorn Computers legacy of the ARM processor lives on today and is growing stronger everyday too. I knew the BBC Micro would have dominated world computing if it developed and got major government funding - it didn't and died but its legacy might just do it now...
 
Upvote 0