Foreign Languages and Computer Languages

<p>So I've taken 2 years of Spanish in high school and I'm tired of it. I'm prepared to slug out 2 more years but I'd rather not. I've also taken 2 years worth of computer programming language classes (going for a few more, 2 for sure, maybe 3). I've heard that the tech schools sometimes award foreign language points for the computer languages.</p>

<p>Who do I ask about this and can I stop taking Spanish now and have them not wonder why I stopped?</p>

<p>MIT actually recommends only two units of foreign language in high school (see the Common</a> Data Set), so as far as MIT's concerned, you're all set with foreign language.</p>

<p>Of course, you'll want to check with other schools to which you're interested in applying to see if that works for them, too -- you can usually google "(school) common data set" to find the info.</p>

<p>MIT wants 2 years, but a lot of schools recommend 3. I'd go with that to be on the safe side =P.</p>

<p>I would suggest taking at least three years of a foreign language, though you could take one year of something other than Spanish (Chinese is very trendy). Come on, you know "Computer language" is not the same! Even though MIT requires only two years of a foreign language, it's important to show that you've challenged yourself in every way possible, including in non-science areas and in areas of discomfort.</p>

<p>neuron39: Computer languages are very much like foreign languages. Many colleges waive foreign language requirements for students if they know computer languages. Of course I can't communicate with other people using it but you can do quite a lot of other stuff that foreign languages can't do.</p>

<p>Thank you for the other replys guys.</p>

<p>Irrespective of what certain colleges will give credit for, computer languages are very unlike speaking languages for three reasons I can think of. First, speaking languages can describe anything, such as how a house looks, or what somebody did yesterday, whereas computer languages can only describe an algorithm for accomplishing something. Second, speaking languages (with the exception of Lojban Lojban</a> - Wikipedia, the free encyclopedia) have exceptions, but computer languages have absolutely no exceptions to the rules their creators laid down. And thirdly, speaking languages have defined pronunciations for everything, while computer languages are just pronounced however the speaker wants (for example, I pronounce malloc MAY-lock, but I've heard other people say mal-OAK, and you could even say M AL-ock). Fourth, there can be ambiguity in speaking languages (again, except for Lojban), but there is no ambiguity in computer languages.</p>

<p>And all this does translate into real differnces, since I like computer programming, but learning French was easily one of the most painful experiences of my life (aside from real tragedies, like people dying).</p>

<p>@Neforrester: "Irrespective of what certain colleges will give credit for, computer languages are very unlike speaking languages for three reasons I can think of. ..."</p>

<p>Too which I can respond to with: "You must be doing way too much narrow coding in C or Fortran." Take a look at Lisp or Scheme, or hell, any functional language will do. Let me address the points you just made (a lot of these revolve around Lisp/Scheme):</p>

<p>1) "First, speaking languages can describe anything, such as how a house looks, or what somebody did yesterday, whereas computer languages can only describe an algorithm for accomplishing something." </p>

<p>Computer languages like Lisp where data and code are one and the same can be used to express a huge variety of ideas that you can barely express in typical spoken languages. So just as you argue that computers can't describe everything, there are tons upon tons of things that the spoken language can't describe (take a look at any advanced AI textbook, most of the ideas will first be explained with Lisp/Scheme code and then they will try to run around the idea with English).</p>

<p>2) "Second, speaking languages (with the exception of Lojban Lojban - Wikipedia, the free encyclopedia) have exceptions, but computer languages have absolutely no exceptions to the rules their creators laid down."</p>

<p>Unless you use a computer language like Lisp/Scheme where there are so few rules that you are actually encouraged to rewrite the programming language to your own specifications. So if you're working in C, then sure there are tons and tons of rules, but if you are working in an expressive language like Lisp, then you can just rewrite the rules however you like.</p>

<p>3) "And thirdly, speaking languages have defined pronunciations for everything, while computer languages are just pronounced however the speaker wants (for example, I pronounce malloc MAY-lock, but I've heard other people say mal-OAK, and you could even say M AL-ock)."</p>

<p>Actually if you work with many people, overtime you will end up pronouncing most terminology similarly. It's not something very special about spoken languages. It's more an issue of standardization. And just like you use pronounciation to convey subtle messages in the spoken word, you write computer programs with certain styles to better express what you are trying to do.</p>

<p>4) "Fourth, there can be ambiguity in speaking languages (again, except for Lojban), but there is no ambiguity in computer languages."</p>

<p>Sure there can! Take any language that has first class functions and you're set!</p>

<p>"Too which I can respond to with: "You must be doing way too much narrow coding in C or Fortran." Take a look at Lisp or Scheme, or hell, any functional language will do. Let me address the points you just made (a lot of these revolve around Lisp/Scheme):"</p>

<p>Granted, I haven't played with Lisp or Scheme, and do use C++ a lot, but I also do higher level programming in Perl or Python (which don't compare to Lisp, but oh well). Let me see if I can defend my point of view...</p>

<p>"Computer languages like Lisp where data and code are one and the same can be used to express a huge variety of ideas that you can barely express in typical spoken languages. So just as you argue that computers can't describe everything, there are tons upon tons of things that the spoken language can't describe (take a look at any advanced AI textbook, most of the ideas will first be explained with Lisp/Scheme code and then they will try to run around the idea with English)."</p>

