Thread View: net.lang.pascal
11 messages
11 total messages
Started by A1 harry goldberg
Mon, 17 Feb 1986 18:47
pascal ass intro. language
Author: A1 harry goldberg
Date: Mon, 17 Feb 1986 18:47
Date: Mon, 17 Feb 1986 18:47
3 lines
713 bytes
713 bytes
*** REPLACE THIS LINE WITH YOUR MESSAGE *** am interested to hear pros and conss about using pascal as the language in which to teach introductory programming
Re: pascal ass intro. language
Author: Jeff Siegal
Date: Thu, 20 Feb 1986 23:02
Date: Thu, 20 Feb 1986 23:02
23 lines
1731 bytes
1731 bytes
In article <109@polyob.UUCP> hgoldber@polyob.UUCP (A1 harry goldberg ) writes: >*** REPLACE THIS LINE WITH YOUR MESSAGE *** >am interested to hear pros and conss about using pascal as the >language in which to teach introductory programming My opinion is that you shouldn't really be emphasizing the programming language itself all that much anyway. Students who want to get into the details of a particular language can do so on their own. Instead, teach general techniques of good software development (design, modularity, documentation, etc.). As for which programming language to use, it really depends on what facilities you have available. What coices to you have? Many courses which have chosen to teach Pascal have done so as an alternative to BASIC, which sounds like a good idea to me. There are other (besides Pascal) reasonable choices though. For a new (I think) idea in progressive teaching, how about using 3 or 4 languages, and allowing students to use whichever one they feel most comfortable with (for projects and exam questions, etc.). Jeff Siegal - MIT EECS
Re: pascal ass intro. language
Author: jxs7451
Date: Fri, 21 Feb 1986 15:21
Date: Fri, 21 Feb 1986 15:21
22 lines
1590 bytes
1590 bytes
In article <109@polyob.UUCP> hgoldber@polyob.UUCP (A1 harry goldberg ) writes:
>am interested to hear pros and conss about using pascal as the
>language in which to teach introductory programming
Here at RIT they use Pascal in the introductory computer courses for
both comp sci/related stuff, and the introductory stuff for everyone else
("everyone at RIT has computer experience"). The courses are obviously
much different, but Pascal is probably a good choice because of it's
typing, which introduces a little disipline.
Also for some unknown reason most of the freshman comp sci's start
with something called karel the robot, which is a Pascal like waste
of time.
As far as Pascal goes, it is alright, but can anyone suggest anything
better?
jeff "in sunny downtown Rochester"(or something like that)
UUCP: {allegra,seismo}!rochester!ritcv!jxs7451
CSNET: jxs7451%rit@csnet-relay.ARPA
BITNET: JMS7451@RITVAXC
Re: pascal ass intro. language
Author: ron crocker
Date: Fri, 21 Feb 1986 15:55
Date: Fri, 21 Feb 1986 15:55
31 lines
1853 bytes
1853 bytes
> *** REPLACE THIS LINE WITH YOUR MESSAGE *** > am interested to hear pros and conss about using pascal as the > language in which to teach introductory programming I think PASCAL is a good choice for an introductory programming language, but others are fine. What PASCAL offers that some other languages do not is: 1) recursion This is a nice thing for introductory classes. I remember when I took CS 121 at the U of I we used PL/I and used the recursive features of the language to implement a recursive solution to the Tower of Hanoi problem and implement a simple recursive descent parser (although we didn't know that was what we were doing). 2) strong type checking This will help keep these new programmers in line. (Just imagine a new programmer with C!) 3) data structures. By having an introduction to simple data structures early can help with more complicated structures later. PASCAL offers a fairly flexible method for implementing data structures. PASCAL has drawbacks (I/O for one) but is a better choice than BASIC for an introductory course, in my opinion. Ron Crocker AT&T Bell Laboratories Naperville-Wheaton Road Naperville, IL 60566 Opinions expressed are mine alone and have nothing to do with my employer or their agents.
Re: pascal ass intro. language
Author: Vince Manis
Date: Fri, 21 Feb 1986 19:20
Date: Fri, 21 Feb 1986 19:20
40 lines
2944 bytes
2944 bytes
Perhaps this discussion belongs in net.cse, but...
It may be reasonable to teach introductory MIT students four languages, but
our students have difficulty with one. At present, our first year sequence
(two terms) covers Pascal and Intel 8080 assembly language (three weeks or so,
for computer organisation concepts, rather than assembly language skill). Even
that is really pushing it.
As far as I can see, introductory programming courses teach almost nothing
about program design, whether or not one spends the entire time teaching
program design. The reality seems to be that students ignore all the stuff
you want them to learn, and learn syntax instead. It's only once they've
actually tried to write large programs by hacking, and failed, that they're
ready to listen to our remarks on software design.
If we teach four languages rather than one, all we end up doing is confusing
them on syntax. Until this year, our first year sequence included a unit on
Fortran, which had the effect of causing students to be unable to write
Pascal on the final exam. One might argue that Fortran's semantics are too
similar to those of Pascal, and that one should try a completely different
language, such as Lisp or Prolog. Maybe so, but shouldn't one try to teach
how to do something well before trying to teach completely different
technologies? (Perhaps Lisp is the right introductory language; my
objections are on aesthetic grounds, and therefore not terribly debatable.)
Back to Pascal: this year I switched my second year data structures/program
design course from Pascal to Modula-2. I've been very happy about the
results. But I still believe that at present Pascal is the right
introductory language, not primarily because of its merits (the only
advantage of Pascal over Modula-2--for rank beginners--is the simpler I/O in
Pascal), but because of its acceptance:
* Pascal is the language used by the U.S. Advanced Placement program;
* zillions of textbooks;
* lots of very good implementations, including Turbo Pascal, IBM
Pascal/VS, and DEC VAX Pascal.
The average introductory student has no longterm commitment to computer
science, so one ought to teach him/her a directly usable skill; that means
teaching a language s/he has heard of.
Re: pascal ass intro. language
Author: Mark Smith
Date: Fri, 21 Feb 1986 23:18
Date: Fri, 21 Feb 1986 23:18
31 lines
1849 bytes
1849 bytes
> am interested to hear pros and conss about using pascal as the
> language in which to teach introductory programming
The Pascal Language, I believe, was created as a teaching language.
In that job, it has become remarkably widespread.
But I have always disliked it as a first language for the computer
science major. For those students who are to go on to become
`computer people' I have always favored assembly language as the first
language.
Why you ask? Well, it was my first language that I learned. When it
came time to learn other languages `the jump' to a higher level was
easier then `the jump' from a high level language to a low level.
I attribute this to the fact that assembly language forces you to
understand what is going on.
I can't remember how many times, first time Pascal programmers, gave
me the impression that they really did not know what memory was.
For those students who are not destined to be computer science majors,
and for those students who have already been introduced to programming,
the Pascal language is great.
--
Mark Smith
NYIT Computer Graphics Laboratory
Old Westbury, New York
...{philabs,sbcs}!nyit!mark
Re: pascal ass intro. language
Author: Deborah Jackson
Date: Sat, 22 Feb 1986 03:39
Date: Sat, 22 Feb 1986 03:39
34 lines
2072 bytes
2072 bytes
In article <247@mit-eddie.UUCP> jbs@eddie.UUCP (Jeff Siegal) writes:
>In article <109@polyob.UUCP> hgoldber@polyob.UUCP (A1 harry goldberg ) writes:
>>*** REPLACE THIS LINE WITH YOUR MESSAGE ***
>>am interested to hear pros and conss about using pascal as the
>>language in which to teach introductory programming
>
>Jeff Siegal - MIT EECS writes:
>Instead, teach general techniques of good software development
>(design, modularity, documentation, etc.).
***** BRAVO!! ******
>
>For a new (I think) idea in progressive teaching, how about using 3
>or 4 languages, and allowing students to use whichever one they feel
>most comfortable with (for projects and exam questions, etc.).
>
The main problem with using multiple languages in an intro course is time.
By forcing too many languages at the students the general principals of
software development get lost because the students end up spending far
too much time trying to learn the syntax and semantics of each language.
The other problem is that throwing more than a couple languages at intro
students tends to confuse them...Not to mention the headaches the poor
graders would have!
--
_______
Deborah J. Jackson
Georgia Tech, School of Electrical Engineering, Atlanta, GA 30332
(404)894-3058
uucp: ...!{akgua,allegra,hplabs,ihnp4,seismo,ulysses}!gatech!gt-eedsp!deb
^^^^^
Re: pascal ass intro. language
Author: David Schuh
Date: Mon, 24 Feb 1986 07:27
Date: Mon, 24 Feb 1986 07:27
44 lines
2574 bytes
2574 bytes
In article <717@ihwpt.UUCP> crocker@ihwpt.UUCP (ron crocker) writes: >> *** REPLACE THIS LINE WITH YOUR MESSAGE *** >> am interested to hear pros and conss about using pascal as the >> language in which to teach introductory programming > >I think PASCAL is a good choice for an introductory programming >language, but others are fine. What PASCAL offers that some other >languages do not is: >1) recursion > ... >2) strong type checking > ... >3) data structures. By having an introduction to simple data > ... >PASCAL has drawbacks (I/O for one) but is a better choice than >BASIC for an introductory course, in my opinion. > >Ron Crocker > Folks interested in which language to use in introductory classes, might recall that Pascal was disigned specifically as an instructional language intended to promote the good programing practices we all know and love. I started out with BASIC and have given much thought to whether that was the right choice as an intro class and language. The answer I reached is that it was not. If I were teaching an intro class intended for cs majors I would avoid like the plague BASIC or any language that has things like self declarations, or lack of self defined data structures value/formal parameters, strong type checking or procedures/functions etc ... . Sure pascal has drawbacks, especially if your undertaking vlarge projects (standard pascal at least) and its string manipulations are somewhat stilted. It wasnt really intended as a systems language but its popularity became so great that people used it anyway. Hence several versions with extensions to make those things possable. However these restrictions are probably a blessing for for beginning programers. So my recomendation is pascal with a strong emphasis on good programing practices. -- dave schuh !uwvax!schuh PS. Well a language pascal like benifits would also be suitable (modula perhaps) Just avoid Basic and fortran for sure.
Re: introductory programming languages
Author: steven
Date: Tue, 25 Feb 1986 18:02
Date: Tue, 25 Feb 1986 18:02
104 lines
5202 bytes
5202 bytes
(I am speaking as someone who has taught introductory programming with
several different languages, including Pascal, and who is now involved in a
project designing a new programming language for 'non-professional'
programmers (which includes students)).
In my view, an introductory programming course should teach as much as
possible about algorithms and programming, and as little as possible about
the nuts and bolts of programming languages. The programming language used
should therefore support this as much as possible by allowing algorithms to
be expressed as closely as possible to their formulation, without the
language imposing itself too much.
Furthermore, the language should help the student and teacher as much as
possible, by reducing the need for the student to ask about trivial matters
(a better syntax for Pascal or C for instance would reduce problems with
semi-colons). Strong typing for example is a boon to teachers (I believe)
because many problems are picked out far earlier and can be solved by the
student without reference to the teacher.
So, an introductory language should have several basic properties:
- It should be simple
So that as little time as possible is spent teaching the language, and as
much as possible on teaching programming.
- It should have a simple syntax
For the same reasons. An editor that flags syntax errors as you type them
in would be a great time saver and educational tool too.
- It should be high level
To take the emphasis away from the machine, and put it on the algorithms
- It should be structured
For expressing algorithms
- It should have strong typing
and other static checks, to detect errors earlier, and speed up
development time.
An interactive system is also far more helpful than a batch one.
A language that satisfies these requirements is B (the new one, NOT the
predecessor to C): it is simple (only 2 basic types, and 3 structured ones),
has a simple syntax (without semicolons) with an editor that does a lot of the
syntax work for you (no missing brackets for instance), it is high level and
structured, has strong typing (without declarations: it checks that all uses
are consistent), and it is interactive.
As an example of what I mean, consider what would be necessary to teach in
Pascal or C in order to be able to teach about garbage collection, and how
long a program simulating it would be, and how long it would take a student
to write.
Here is a program in B to do it. B has numbers and texts (=strings) and
(sorted) lists. So {1; 4; 9; 16; 25} is a list of numbers, and
{"cow"; "goat"; "dog"} a list of texts. Tables are a generalisation of
arrays: the indexes and elements may be of *any* type, so:
PUT {} IN graph
initialises the variable 'graph' with an empty table
PUT {1; 45; 61} IN graph[2]
PUT {8; 27; 96; 125} IN graph[61]
adds two elements to the table. Lists can be updated:
INSERT 42 IN graph[2]
REMOVE 61 FROM graph[2]
WRITE graph[2]
{1; 42; 45}
The keys (=indexes) of a table can be got as a list:
WRITE keys graph
{2; 61}
So here is the garbage collection program. The store is a graph, represented
by a table where each index represents the 'address' of a data-object, and
the element associate with that index is a list of addresses that that
data-object references. The program is a function that takes such a graph,
and a root node, and returns the graph with all nodes not reachable from the
root deleted. It works by first collecting the addresses of all nodes
reachable, and then deleting those not in that list.
YIELD graph accessible'from root:
MARK
SWEEP
RETURN graph
MARK:
PUT {root}, {root} IN accessible, to'do
WHILE to'do > {}:
SELECT'NODE
TREAT'NODE
SELECT'NODE:
PUT min to'do IN node
REMOVE node FROM to'do
TREAT'NODE:
FOR sub'node IN graph[node]
IF sub'node not'in accessible:
INSERT sub'node IN accessible
INSERT sub'node IN to'do
SWEEP:
FOR node in keys graph:
IF node not'in accessible:
DELETE graph[node]
B is actually in use in a couple of schools in the Netherlands, with some
others planning it. The major problems are that the implementations are not
really fast enough for large groups of students on one machine (though the
Dutch schools are doing this; on personal computers it is fast enough for
education), and there are not (yet) any introductory text-books.
Steven Pemberton, CWI, Amsterdam; steven@mcvax
Re: introductory programming languages
Author: jimc
Date: Fri, 28 Feb 1986 18:47
Date: Fri, 28 Feb 1986 18:47
24 lines
2169 bytes
2169 bytes
In article <6796@boring.UUCP> steven@mcvax.UUCP (Steven Pemberton) writes:
>In my view, an introductory programming course should teach as much as
>possible about algorithms and programming, and as little as possible about
>the nuts and bolts of programming languages. The programming language used
>should therefore support this as much as possible by allowing algorithms to
>be expressed as closely as possible to their formulation, without the
>language imposing itself too much.
>
I certainly agree. A family member learning programming started out going
through chapter 1 of Kernighan and Ritchie, and learned a lot, but started
getting bogged down when algorithm design started to dominate the programming
task. She started an intro to DP class, in which was assigned "Karel the
Robot" by (sorry, book not at hand). It turned out to be a VERY effective
introduction to structured programming and algorithm design, with all the
messes of math, data types, etc.etc. stripped away. The idea is, there's this
programmable robot which can move, pick up objects, iterate... An emulator
for the robot is available, sort of as shareware i.e. not free (see the book
for address). But it's quite practical to emulate the robot by hand.
--
James F. Carter (213) 206-1306
UCLA-SEASnet; 2567 Boelter Hall; 405 Hilgard Ave.; Los Angeles, CA 90024
UUCP:...!{ihnp4,ucbvax,{hao!cepu}}!ucla-cs!jimc ARPA:jimc@locus.UCLA.EDU
Re: pascal ass intro. language
Author: gast
Date: Mon, 03 Mar 1986 04:52
Date: Mon, 03 Mar 1986 04:52
38 lines
2479 bytes
2479 bytes
>In article <109@polyob.UUCP> hgoldber@polyob.UUCP (A1 harry goldberg ) writes:
>am interested to hear pros and conss about using pascal as the
>language in which to teach introductory programming
What language should be used depends on who is taking the course.
If the course is programming for poets then Pascal or BASIC are
fine. They are essentially teaching languages. If the course
is for computer science majors then I would vote for Algol 68 or
Lisp or Prolog.
Algol 68 is much better than Pascal because it is much more general. It
doesn't restrict the programmer to write in a manner such that a one
pass compiler can be used. It is orthogonal and general. Structs
(records) can be returned by a function, for example. (Pascal does not
allow this). Mode (type) equivalence is not by name as it is in Pascal.
Thus, it is possible to write a generalized sort routine. How do you
teach someone to write a sort routine in Pascal?
Only a few ideas have to be learned, not a complex set of rules and
regulations. One example is the idea of the equivalence of expressions
and statements. Students can think about problem solving, not syntax.
In the upper division programming languages course at UCLA, the
language the students like best is Algol 68. Is there any wonder
why?
Finally, HOW DO YOU EXPECT STUDENTS TO WRITE ORTHOGONAL AND GENERAL
PROGRAMS IF THE LANGUAGE THEY ARE USING IS NON-ORTHOGONAL?
David Gast
{ihnp4, ucbvax}!ucla-cs!gast
gast@ucla-locus.arpa
P.S. The argument is that there are not enough textbooks or compilers
is not valid. If 10,000 professors started clammoring for Algol 68
textbooks and complilers, they would appear. Even Joe "I don't know
Anything" Technical writer would write a book on Algol 68.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads