Live data from Hacker News

Code is not a foreign language, and high schools shouldn't treat it that way

nytimes.com

101–110 of 191 posts

Re: Code is not a foreign language, and high schools shouldn't treat it that way

#101
It is clearly not a foreign language, but it might honestly be a better substitute for most students' time. In the US, a foreign language can be a great thing to learn, but with our failing math and science teachings, perhaps shifting towards CS instead might be a good idea for helping many high school kids prepare for a STEM dominated job market.

From the article: "It stems from a widely held but mistaken belief that science and technology education should take precedence over subjects like English, history and foreign languages.

As a professor of languages and literatures, I am naturally skeptical of such a position"

Of course a professor would refer to this as a mistaken belief, but what evidence is there for it? CS has a much better chance of helping one find gainful employment and a future with many paths over high school history, english, and foreign languages.

Re: Code is not a foreign language, and high schools shouldn't treat it that way

#102

I can't read the whole article because paywall, but the initial paragraphs seem to miss the point of these laws. The intent is not to indicate that a programming language is an equivalent kind of skill to a foreign language. It's a pragmatic decision about how to fit programming, increasingly an important life skill, into a crowded curriculum. The core requirements (english, math, science, history), aren't going to b…

The author does not. And at least in the Maryland case you're correct (haven't looked up others, but they're probably similar). However, I think the author and others on their side have a point: Why is foreign language being singled out for substitution?

I get that there's only so much time in the day, so only a finite number of courses can be meaningfully conducted before a student graduates. This was an issue when I was a student at Georgia Tech. Most engineering students received some 130+ credit hours (1 credit hour = 1 hour lecture or 3 hour lab per week) over their degree. To complete this in 4 years (8 semesters) meant an average of 16 credits/semester which was very hard (especially when dealing with prerequisites, which meant you might have a 9-12 (core) + 3-6 (elective) credit semester followed by an 18 (core) credit semester, those latter ones could be brutal). At GT, compared to other GA universities, there were no language requirements and somewhat reduced general education requirements (still true?). And many (most? don't know the stats) students took 5 years (or 10 semesters) to complete their education. But GT didn't say, "CS 1301 will be a substitute for 101", they just said, "Everyone will take CS 1301, and 101 will be an elective."

If the people proposing these changes made more courses substitute for each other, then I think their argument would have more weight. Make foreign language an option along with technology education, advanced math (those that can be held concurrent to the core math courses), and other topical electives. Make the selection akin to selecting a "major" focus at university. Instead, the schools want to include something that seems to be useful (I would agree, programming skills are useful) but have no way to fit it in to the existing time available and are forcing one department to make a sacrifice.

Re: Code is not a foreign language, and high schools shouldn't treat it that way

#103

Computer languages are called languages for a reason. They have syntax, grammar, vocabulary, and are used for communication. People who don't speak english for example but who read python can often read code you wrote and understand it. Math is a similar thing and sometimes called a universal language. These are different sorts of languages from day to day spoken and written languages for general communication, but t…

> Math is a similar thing and sometimes called a universal language.

But nobody is going seriously suggest put math classes in the languages department. How much different is learning Python from learning calculus? Both use specialized syntax, grammar, and vocabulary to describe ideas. If you categorize Python as a "foreign language" then calculus (and algebra, trig, etc) probably should be as well.

Re: Code is not a foreign language, and high schools shouldn't treat it that way

#104
post #94

Earlier quoted context omitted.

And yet, a vast component of code is communicating to developers. Some patterns (e.g. Java) try to minimize the expressiveness in favor of consistency, others (e.g. Perl, etc) focus on expressiveness (which makes the subsequent result highly dependent on the skill of the _expression_ of the original programmer). But either way, there's distinctly language going on. It just conveys in a different manner than the commo…

I have a challenge for you, or anyone really. Translate Gettysburg Address into your programming language of choice and present it here for determining of those fluent in your chosen language understand what you have translated. Constraints: You can't use print statements to echo the English text of the address. You can't use English or English-like identifiers. I know of no programming language that can convey the m…

> I know of no programming language that can convey the meaning of these sentences

Are _these_ meanings the meaning that define language?

To say that programming languages exist to convey meaning does not equate to being able to express all meanings.

Re: Code is not a foreign language, and high schools shouldn't treat it that way