<p>I'm not sure I know exactly what you mean. Could you quote a passage from an AI textbook for me, since I don't have one here? However, in these cases, is it the programming language itself that is used to describe these ideas, or does the language describe a system which can describe/process/store the ideas? I'm suspicious you mean the latter.</p>

<p>"Unless you use a computer language like Lisp/Scheme where there are so few rules that you are actually encouraged to rewrite the programming language to your own specifications. So if you're working in C, then sure there are tons and tons of rules, but if you are working in an expressive language like Lisp, then you can just rewrite the rules however you like."</p>

<p>Again, not being too familiar with lisp except for a vague understanding of lambda calculus and the excess of parentheses, I might be sounding stupid, but:</p>

<p>When the interpretation/compilation of a program starts, before the first line of code is processed, there are ground rules that have no exceptions. Once you start executing code, the code may change those rules, but each change is spelled out in the code. If you know all the ground rules, for which there are no exceptions initially (making them fairly easy to memorize), then you can pick up some code and understand it. However, in order to read this text right here, even though the text itself doesn't redefine the grammar and syntax of the English language, you had to be familiar with a vast number of rules and exceptions which are built into the language specification, making it a royal pain in the rear to learn in the first place. Also, spoken languages have things like idioms (such as found at the end of the previous sentence), which make it even worse, and are fundamentally impossible in a computer language.</p>

<p>"Actually if you work with many people, overtime you will end up pronouncing most terminology similarly. It's not something very special about spoken languages. It's more an issue of standardization. And just like you use pronounciation to convey subtle messages in the spoken word, you write computer programs with certain styles to better express what you are trying to do."</p>

<p>Still, voice is not a natural way to express a computer program. If I wanted to ask you a question about some code I had written, I wouldn't recite the code to you (unless it was very short), or even read it. I would show it to you on my screen, or print it out, or just write it out on a scrap of paper.</p>

<p>"Sure there can [be ambiguity]! Take any language that has first class functions and you're set!"</p>

<p>First class functions do not introduce ambiguity. They may make it more difficult for a human to understand code, but I challenge you to show me any bit of code in any programming language which will produce different results on subsequent executions given the same input data and initial state.</p>

<p>I only took Spanish to level 3. Since I started in middle school that was only 2 years in high school. However, English was already my second language, and I really didn't like Spanish, so I stopped.
I never heard of any tech schools awarding foreign language scores for CS classes ( at least not the ones I applied to). I am sure MIT doesn't. Heck, since there is no CS category at my high school, all our programing classes count as an elective math class. On the other hand, it REALLY DOESN'T MATTER THAT MUCH. You don't have to challenge yourself in things you really don't want to do.
I do know quite a few colleges that recommend 3 years. Look up all the colleges that you are interested in. If they want you to take 3 years, then take another year. Try not to expect that your CS classes will help. But it's not like you won't get in if you don't fulfill every "recommendations". I don't know of any school that "requires" 3 years of foreign language.</p>

<p>Some schools (UC's and CSU's) require 2 years of foreign language though.</p>

<p>"Many colleges waive foreign language requirements for students if they know computer languages."</p>

<p>Yeah uh, what are these "many colleges" you speak of?</p>

<p>Computer science at the high school level could probably be mastered in a month, unless you go to certain powerhouse-y high schools. Foreign languages require much more work compared to high school-level computer science (esp for an MIT prospective student, who should be able to grasp everything easily).</p>

<p>I personally would go for the language because I think they're more fun, but I doubt MIT would care either way. Do whatever floats your boat.</p>

<p>I need to pipe in on this for some reason:
programming languages define sets of instructions. No matter if your writing in matlab or c, if they're turing complete they reduce to the same thing (literally, its all machine code going through a processor at some point). After designing your approach, you pick a language that you can easily implement your algorythm on, grab a book on the language's behavior and syntax, and start coding. Classes here will use Python, c, Java, C++, and more without ever taking time to teach the language (after intro level classes), just the approach.</p>

<p>On the other hand, a language is a means of communication (the goal is more description, not just definition of instruction sets). You couldn't take 4 years of spanish and walk into a german literature class, the way you're expected to be able to take 3 years of comp. sci. in, say, C++ with a little assembly or c, and then walk into a class where examples and p-sets are expected to be written in Java.</p>

<p>Languages and Computer languages are similar only in that the subjects share a common word in their title.</p>

<p>So I finally have something to reply with.</p>

<p>I consulted several professors here at MIT, and after reviewing things carefully, I have to say that the general consensus that Computer Languages and Spoken Languages are different are correct, but not for any of the reasons that have been listed here. Most of the solid arguments of why the two are starting to blend together are cutting edge research apparently (and dive into all sorts of philosophy, etc).</p>

<p>theKidHere: What you described his how people generally solve <em>problems.</em> But I think you should check out SICM, as it suggests you can use computer programs as a way to convey complex thoughts to other humans (and to reinforce the thoughts to yourself).</p>

<p>/* there's a loophole in this discussion you all are forgetting. annoying (compilable!) pedant to the rescue! */</p>