textbooks for CS sequence 
Author Message
 textbooks for CS sequence

I need some textbook recommendations for a CS course sequence.  
Appalachian State University is overhauling its introductory CS
courses.  The affected courses are

  Programming Fundamentals (an introductory programming course now
   taught in Pascal)
  Algorithms (currently the course in which we introduce C
   programming)
  Data Structures (more C programming)

In the new sequence, we will use C for the first course and will
hopefully free up a lot of time in the following courses.  There
are a couple of ways to provide continuity in the sequence.  We
can use a common text for the first two courses, or for the last
two.  I would love to hear from you if you can suggest any of the
following:

  A good C text for a first programming course,
  a C text suitable for a first programming course but which has
    enough material on e.g. lists, queues, stacks and binary trees
    to entertain students in an Algorithms course,
  an algorithms/data structures in C text which is suitable for
   a two course sequence,
  a data structures course which introduces C++ and which exploits
   its appropriateness for ADT's (without requiring a detailed
   study of C++).

If there is significant response, I'll post a summary.
--

Dept. of Mathematical Sciences
Appalachian State University
Boone, NC 28608      (704) 264-6906



Mon, 10 Jul 1995 05:44:42 GMT  
 textbooks for CS sequence

Quote:
>  A good C text for a first programming course, ...
>  a data structures course which introduces C++ and which exploits
>   its appropriateness for ADT's (without requiring a detailed
>   study of C++).

     I second the call for a discussion of intro textbooks.  At UNI,
     we are moving our Programming I course to C++ -- assuming that
     we can find a suitable text.  Is there such a beast?  Our next
     courses in the sequence, Data Structures and Algorithms, will
     also be taught using C++ as the laboratory language for students,
     but I am not certain to what extent the texts for these courses
     need (or even *should*) be written in the context of C++.  Are
     there any specific comments/pieces of advice that anyone can offer?

--
~~~~ Eugene Wallingford   ~~~~  Dept of Computer Science     ~~~~



Tue, 11 Jul 1995 02:41:15 GMT  
 textbooks for CS sequence
: >  A good C text for a first programming course, ...
: >  a data structures course which introduces C++ and which exploits
: >   its appropriateness for ADT's (without requiring a detailed
: >   study of C++).

:      I second the call for a discussion of intro textbooks.  At UNI,
:      we are moving our Programming I course to C++ -- assuming that
:      we can find a suitable text.  Is there such a beast?  Our next
:      courses in the sequence, Data Structures and Algorithms, will
:      also be taught using C++ as the laboratory language for students,
:      but I am not certain to what extent the texts for these courses
:      need (or even *should*) be written in the context of C++.  Are
:      there any specific comments/pieces of advice that anyone can offer?

: --
: ~~~~ Eugene Wallingford   ~~~~  Dept of Computer Science     ~~~~

I am about to take this course and got the following recommendations
(not in order of their worth) :

* C++ Programming lang , Stroustrup
* C++ Primer, Lippman
* C++ Answer book , Hansen
* OOP in C++, barkakati
* Using C++ , Eckel
* C++ Programming & Fundamental Concepts, Anderson & Heinze
* An Intro to OOP, Budd
* OO Design with Applications, booch & Cummings
* C++ complete reference, Herbert & Schildt
* Programming in C++ , Stark & Denhurst.

I would appreciate if some one could review them in brief or add to this
list.

Thanks.
--
                                   Rahul Bhargava      
                     (315) 443-4889 office. (315) 475-3545 home.



Tue, 11 Jul 1995 18:23:20 GMT  
 textbooks for CS sequence
Quote:

>* Programming in C++ , Stark & Denhurst.

                                ^^^^^^^^
That's "Dewhurst", I think _____||||||||

This is a pretty good introduction for someone who already knows C.
It doesn't get big-time into object oriented programming, but it
does do a good job of introducing the main new features of C++ and
how to use them.

On the other hand, it's by no means a technical reference, and the
1989 version doesn't say anything about newer features like templates
and exception handling.  (I don't know if there's a later editon or not.)

Quote:
>* C++ Programming lang , Stroustrup

The new edition contains all the latest language features, including a
fairly extensive language reference.  I just got this one, and I'm only
through the first few chapters, but it appears to be somewhat less well
written than the Dewhurst and Stark book.

I'm not familiar with any of the other texts on your list, though...

--
Caught an internal error--.brainrc restored



Thu, 13 Jul 1995 02:03:16 GMT  
 textbooks for CS sequence

: : >  A good C text for a first programming course, ...
: : >  a data structures course which introduces C++ and which exploits
: : >   its appropriateness for ADT's (without requiring a detailed
: : >   study of C++).
:
: * C++ Programming lang , Stroustrup
Excellent, but students often tell me they can't understand it!

: * C++ Primer, Lippman
Good, covers templates etc. Quite complete.

: * Using C++ , Eckel
Used to be a good book, but outdated now (covers up to 2.1 only)

: * Programming in C++ , Stark & Denhurst.
A nice introductory text.

All opinions are my own personal prejudices though...
--
-------------------------------------------------------------------------------
John English                    | Fudd's first law of opposition:
Dept. of Computing              |    If you push something hard enough, it
University of Brighton          |    *will* fall over.

Fax:    0273 642405             |    What goes in, must come out.
-------------------------------------------------------------------------------



Sat, 15 Jul 1995 23:03:52 GMT  
 textbooks for CS sequence
Quote:

> >  A good C text for a first programming course, ...
> >  a data structures course which introduces C++ and which exploits
> >   its appropriateness for ADT's (without requiring a detailed
> >   study of C++).

>      I second the call for a discussion of intro textbooks.  At UNI,
>      we are moving our Programming I course to C++ -- assuming that
>      we can find a suitable text.  Is there such a beast?  Our next
>      courses in the sequence, Data Structures and Algorithms, will
>      also be taught using C++ as the laboratory language for students,
>      but I am not certain to what extent the texts for these courses
>      need (or even *should*) be written in the context of C++.  Are
>      there any specific comments/pieces of advice that anyone can offer?

> --
> ~~~~ Eugene Wallingford   ~~~~  Dept of Computer Science     ~~~~


Although not in the CS Department here, I cannot imagine why you would
base a ***first*** programming course on C or C++. It depends what you
are trying to accomplish, of course. But it seems to me the poor student
will be trying to do too many things at once:

        > learn about how a computer is organized

        > learn about data structures and their associated code

        > learn some useful algorithms

        > learn the specifics of a language

The only one of these under the instructor's control is the choice of
a language. Good pedagogy would suggest the simplest language, whose
structure is the closest to something familiar, that can be found. To
me this means BASIC or Pascal, but not C.

C is a good language with powerful abstractions, but it is full of arcane
usages and brackets that instruct the compiler, so it can be daunting to
a beginner. And the idea of introducing objects, inheritance and all that
stuff via C++ seems misguided, to say the least.

In other words, when you teach a novice the art of juggling, start him
with soft balls and bean-bags, not eggs, swords or flaming torches. While
the latter are no different in principle from the former, they will distract
your pupil and produce effects opposite to your intention.

--jvn



Sun, 23 Jul 1995 02:47:34 GMT  
 textbooks for CS sequence


Quote:

> > >  A good C text for a first programming course, ...
> > >  a data structures course which introduces C++ and which exploits
> > >   its appropriateness for ADT's (without requiring a detailed
> > >   study of C++).

My favorite text on straight C is "A Book on C" from Kelly and Pohl.
Starts very basic and takes the reader through stuff like linked lists.

Cheers,

Bill Dudney



Tue, 01 Aug 1995 06:22:49 GMT  
 textbooks for CS sequence
What I really want is C++ is the basis for an online system design
course later down the road. I want something OO and neater than c

... maybe it will work, time will tell.

The Perry book is excellent.

--Thom
.



Mon, 07 Aug 1995 00:07:11 GMT  
 textbooks for CS sequence

Quote:

>> >  A good C text for a first programming course, ...
>> >  a data structures course which introduces C++ and which exploits
>> >>its appropriateness for ADT's (without requiring a detailed
>> >>study of C++).

>>>>I second the call for a discussion of intro textbooks.  At UNI,
>>>>we are moving our Programming I course to C++ -- assuming that
>>>>we can find a suitable text.  Is there such a beast?  Our next
>>>>courses in the sequence, Data Structures and Algorithms, will
>>>>also be taught using C++ as the laboratory language for students,
>>>>but I am not certain to what extent the texts for these courses
>>>>need (or even *should*) be written in the context of C++.  Are
>>>>there any specific comments/pieces of advice that anyone can offer?

>> --
>> ~~~~ Eugene Wallingford>~~~~  Dept of Computer Science>  ~~~~

>Although not in the CS Department here, I cannot imagine why you would
>base a ***first*** programming course on C or C++. It depends what you
>are trying to accomplish, of course. But it seems to me the poor student
>will be trying to do too many things at once:

        >> learn about how a computer is organized

        >> learn about data structures and their associated code

        >> learn some useful algorithms

        >> learn the specifics of a language

Quote:
>The only one of these under the instructor's control is the choice of
>a language. Good pedagogy would suggest the simplest language, whose
>structure is the closest to something familiar, that can be found. To
>me this means BASIC or Pascal, but not C.
>C is a good language with powerful abstractions, but it is full of arcane
>usages and brackets that instruct the compiler, so it can be daunting to
>a beginner. And the idea of introducing objects, inheritance and all that
>stuff via C++ seems misguided, to say the least.
>In other words, when you teach a novice the art of juggling, start him
>with soft balls and bean-bags, not eggs, swords or flaming torches. While
>the latter are no different in principle from the former, they will distract
>your pupil and produce effects opposite to your intention.

Are you basing your argument on the fact that you are giving a student
too much power when starting her out with C/C++?  I am a senior in the
CS department here at Syracuse, and we were started out with Scheme.
Yeah, this keeps you from trying to learn too much.  NOT!  Have you
ever programmed scheme or lisp in general?  This class usually ended
up being a weeder, not much more.

I believe that a student should be started out with something like
C/C++ because that is most likely what she is going to use, or want to
be able to use after graduation.  If you wait until junior or senior
year to teach it to students, they have at most 2 years experience
with it upon graduation.  Well, you may argue, students can always
learn it on their own.  Oh yeah, we have lots of extra time as CS
students to spend doing whatever we want.

As far as textbooks for a C++ course go, I appreciate the way it is
done here with the course I am taking now (yea, I am taking C++ in my
last semester, the first time it was really offered to me) the prof.
made one book available for us, The C++ Programming Language by
Stroustrup in this case, and then suggested we get a second text, any
second text for whatever we couldn't find in Stroustrup, or just as
another perspective.

Well, those are my opinions.  Obviously not those of my department.

                                 -Rob

 I have something to say, "It's better to burn out than to fade away."
                       Kergan, from Highlander



Sat, 05 Aug 1995 23:53:35 GMT  
 textbooks for CS sequence

Quote:

>  I am a senior in the
>CS department here at Syracuse, and we were started out with Scheme.
>Yeah, this keeps you from trying to learn too much.  NOT!  Have you
>ever programmed scheme or lisp in general?  This class usually ended
>up being a weeder, not much more.

I'm sorry that you had a bad experience in a Scheme class, but I think
perhaps you're missing the rationale behind it.  (I teach intro-to-CS
in Scheme at Berkeley.)  It's not a question of learning a lot versus
not learning a lot; the language affects WHAT you learn.

In a language such as C (or Pascal or C++) in which the programmer is
responsible for storage allocation, a lot of learning effort must go
into understanding the allocation model.  For example, what goes on
the stack, and what goes on the heap?  Why is it okay for a C function
to return a stack-allocated struct, but not a stack-allocated array?
These things are enormously confusing, and once you've learned them,
all you've really learned is to understand the bad design of one
particular programming language.

By contrast, a language with automatic storage allocation and deallocation
(garbage collection) frees the programmer from this burden.  That doesn't
mean you have nothing to learn, but it means that you can concentrate on
learning more useful ideas, such as data abstraction, data-directed
programming, recursion, higher-order functions, etc.

(Please note, by the way, that the issue is not about functional versus
object-oriented languages.  Smalltalk is the paradigmatic OOP language
and it does automatic allocation.  It would be a fine vehicle for an
intro CS class.)



Sun, 06 Aug 1995 05:54:08 GMT  
 textbooks for CS sequence
Quote:

: Brian Harvey writes:

:  
: >By contrast, a language with automatic storage allocation and deallocation
: >(garbage collection) frees the programmer from this burden.  That doesn't
: >mean you have nothing to learn, but it means that you can concentrate on
: >learning more useful ideas, such as data abstraction, data-directed
: >programming, recursion, higher-order functions, etc.
: >
: >(Please note, by the way, that the issue is not about functional versus
: >object-oriented languages.  Smalltalk is the paradigmatic OOP language
: >and it does automatic allocation.  It would be a fine vehicle for an
: >intro CS class.)

:     These are excellent points.  Indeed, I pushed for Smalltalk as the
:     introductory language in our curriculum, but was defeated by a
:     group of folks who are more concerned with C++'s (perceived) hold
:     on the market.  This is why I am faced with the difficult task of
:     finding a textbook that uses C++ but that teaches the right concepts
:     (without jumping too heavily into allocation issues, if possible).

: --
: ~~~~ Eugene Wallingford   ~~~~  Dept of Computer Science     ~~~~

IMHO, but for concepts in the OOP sense you probably want to check out
Betrand Meyers Eiffel which has a garbage collector and is a statically typed language. Eiffel teaches the rudemantry OOP concepts plus more ie. programming by contract etc etc.  Very good for an academic environment.



Mon, 07 Aug 1995 03:13:28 GMT  
 textbooks for CS sequence

Quote:
Brian Harvey writes:
>By contrast, a language with automatic storage allocation and deallocation
>(garbage collection) frees the programmer from this burden.  That doesn't
>mean you have nothing to learn, but it means that you can concentrate on
>learning more useful ideas, such as data abstraction, data-directed
>programming, recursion, higher-order functions, etc.

>(Please note, by the way, that the issue is not about functional versus
>object-oriented languages.  Smalltalk is the paradigmatic OOP language
>and it does automatic allocation.  It would be a fine vehicle for an
>intro CS class.)

    These are excellent points.  Indeed, I pushed for Smalltalk as the
    introductory language in our curriculum, but was defeated by a
    group of folks who are more concerned with C++'s (perceived) hold
    on the market.  This is why I am faced with the difficult task of
    finding a textbook that uses C++ but that teaches the right concepts
    (without jumping too heavily into allocation issues, if possible).

--
~~~~ Eugene Wallingford   ~~~~  Dept of Computer Science     ~~~~



Sun, 06 Aug 1995 22:21:27 GMT  
 
 [ 13 post ] 

 Relevant Pages 

1. Looking for good textbook for CS course

2. Newbie: separate big .cs file into small .cs files

3. Converts a sequence of wide characters to a corresponding sequence of multibyte characters

4. Textbooks!

5. Looking for a good C textbook

6. Compiler Error with textbook tcp-client program

7. Data structures and algorithms (CS2) online textbook

8. Memory allocation textbook case

9. Deitel textbook

10. Question of a textbook

11. free c textbook?

12. Textbook: Intro. to Data Structures

 

 
Powered by phpBB® Forum Software