views:

182

answers:

6

DUPE: http://stackoverflow.com/questions/4769/what-is-the-easiest-language-to-start-with

What do you think is the best language to teach college students in an introductory computer science?

+2  A: 

I'd go with C, learning the basics: How do i talk to a programmer? And not having to go into "oh the file needs to be the same name as the class, wtf is a class?".

Learn how to walk before you run.

Filip Ekberg
+1  A: 

Java and C++ are probably the most popular. Python is easier to learn. Neither Python nor Java give a proper appreciation for low level concepts, which is not a bad thing to teach though not necessarily something you need to get into for a first course.

I'd consider scheme a poor choice since it's tougher to find a use for it in the real world.

Brian
A: 

Pascal has been designed with this intend. But I would choose a useful language such as C.

mouviciel
A: 

I am a firm believer that C is a great language to start with in first year.

  1. It teaches low-level concepts that programmers should know, at least even at a basic level. This includes the memory model, pointers, memory allocation, and how to create data structures (even at a theoretical level).
  2. It has a popular syntax used in many other languages.
  3. It has a small standard library so there aren't many keywords or functions one has to remember.
  4. It is significantly 'harder' to deal with (see #2) than something like Java or Python, and because of this, weeds out the CS students who probably would've dropped out later in the program.

Of course, you could start with Java/Python/VHLL and come back to C, but I see little reason for doing this and I've yet to hear a good argument supporting the Java -> C transition either.

Nick Presta
A: 

That's kind of a hard question to answer because it really depends on what you want to do. Computer Science is kind of an umbrella term so I'm assuming you want to be a programmer here. In my experience I picked up Java very quickly using link text but I found it a little bit of a challenge going from that to C. Java(I should say that book) let me focus on learning how to program rather then learning the machine intricacies that sometimes come with a language like C. And of course I'm kind of comparing apples and oranges here, too, because Java is an object oriented language and C is procedural(I know you can do oop in C, I'm just using generalities here).

Hope that helps.

A: 

I believe Python is getting increasingly popular for teaching computer science.

See Python Programming: An Introduction to Computer Science or Introduction to Programming using Python or Why Python is a great language for teaching beginners in introductory programming classes

Why python? In my opinion:

  1. It is nice to have a shell where you can try out stuff, write simple function or call functions. Being able to do this without going throught the edit-compile -run cycle is probably a good thing. Especially, if you start programming you might have a lot of syntax errors in your code. Then the error messages of a compilers can be frustrating. In a shell you get immediate feedback.

  2. Python has a clean and efficient syntax. You don't have to type much to get something done.

  3. Python has "batteries included" - meaning: it ships with libraries for pretty much everything.

  4. You can teach procedural, object-oriented and functional style programming

f3lix