comp.lang.ada
 help / color / mirror / Atom feed
From: John McCormick <mccormick@cs.uni.edu>
Subject: Re: Ada for 1st year students
Date: Sat, 11 Oct 2008 05:54:50 -0700 (PDT)
Date: 2008-10-11T05:54:50-07:00	[thread overview]
Message-ID: <bc9af86b-de74-4ee8-bbd8-942154036def@34g2000hsh.googlegroups.com> (raw)
In-Reply-To: 543356bc-7862-45d2-9004-dfef69deab26@79g2000hsk.googlegroups.com

On Oct 10, 5:04 am, amado.al...@gmail.com wrote:
> On 10 Out, 02:15, Jeffrey Creem <j...@thecreems.com> wrote:
>
> >http://www.amazon.com/PLUS-DATA-STRUCTURES-Nell-Dale/dp/0763737941
>
> > It tends to be geared more toward a beginner student than some of the
> > other books that were suggested.
>
> Thanks, but too off the mark, viz. too expensive (100US$) and too OO.

I've been teaching the first year courses since 1978 and have been
using Ada in them since 1990.  I've written Ada textbooks for these
courses.  I have some strong opinions in these matters.

I'm surprised you find Ada Plus Data Structures too Object-Oriented.
I feel that the John English book is far more Object-Oriented.  I
recommend the English book to those who want to teach a beginning
course with the objects early approach.  Ada Plus Data Structures
takes the traditional abstract data type approach but uses the OO
terminology.  The only use of inheritance in the book is with
controlled types in the prevention of memory leaks in pointer based
collection classes.  However, Ada Plus Data Structures was not written
for beginners.  It is meant for the second course (CS2).

For the first course (CS1), I feel strongly that the textbook should
emphasize top down design through procedural abstraction.  Beginners
need to learn the fundamental control structures (decision, iteration,
and subprogram) and fundamental data structures (the Ada type
system).  I feel that it is important that they see sizable examples
in the form of case studies.

I am VERY wary of teaching GUI programming to beginners.  They put
enormous amounts of time into playing with fonts, colors, etc at the
expense of learning basic programming.  Too many students come out of
GUI based CS1 courses with no ability to write decent if and loop
statements.  But they sure can draw pretty windows. :-) I prefer to
keep the I/O as basic as possible and concentrate on the fundamentals
of algorithm design and implementation.  Two textbooks that embrace
this philosophy are

Programming and Problem Solving with Ada 95
by Dale, Weems, and McCormick  (I am obviously highly biased toward
this book)

Ada 95: Problem Solving and Program Design
by Feldman and Koffman

Note the emphasis on problem solving in each of these titles.  Don't
go by the US Amazon for the prices.  I know that my publisher prices
my books lower in Spain, so they probably do the same in Portugal.
Check with your book store.  There is also a decent supply of used
copies available.

I like to schedule what CS educators call "closed labs".  These are
like the labs you had in your chemistry and physics courses.  In the
lab, students get practice with the concepts discussed in lecture.
They solve small problems with an instructor nearby to assist.
Research at the University of Texas at Austin indicates positive
results with closed labs.  I give my students a Pre-Lab exercise to
complete before the lab session, the In-Lab exercise, and then a Post-
Lab exercise (programming assignment) that gives them a more
challenging problem to solve.  I would be happy to share these
laboratory materials.  Of course, they are closely tied to my textbook

In terms of tools, you are on the right track with GNAT through the
GAP program.  I agree with others that GPS is too much for beginners.
My favorite IDE, AdaGIDE, has been mentioned.  It is about as basic as
you can get.  No one has mentioned my second favorite simple IDE,
jGRASP which is available for multiple platforms.  jGRASP's control
structure diagrams are viewed favorably by many educators.  Find it at
http://www.jgrasp.org/



  parent reply	other threads:[~2008-10-11 12:54 UTC|newest]

Thread overview: 118+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-09 16:06 Ada for 1st year students amado.alves
2008-10-09 16:44 ` Vadim Godunko
2008-10-09 17:00   ` Georg Bauhaus
2008-10-09 18:30     ` amado.alves
2008-11-01 12:13       ` Mike H
2008-10-09 18:25   ` amado.alves
2008-10-09 19:09     ` Vadim Godunko
2008-10-09 19:37       ` amado.alves
2008-10-09 16:47 ` mockturtle
2008-10-09 17:06 ` Ludovic Brenta
2008-10-09 19:36   ` Simon Wright
2008-10-14  4:32   ` Randy Brukardt
2008-10-14 10:58     ` amado.alves
2008-10-09 17:27 ` Robert A Duff
2008-10-09 18:35 ` Jeffrey R. Carter
2008-10-09 19:36   ` amado.alves
2008-10-09 19:42 ` amado.alves
2008-10-09 20:05   ` ahab
2008-10-09 21:01   ` Pascal Obry
2008-10-09 21:13     ` Ed Falis
2008-10-09 23:14       ` amado.alves
2008-10-10  0:49         ` Jeffrey R. Carter
     [not found]         ` <D9OdnXWk_MQQOXPVnZ2dnUVZ_gWdnZ2d@earthlink.com>
2008-10-10  9:54           ` amado.alves
2008-10-10 17:44             ` Georg Bauhaus
2008-10-15 10:40     ` amado.alves
2008-10-15 11:00       ` christoph.grein
2008-10-15 11:14         ` amado.alves
2008-10-15 11:50           ` christoph.grein
2008-10-15 17:34             ` Georg Bauhaus
2008-10-15 22:30               ` amado.alves
2008-10-16  7:45                 ` christoph.grein
2008-10-16  9:12                   ` amado.alves
2008-10-16 10:15                     ` christoph.grein
2008-10-16 11:17                       ` Niklas Holsti
2008-10-16 11:35                         ` amado.alves
2008-10-16 19:24                         ` sjw
2008-10-17 12:00                           ` amado.alves
2008-10-16 16:26                     ` Pascal Obry
2008-10-16 18:15                       ` amado.alves
2008-10-16 19:14                         ` sjw
2008-10-17 11:59                           ` amado.alves
2008-10-16  9:42                   ` Common Configuration Settings (was: Ada for 1st year students) Georg Bauhaus
2008-10-16 10:24                     ` christoph.grein
2008-10-16 11:20                       ` Common Configuration Settings Georg Bauhaus
2008-10-16 11:37                         ` amado.alves
2008-10-15 13:57           ` Ada for 1st year students Pascal Obry
2008-10-15 15:20             ` amado.alves
2008-10-15 12:51         ` Dmitry A. Kazakov
2008-10-15 15:34           ` amado.alves
2008-10-25 19:06             ` Marco
2008-10-15 11:08       ` Jean-Pierre Rosen
2008-10-15 15:19         ` amado.alves
2008-10-10  0:09 ` Gene
2008-10-10  1:15 ` Jeffrey Creem
2008-10-10 10:04   ` amado.alves
2008-10-11  0:15     ` Jeffrey Creem
2008-10-11 13:46       ` amado.alves
2008-10-11 14:46         ` Dmitry A. Kazakov
2008-10-11 20:43           ` amado.alves
2008-10-11 20:57             ` amado.alves
2008-10-11 23:37               ` Mike H
2008-10-12  1:06                 ` (see below)
     [not found]               ` <LIydnQ3Px5JC1WzVnZ2dnUVZ_h2dnZ2d@earthlink.com>
2008-10-12  1:37                 ` Gary Scott
2008-11-01 12:09               ` Mike H
2008-10-11 12:54     ` John McCormick [this message]
2008-10-11 13:35       ` amado.alves
2008-10-13 23:17         ` Gene
2008-10-11 14:08       ` amado.alves
2008-10-13 12:51         ` Colin Paul Gloster
2008-10-13 20:07           ` amado.alves
2008-10-14 11:56             ` Colin Paul Gloster
2008-10-11 14:12       ` amado.alves
2008-10-11 16:20       ` (see below)
2008-10-12 13:00         ` John McCormick
2008-10-12 14:53           ` amado.alves
2008-10-12 15:31             ` Gary Scott
2008-10-12 16:19               ` Georg Bauhaus
2008-10-13 13:06                 ` Colin Paul Gloster
2008-10-13 15:29                   ` Georg Bauhaus
2008-10-13 16:01                     ` Colin Paul Gloster
2008-10-14 14:17                       ` Georg Bauhaus
2008-10-13 20:13                   ` amado.alves
2008-10-12 14:56           ` Dmitry A. Kazakov
2008-10-13 13:10             ` Colin Paul Gloster
2008-10-13 14:08               ` Dmitry A. Kazakov
2008-10-13 14:26                 ` Colin Paul Gloster
2008-10-13 14:46                   ` Dmitry A. Kazakov
2008-10-14 12:03                     ` Colin Paul Gloster
2008-10-14 12:25                       ` Dmitry A. Kazakov
2008-10-13 15:52             ` John McCormick
2008-10-11 17:44       ` Simon Wright
2008-10-13 14:22 ` Colin Paul Gloster
2008-10-13 20:27   ` amado.alves
2008-10-19 20:49 ` Michael Feldman
2008-10-21 11:16   ` amado.alves
2008-10-22  0:41     ` John McCormick
2008-10-22  8:50       ` amado.alves
2008-10-22  9:26         ` Georg Bauhaus
2008-10-22 11:07           ` amado.alves
2008-10-22 18:02           ` Jeffrey R. Carter
2008-10-22 19:26             ` Adam Beneschan
2008-10-22 20:31               ` Jeffrey R. Carter
2008-11-04 15:31             ` amado.alves
2008-11-04 18:16               ` Colin Paul Gloster
2008-11-05 15:30               ` John McCormick
2008-11-12 12:23                 ` amado.alves
2008-10-22 18:24           ` Jeffrey R. Carter
2008-10-22 13:38         ` mcollado
2008-10-21 11:30   ` amado.alves
2008-10-21 12:34     ` Peter Hermann
2008-10-21 16:35       ` amado.alves
2008-10-22 13:40         ` Larry A Barowski
2008-10-22 13:33       ` Larry A Barowski
2008-10-22 14:11         ` Britt Snodgrass
2008-10-22 21:48           ` Larry A Barowski
2008-10-25 19:36         ` Marco
2008-10-28  0:49           ` lbarowski
2008-10-28 11:31           ` lbarowski
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox