[LUGSB] What do you think would be a good "first programming language", and why?

amol Shanbhag amolshanbhag at yahoo.com
Thu Dec 11 19:13:18 EST 2003


I will slightly drift away from programming languages
and move towards tools which u might find handy,
especially if you are an EE or math/pure science
major, which I got the idea from talking to you the
other day. This would get things done more easily than
hardcore programming, but may not work for systems
programming, which is the interest of most ppl here.

I have been using matlab and 'R': a gnu software for
things like imaging, statistical programming etc and
seems handy with all its toolboxes. I also use it to
get the prototype of my results done , before I
actually sit and code in C. It has got a good error
catcher, although i believe not as good as bcc, as
there is no pointers concept

By the way, while on the topic does anyone know, if
there exists matlab to C converter or matlab to java
converter? I havent actualy gone into the depths of
matlab as i dont have a good version, but have heard a
lot of things about its interfaces of java and c. any
pointers?

Amol





--- Erez Zadok <ezk at cs.sunysb.edu> wrote:
> Currently, the best programming language to learn
> first is Java, hands down.
> It's simple, elegant, illustrates many basic
> concepts well, and is strongly
> typed; also lots of great books on it are available.
> 
> Many CS departments have changed their intro courses
> in the past decade to
> Java (from Scheme, C, Pascal, or C++).
> 
> A lisp-like language is also good as a starting
> language, but I find
> lisp-based languages too impractical for common use
> once you graduate.
> They're great for teaching concepts such as dynamic
> scoping and data-is-code
> and functional programming.  But you cannot do much
> w/ LISP once you
> graduate.
> 
> C is a bad starting language to program in.  C is
> what people call a
> "low-level high-level language": it's too close to
> the hardware and OS to
> separate the programming principles from
> architectural oddities.  Learning a
> programming language is a scary and daunting task to
> new students; they have
> to worry about lots of stuff already in the code. 
> Adding pointers, weak
> typing, and a separation of interfaces vs.
> implementations are very
> confusing and frustrating.  (Trust me: I taught a "C
> Programming for
> Non-Majors" at Columbia.)  There's no way to teach
> pointers properly without
> covering some OS and compiler concepts -- exactly
> what I do in CSE-376, but
> it's not intended for first/second year students.
> 
> C++ is a terrible starting language.  It is a hugely
> complex language, with
> all of the baggage of C.
> 
> I cannot think of a single scripting language that's
> better than Java as a
> first programming experience.
> 
> That said, the dept. will be offering a new course
> (CSE-130) next semester,
> which is an intro to C for non-majors.  It'll be
> interesting to see how
> it'll go.  For sure it'd be a challenge to teach
> such a course.
> 
> Finally, while I think Java is a great and very
> practical intro language, I
> don't think anyone should graduate w/o also knowing
> a lot of C, and have
> some exposure to C++, Lisp, and Perl/Shell.  C is
> clearly here to stay and
> has a very useful "market" that won't switch to
> anything else for the
> foreseeable future.
> 
> Erez.
> _______________________________________________
> lugsb mailing list
> lugsb at fsl.cs.sunysb.edu
> http://www.fsl.cs.sunysb.edu/mailman/listinfo/lugsb


__________________________________
Do you Yahoo!?
New Yahoo! Photos - easier uploading and sharing.
http://photos.yahoo.com/
>From ezk at fsl.cs.sunysb.edu Thu Dec 11 20:08:06 2003
Received: from agora.fsl.cs.sunysb.edu
	(IDENT:aoQ6n5bl60vMsIvN1Wn1Bow4wqdjjcgN at agora.fsl.cs.sunysb.edu
	[130.245.126.12])hBC186U7030950
	for <lugsb at fsl.cs.sunysb.edu>; Thu, 11 Dec 2003 20:08:06 -0500
Received: from agora.fsl.cs.sunysb.edu
	(IDENT:lgl2O4z6hTrJL/UuCjffKJinF+Cw+XXC at localhost.localdomain [127.0.0.1])
	hBC18Uh7023000
	for <lugsb at fsl.cs.sunysb.edu>; Thu, 11 Dec 2003 20:08:30 -0500
Received: (from ezk at localhost)
	by agora.fsl.cs.sunysb.edu (8.12.8/8.12.8/Submit) id hBC18Ugo022996;
	Thu, 11 Dec 2003 20:08:30 -0500
Date: Thu, 11 Dec 2003 20:08:30 -0500
Message-Id: <200312120108.hBC18Ugo022996 at agora.fsl.cs.sunysb.edu>
From: Erez Zadok <ezk at cs.sunysb.edu>
To: Linux Users Group at Stony Brook <lugsb at fsl.cs.sunysb.edu>
Subject: Re: [LUGSB] What do you think would be a good "first programming
	language", and why? 
In-reply-to: Your message of "Thu, 11 Dec 2003 18:42:13 EST."
	<Pine.GSO.4.44.0312111822340.20475-100000 at SunRa.mathlab.sunysb.edu> 
X-MailKey: Erez_Zadok
X-BeenThere: lugsb at fsl.cs.sunysb.edu
X-Mailman-Version: 2.1.1
Precedence: list
Reply-To: Linux Users Group at Stony Brook <lugsb at fsl.cs.sunysb.edu>
List-Id: Linux Users Group at Stony Brook <lugsb.fsl.cs.sunysb.edu>
List-Unsubscribe: <http://www.fsl.cs.sunysb.edu/mailman/listinfo/lugsb>,
	<mailto:lugsb-request at fsl.cs.sunysb.edu?subject=unsubscribe>
List-Archive: <http://lists.fsl.cs.sunysb.edu/pipermail/lugsb>
List-Post: <mailto:lugsb at fsl.cs.sunysb.edu>
List-Help: <mailto:lugsb-request at fsl.cs.sunysb.edu?subject=help>
List-Subscribe: <http://www.fsl.cs.sunysb.edu/mailman/listinfo/lugsb>,
	<mailto:lugsb-request at fsl.cs.sunysb.edu?subject=subscribe>
X-List-Received-Date: Fri, 12 Dec 2003 01:08:07 -0000

In message <Pine.GSO.4.44.0312111822340.20475-100000 at SunRa.mathlab.sunysb.edu>, Michael Graffam writes:
> 

> Bash is better than Java by far. If a would-be programmer is familiar
> with Linux/UNIX and familiar with the command-line and can form pipeline

Bash is useful in a class where you teach unix tools and such.  But not as a
starting programming language.  When you teach programming for the first
time, esp. as an intro course, and esp. when you have a huge class, you have
to be practical.  If a compiler/language use strong typing (i.e., Java),
it's likely that the compiler will give the poor students more useful error
messages to fix their code.

Shell scripts have all sorts of side effects, and often won't show errors
clearly.  Think about an errant unclosed quote markers: the error is on one
line, but the "bug" is manifested elsewhere.

Side effects such as "all malloc memory is global" are difficult to teach
and debug as the *first* language: it distracts students from focusing on
the more basic concepts.

> I don't think so -- not if the instructor really knows C. I took C
> programming as an intro course to programming at a community college. I
> was already a decent Pascal programmer by that point, but I knew several
> newbie students that did just fine.

There will always be a few hacker geeks in every class who thrive on
difficult stuff.  But try to teach C to the masses: English and History and
Bio majors.  You won't be in Kansas any more.

Erez.
>From vinay at mnl.cs.sunysb.edu Thu Dec 11 21:15:26 2003
Received: from gateway (mail@[130.245.128.9])hBC2FQU7004123
	for <lugsb at fsl.cs.sunysb.edu>; Thu, 11 Dec 2003 21:15:26 -0500
Received: from linux11.mnl.cs.sunysb.edu
	([130.245.145.69] helo=linux11 ident=mail)
	by gateway with esmtp (Exim 3.35 #1 (Debian))
	id 1AUcqM-0002mt-00
	for <lugsb at fsl.cs.sunysb.edu>; Thu, 11 Dec 2003 21:15:50 -0500
Received: from vinay (helo=localhost)
	by linux11 with local-esmtp (Exim 4.24)
	id 1AUcqM-0007no-30
	for lugsb at fsl.cs.sunysb.edu; Thu, 11 Dec 2003 21:15:50 -0500
Date: Thu, 11 Dec 2003 21:15:50 -0500 (EST)
From: Vinay Pai <vinay at cs.sunysb.edu>
X-X-Sender: vinay at linux11
To: Linux Users Group at Stony Brook <lugsb at fsl.cs.sunysb.edu>
Subject: Re: [LUGSB] What do you think would be a good "first programming
 language", and why? 
In-Reply-To: <20031212001318.20818.qmail at web60203.mail.yahoo.com>
Message-ID: <Pine.LNX.4.56.0312112112390.29927 at linux11>
References: <20031212001318.20818.qmail at web60203.mail.yahoo.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: Vinay Pai <vinay at linux11>
X-BeenThere: lugsb at fsl.cs.sunysb.edu
X-Mailman-Version: 2.1.1
Precedence: list
Reply-To: Linux Users Group at Stony Brook <lugsb at fsl.cs.sunysb.edu>
List-Id: Linux Users Group at Stony Brook <lugsb.fsl.cs.sunysb.edu>
List-Unsubscribe: <http://www.fsl.cs.sunysb.edu/mailman/listinfo/lugsb>,
	<mailto:lugsb-request at fsl.cs.sunysb.edu?subject=unsubscribe>
List-Archive: <http://lists.fsl.cs.sunysb.edu/pipermail/lugsb>
List-Post: <mailto:lugsb at fsl.cs.sunysb.edu>
List-Help: <mailto:lugsb-request at fsl.cs.sunysb.edu?subject=help>
List-Subscribe: <http://www.fsl.cs.sunysb.edu/mailman/listinfo/lugsb>,
	<mailto:lugsb-request at fsl.cs.sunysb.edu?subject=subscribe>
X-List-Received-Date: Fri, 12 Dec 2003 02:15:27 -0000

> I have been using matlab and 'R': a gnu software for
> things like imaging, statistical programming etc and

Allow me to vent  little here, but I had to use R for a course homework,
and thought it was largely cool, but was exteremely annoyed by their
choice of "<-" instead of "=" for assignment. Not only does it break with
pretty much every other language out there, its annoying to type being two
characters, one of which is a shifted character and one is not.



More information about the lugsb mailing list