Path: utzoo!attcan!uunet!mcsun!cernvax!chx400!ethz!mrys From: mrys@ethz.UUCP (Michael Rys) Newsgroups: comp.lang.misc Subject: Re: introductory language Message-ID: <4147@ethz.UUCP> Date: 9 Apr 90 12:45:06 GMT References: <7300008@ux1.cso.uiuc.edu> <5978@udccvax1.acs.udel.EDU> Reply-To: mrys@bernina.ethz.ch.UUCP (Michael Rys) Organization: ETH Zuerich, Switzerland Lines: 40 In article <7300008@ux1.cso.uiuc.edu> cs290ac@ux1.cso.uiuc.edu writes: >I'm looking for opinions on what languages people think should >be taught as introduction to programming for both CS majors and >non-CS majors. My initial opinions are C for CS majors because >of its popularity, and its low-level programming characteristics. > DON'T go with C if you want to teach CS. I would propose the following 1. If you take a functional approach take: Scheme or ML 2. If you take a procedural approach: 2.1 Teach them Dijkstra's Method of constructing programs using predicate calculus and invariant. This keeps you independent of machines, languages etc. 2.2 Take any of : Pascal, Modula-2, Oberon I wouldn't take C or Ada (too complex for beginners). This is for CS students. If you want to teach non-CS students I would either go for Modula-2, Pascal or Lisp, APL (still great for Mathematics). Other languages you might look at: Icon, Eiffel If you want to get programmers for a job or a specific company, go and take C or any other language. And don't forget a good textbook, since CS is not only programming!!! Cheers.../Michael +---------------------------------------------------------------+ | Michael Rys, V. Conzett Str. 34; CH-8004 Zuerich; Switzerland | +---------------------------------------------------------------+ | UUCP: mrys@ethz.UUCP or EAN: mrys@ifi.ethz.ch | | mrys@bernina.UUCP IPSANet: mrys@ipsaint | | Voice: +41 1 242 35 87 | +---------------------------------------------------------------+ -- Wovon man nicht sprechen kann, darueber muss man schweigen. -- Ludwig Wittgenstein, Tractatus logico-philosophicus