#105
As long as coding is optional and not compulsory. While attending primary and secondary school I was forced to learn certain subjects, this has resulted in an aversion towards certain subjects, which today I begin to find interesting. However I still have some of that old feeling.

Re: Code is not a foreign language, and high schools shouldn't treat it that way

#107
post #94

Earlier quoted context omitted.

And yet, a vast component of code is communicating to developers. Some patterns (e.g. Java) try to minimize the expressiveness in favor of consistency, others (e.g. Perl, etc) focus on expressiveness (which makes the subsequent result highly dependent on the skill of the _expression_ of the original programmer). But either way, there's distinctly language going on. It just conveys in a different manner than the commo…

I have a challenge for you, or anyone really. Translate Gettysburg Address into your programming language of choice and present it here for determining of those fluent in your chosen language understand what you have translated. Constraints: You can't use print statements to echo the English text of the address. You can't use English or English-like identifiers. I know of no programming language that can convey the m…

It's surprisingly difficult to translate any nontrivial passage from any human language to any other human language in a way that everyone can agree preserves meaning.

Re: Code is not a foreign language, and high schools shouldn't treat it that way

#108
post #77

Earlier quoted context omitted.

I dunno. It's hard for me to see a year (say) of a foreign language that's never used outside of that class as having a lot of value. As I dimly remember my high school language classes, you didn't even really get into literature and culture associated with the language until later on. On the other hand, a year of a language like Python probably has some value in teaching logic and problem-solving even if the student…

I feel like teaching coding is a waste of resources, for several reasons: there's a glut of material readily available for individual study; what's taught will be largely irrelevant when the student graduates; and importantly, it will likely be poorly taught. Good CS teachers can probably get jobs paying 3x as much, so only the most dedicated will stick with teaching. My opinions are probably biased because I had an…

I had a similar experience. My first programming teacher in high school was also my geometry teacher; a subject he taught extremely well (at least from my 15 year old point of view).

His programming class however sucked all the fun out of it. His brother-in-law was a retired manager at Motorola and gave him a bunch of (even for the time) thoroughly obsolete suggestions:

Everything started with being handed a specification. From there, you had to write a solution in pseudo code, which was a separate language from the one we were learning (TrueBasic I believe). Once your pseudo code was handed in and approved, you could begin programming; however, you had to document up-front all the variables you were going to be using and document their purposes. In addition, you had to explain in plain english what each subroutine did and what variables it would access and state whether it would simply read or read and write them (and then explain why).

I remember him saying "If you're a professional programmer, there's a good chance you'll have a manager who isn't a programmer and they'll be reviewing your work!" I think he took his brother-in-laws advice too much to heart, because he really felt like he was giving us all a real taste of what being a "real" programmer was like. Sadly, this was 1998, and I suspect software development hadn't operated like that for a good 15-20 years (or if this was a weird practice localized to Motorola in the 70s)

Any programming classes taught to minors should favor core fundamentals, exploration and creativity and avoid dwelling on industry practices which often have a shelf-life measured in years.

Re: Code is not a foreign language, and high schools shouldn't treat it that way

#109

No, not any more than math or statistics are. Replacing a foreign language with a programming course is like replacing a music class with a math course; you may think it's a good idea, but it's not because it's replacing the same type of thing.

A music theory class can involve quite a bit of math. Often music theory can be taught as part of a larger music study.

Just as there is room for music theory in a well-balanced music education, perhaps there is room for programming language study in a well-balanced linguistics education. That said, the goals of foreign language classes are rarely (strictly) about the arts and sciences linguistics, but more often targeted more directly towards the arts and sciences of culture, sociology, sometimes anthropology. (Programming languages are somewhat deficient in teaching useful life lessons in these other studies.)

Re: Code is not a foreign language, and high schools shouldn't treat it that way

#110

No more than a jelly fish is a fish. Code is a mixture of logic, math, statistics and abstracted electronics diagrams. The typical programing language is a natural language only to the degree those others are. Which is to say it's not. At least in any normal definition of the term.

Most electronic schematic languages (which I'm guessing is what you meant by electronics diagrams) very much are human languages, sometimes the human readable part is a presentation of a machine readable part but often the goal is to have something that a human interprets.
Post reply on HN