4
$\begingroup$

One colleage came with the idea/comment that it would be useful to lecture two programming languages, eg. Java and Scheme, at the same time while lecturing an Introduction to Programming course aimed for first term undergraduates.

I have my doubts that approach could stuck some students in learning the syntax of the programming language instead of the logic on how-to-program. Also I believe that some of them will get in their minds that Computer Science careers are equal to being a hardcore software developer.

While I have found some academic references about the last point I mentioned (that CS!=programming), I have not found any academic sustainable research that could prove wrong to teach two programming languages for an initial course, apart of discussions of lecturers against that idea in public forums. In ACM there is a paper in which they tried to lecture Python and Java at the same time, but the authors make so many assumptions and also mention a lot of pitfalls on their research, that I hardly believe it is a good article to be based on.

Has anybody found or read any article that mentions the advantages/disadvantages of that approach?

$\endgroup$
  • 2
    $\begingroup$ Quite the opposite: teaching different languages can open the students' minds to the abstract, since they see where the common ground is (and isn't). Imho, the best way is do do things along the lines of different paradigms: teaching Java and Python is probably not very helpful, but Java and Haskell can complement each other nicely. $\endgroup$ – Raphael Aug 17 '14 at 13:33
5
$\begingroup$

Avoid technical minutiae at all costs. Devote your focus to the big concepts you want to teach. I understand the desire to make the point that there is an underlying similarity between all programming languages, but I (personally) don't think the first course is the place to make that point. Rather, I would focus on problem solving using real-life applications.

I don't have any references to studies that would confirm or refute your specific hypothesis.

Here is an article by Lenore Blum (CMU) on what CMU has done to increase women's enrollment in computer science. CMU's experience with their introductory classes is discussed on page 8.

http://www.cs.cmu.edu/~lblum/PAPERS/women_in_computer_science.pdf

And here are several newspaper articles about the changes they have been making at Tufts and Harvey Mudd (both of which have had significant increases in the number of women graduating from their CS programs.)

http://www.boston.com/news/education/higher/articles/2005/12/18/in_computer_science_a_growing_gender_gap/

http://www.nytimes.com/2012/04/03/science/giving-women-the-access-code.html

Here are several analogies that come to mind. See if you think any of them make any sense.

"We are going to teach Physics 101 by alternating lectures between MKS and cgs (or British Imperial Units). This will open the students minds to thinking more abstractly."

"We are going to be teaching our high-school students driving safety by having them drive a variety of different vehicles, including a sports car with a manual transmission, a large moving van with an automatic transmission, and an off-road four-wheel drive pickup truck. This is the only way we can get them to generalize the basic safety concepts from one vehicle to another."

"We've got a group of exchange students arriving from southeast asia that speak very little english. So we're going to teach their intro calculus class half in German and half in Russian, since so much of the research literature from the early 20th century is in those two languages."

"I'm going to post a few of your assignments on the web. But I'll also send a few to your university email address. And you should friend me on Facebook and follow me on Twitter and Instagram, because I'll post at least one of your assignments on each of those platforms. You need to learn these technologies sooner or later, so better sooner than later!"

"By the time a student graduates they need to be proficient at touch-typing on a keyboard. But we're not a vocational school, we're a university, so we're going to teach the foundations of touch-typing. Thus we alternate classes between the traditional QWERTY keyboard and the Dvorak layout, because we want the students to focus on the principles, not the details of one keyboard or another."

$\endgroup$
  • 1
    $\begingroup$ "Rather, I would focus on problem solving using real-life applications." -- I'd argue that this is exactly opposite to what the learning goals of a (scientifically oriented) university are or should be. But ymmv, and there are other schools. Furthermore, I think your analogies are mostly missing the point. $\endgroup$ – Raphael Aug 17 '14 at 21:29
  • $\begingroup$ To put my concern more clearly: the question asks for an objective answer in a quite reasonable way. Parts of your answer give that; the bulk, however, is deeply subjective (without even explaining much what your opinion is and why you hold it). Therefore, I think the answer would be better (because/if less suited to provoking discussion) if you removed the first and the last six paragraphs. The opinionated discussion is better off in Computer Science Chat. $\endgroup$ – Raphael Aug 18 '14 at 7:19
1
$\begingroup$

I know two professors who actually organized their programming course around two languages: ADA and CAML (CAML is the former version of OCAML, a version of ML used in Europe). That was in the 1990's, possibly a bit earlier. It lasted at least 10 or 15 years with great success. They even wrote a book for that course: Concepts et outils de programmation – December 1, 1997 by Thérèse Accart Hardin, Véronique Donzeau-Gouge Viguié.

The book is in French. It was supposed to be translated to English, but I think it finally did not happen.

All I know is that the course was very succesful, taught by both the authors in their respective institutions, and I do not recall ever hearing of any drawbacks, though I had several opportunities to discuss it. The two languages have very different syntax (but then, so do Scheme and Java). The idea was to compare and contrast the two languages, emphasizing imperative and functional style, while also showing the corresponding features of these two languages. The point was precisely to help student understand the logic of languages.

I should mention that both teachers were theoretician, specialized in formal semantics, with a good knowledge of language design.

It was probably used by other teachers, but I never thought of checking that.

I do not know whether they wrote a paper on their experience with that course.

It certainly shows that this can be done quite successfully.

AFAIK, both authors are now retired. But you can probably ask them about it by e-mail.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.