Disappointed by "Accelerated C++"

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Michael Bell

    #1

    Disappointed by "Accelerated C++"

    I did an the Open University course MT262. I got 3/4 the way through
    it and only really came unstuck at classes.

    Following the advice of many, on this list and elsewhere, and
    impressed by their statement that students were writing substantial
    programs within a day, I bought "Accelerate d C++" by Koenig and Moo.

    I find I just can't get on with it. I have started at the beginning,
    and I just can't follow it. The first few chapters do stuff that I
    easily did with the Open University, and I just can't follow it.

    Why is this?


    Maybe it is because they teach their classes using the spoken word,
    and their writing style is the problem. Nobody could be writing
    substantial programs within a day from this book. Writing and speaking
    are different skills. I've seen such things before. I once had a boss
    whose writing was AWFUL, just AWFUL, truly the laughing-stock of the
    firm.

    Or maybe they are TOO well qualified. The senior maths teachers at my
    school were genuine mathematicians, who had turned to teaching. They
    simply couldn't understand what we boys found difficult. The best
    maths teacher as my school was the woodwork master;, he saw what we
    boys found hard, he found it hard himself. So he explained it well.

    Koenig and Moo are certainly well qualified, I wonder if that has
    stopped people from judging what they have actually written?

    For myself, it is going to be "C++ for Dummies" by Stephen Randy
    Davis. There is no point in beating my head against a brick wall.

    Michael Bell

    --
  • LR

    #2
    Re: Disappointed by "Accelerat ed C++"

    Michael Bell wrote:
    Following the advice of many, on this list and elsewhere, and
    impressed by their statement that students were writing substantial
    programs within a day, I bought "Accelerate d C++" by Koenig and Moo.
    >
    I find I just can't get on with it. I have started at the beginning,
    and I just can't follow it. The first few chapters do stuff that I
    easily did with the Open University, and I just can't follow it.
    >
    Why is this?
    Perhaps you'd be willing to share a particular problem that you had
    understanding something in the book?

    TIA

    LR

    Comment

    • =?UTF-8?B?RXJpayBXaWtzdHLDtm0=?=

      #3
      Re: Disappointed by "Accelerat ed C++"

      On 2007-11-18 19:26, Michael Bell wrote:
      I did an the Open University course MT262. I got 3/4 the way through
      it and only really came unstuck at classes.
      >
      Following the advice of many, on this list and elsewhere, and
      impressed by their statement that students were writing substantial
      programs within a day, I bought "Accelerate d C++" by Koenig and Moo.
      >
      I find I just can't get on with it. I have started at the beginning,
      and I just can't follow it. The first few chapters do stuff that I
      easily did with the Open University, and I just can't follow it.
      >
      Why is this?
      I do not know, I have not read the book but I have looked in it and it
      looked quite OK to me. If you have any specific grievances perhaps
      someone here can help you.
      Maybe it is because they teach their classes using the spoken word,
      and their writing style is the problem. Nobody could be writing
      substantial programs within a day from this book.
      None that I know of would be able to write substantial programs in
      (good) C++ after reading just reading a book. C++ is a very complex
      language and after reading a book or two you will have a foundation to
      stand on, but it to be a truly good C++ programmer you need a few years
      of experience in addition to reading books and articles.

      --
      Erik Wikström

      Comment

      • ma740988

        #4
        Re: Disappointed by "Accelerat ed C++"

        On Nov 18, 1:26 pm, Michael Bell <mich...@beaver bell.co.ukwrote :
        I did an the Open University course MT262. I got 3/4 the way through
        it and only really came unstuck at classes.
        >
        Following the advice of many, on this list and elsewhere, and
        impressed by their statement that students were writing substantial
        programs within a day, I bought "Accelerate d C++" by Koenig and Moo.
        >
        I find I just can't get on with it. I have started at the beginning,
        and I just can't follow it. The first few chapters do stuff that I
        easily did with the Open University, and I just can't follow it.
        >
        Why is this?
        It would be beneficial if you offered more specifics about the
        chapters you alluded to. Could you elaborate on what you 'just can't
        follow'. The loop invariant property or ...?
        Be advised that the text places emphasis on solving problems rather
        than exploring language linguistics.

        Comment

        • Jim Langston

          #5
          Re: Disappointed by &quot;Accelerat ed C++&quot;

          "Michael Bell" <michael@beaver bell.co.ukwrote in message
          news:b3eecc434f .michaelbell@mi chael.beaverbel l.co.uk...
          >I did an the Open University course MT262. I got 3/4 the way through
          it and only really came unstuck at classes.
          >
          Following the advice of many, on this list and elsewhere, and
          impressed by their statement that students were writing substantial
          programs within a day, I bought "Accelerate d C++" by Koenig and Moo.
          >
          I find I just can't get on with it. I have started at the beginning,
          and I just can't follow it. The first few chapters do stuff that I
          easily did with the Open University, and I just can't follow it.
          >
          Why is this?
          Different people learn in differnt ways.When I first started C++ I also
          picked up a book and read through it, not understanding 3/4 of what I was
          reading. But I worked with what I did understand, and kept reading the book
          and eventually I understood everything the book was telling me (whether I
          remembered it or not the next day).

          I had not come from an OOP background, however, and so classes and objects
          were totally new to me. Perhaps that's where you are? Have you done any
          programming before with classesses and instances? If not, it will just take
          a bit longer for you to understand their concepts, as it took for me.

          Don't give up though.


          Comment

          • Michael Bell

            #6
            Re: Disappointed by &quot;Accelerat ed C++&quot;

            In message <_I20j.566$R_4. 276@newsb.telia .net>
            Erik Wikström <Erik-wikstrom@telia. comwrote:
            On 2007-11-18 19:26, Michael Bell wrote:
            >I did an the Open University course MT262. I got 3/4 the way through
            >it and only really came unstuck at classes.
            >>
            >Following the advice of many, on this list and elsewhere, and
            >impressed by their statement that students were writing substantial
            >programs within a day, I bought "Accelerate d C++" by Koenig and Moo.
            >>
            >I find I just can't get on with it. I have started at the beginning,
            >and I just can't follow it. The first few chapters do stuff that I
            >easily did with the Open University, and I just can't follow it.
            >>
            >Why is this?
            I do not know, I have not read the book but I have looked in it and it
            looked quite OK to me. If you have any specific grievances perhaps
            someone here can help you.
            >Maybe it is because they teach their classes using the spoken word,
            >and their writing style is the problem. Nobody could be writing
            >substantial programs within a day from this book.
            None that I know of would be able to write substantial programs in
            (good) C++ after reading just reading a book. C++ is a very complex
            language and after reading a book or two you will have a foundation to
            stand on, but it to be a truly good C++ programmer you need a few years
            of experience in addition to reading books and articles.
            It says on the cover "The authors proved this approach in their
            professional-education course in Stanford University, where students
            learned how to write substantial programs on the first day in the
            classroom".

            If you think this is absurd exaggeration, then write to the
            publishers, in America unfortunately, from you in Sweden and me in
            Britain.

            As I point out, they achieve this in a CLASSROOM, and this is very
            different environment to a book.

            They say "profession al-education". Were these students completely
            fresh or did they already know something?

            Anyway, it seems to be an obviously false claim, and therefore to be
            condemned.

            Michael Bell

            --

            Comment

            • Michael Bell

              #7
              Re: Disappointed by &quot;Accelerat ed C++&quot;

              In message <4740ab73$0$269 96$cc2e38e6@new s.uslec.net>
              LR <lruss@superlin k.netwrote:
              Michael Bell wrote:
              >Following the advice of many, on this list and elsewhere, and
              >impressed by their statement that students were writing substantial
              >programs within a day, I bought "Accelerate d C++" by Koenig and Moo.
              >>
              >I find I just can't get on with it. I have started at the beginning,
              >and I just can't follow it. The first few chapters do stuff that I
              >easily did with the Open University, and I just can't follow it.
              >>
              >Why is this?
              Perhaps you'd be willing to share a particular problem that you had
              understanding something in the book?
              TIA
              LR
              There is no PARTICULAR PROBLEM to be sorted out. I came to a stop at
              Chapter 2 of Koenig and Moo. This chapter is called "Looping and
              counting" and it deals with if, do-while, for and suchlike. This is
              something that I learned without too much difficulty from the Open
              University ("OU") course MT262, but I was going over it again to make
              sure I understood it and their way of doing things. And even though I
              understood what I was trying to learn, I couldn't follow their
              teaching.

              Only when I look back on it do I realise that there was something in
              common with the point where I lost the track of the OU course. In both
              cases the teaching went through a pile of stuff saying "you'll see how
              it all fits together at the end" and I just couldn't handle it. Maybe
              that is a teaching format that suits some, but it loses me.

              Michael Bell


              --

              Comment

              • Andrew Koenig

                #8
                Re: Disappointed by &quot;Accelerat ed C++&quot;

                "Michael Bell" <michael@beaver bell.co.ukwrote in message
                news:60d626444f .michaelbell@mi chael.beaverbel l.co.uk...
                There is no PARTICULAR PROBLEM to be sorted out. I came to a stop at
                Chapter 2 of Koenig and Moo. This chapter is called "Looping and
                counting" and it deals with if, do-while, for and suchlike. This is
                something that I learned without too much difficulty from the Open
                University ("OU") course MT262, but I was going over it again to make
                sure I understood it and their way of doing things. And even though I
                understood what I was trying to learn, I couldn't follow their
                teaching.
                Did you try running the programs that we give as examples in the book? If
                not, I'd like to suggest that you do so.

                If you did try running the programs and got stuck anyway, would you mind
                posting the first program that you couldn't understand, and explaining what
                your problems were with it?


                Comment

                • Andrew Koenig

                  #9
                  Re: Disappointed by &quot;Accelerat ed C++&quot;

                  <pauldepstein@a tt.netwrote in message
                  news:8e96b548-69fa-4760-afa4-b9152bdb1ba6@s3 6g2000prg.googl egroups.com...
                  Perhaps the disagreement between the OP and the author is largely
                  based on the vague word -- "substantia l". If a "substantia l" program
                  is an elegantly designed user-friendly program to present all
                  solutions when a user inputs a quartic equation, then I'm sure Andrew
                  Koenig would agree that under _that_ definition of "substantia l", his
                  book would not magically enable someone to write a "substantia l"
                  program on their first day. However, if "substantia l" means to solve
                  a problem that would be practically unsolvable using an average hand
                  calculator, then I'm sure the OP would agree that's not an
                  unreasonable claim.
                  How about a program to produce a concordance of a text file? In other
                  words: Read a file and produce a table of every distinct word in the file,
                  along with how many times it appears. That's a program that would be far
                  too hard to write after one day in a C course, or even a C++ course that
                  wasn't based on the library; but it becomes well within an average student's
                  grasp after one classroom day using Accelerated C++'s approach.


                  Comment

                  • Andrew Koenig

                    #10
                    Re: Disappointed by &quot;Accelerat ed C++&quot;

                    "Kai-Uwe Bux" <jkherciueh@gmx .netwrote in message
                    news:fhu7lu$q46 $1@murdoch.acc. Virginia.EDU...
                    The claim that is hard to believe is that the students learned "how to
                    write
                    substantial programs on the first day in the classroom". That claim also
                    is
                    very hard to evaluate unless the students actually did write substantial
                    programs (e.g., as an exercise) before the second day of class (which in a
                    one-week course would presumably be the next day). As "substantia l" is a
                    little vague, I would be very interested to learn what program(s) you had
                    the students write before the second day of class that you consider
                    substantial. That would help to put the publishers blurb in perspective.
                    Here is the first day's homework assignment for the Stanford course. Note
                    that we did not expect every student to answer every question, but we were
                    always pleased with how far they got.

                    -----------------------------------------------------------------------------------------------

                    1. Write a program to count the number of words in an input file.

                    2. Extend that program to count the number of occurrences of each word.

                    3. Ensure that the output to problem #2 is sorted by the number of
                    occurrences. That is, print all words that occur once, followed by those
                    that occur twice etc.

                    4. Write a program to read a collection of numbers from the standard input
                    and the compute and print their median.

                    5. Given a file of student names and exam scores (formatted as described
                    below), compute the student's final grade. The input will be records such
                    as:

                    Smith 87 92 93 60 0 98 75 90
                    Carpenter 47 90 92 73 100 87 93 91
                    ...

                    (Name, grades on six homework assignments, midterm, final)

                    The program should calculate the final grade as a weighted sum: The median
                    homework grade counts 40%, the final 40% and the midterm 20%.

                    So, for the input above, the output would be

                    Smith 86.8
                    Carpenter 90.4
                    ...

                    NOTE: the decimal points should all line up.

                    6. Extend the previous assignment to print a histogram of grades by ranges:

                    A 90- 100
                    B 80- 89.99...
                    C 70- 79.99...
                    F <70

                    The output should list how many students fall into each category.

                    7. Design and implement a program to produce a permuted index. A permuted
                    index is one in which each phrase is indexed by every word in the phrase:
                    So, given the following input

                    The quick brown fox
                    jumped over the fence

                    the output would be

                    The quick brown fox
                    jumped over the fence
                    The quick brown fox
                    jumped over the fence
                    jumped over the fence
                    The quick brown fox
                    jumped over the fence
                    The quick brown fox

                    (Note to Usenet readers: You need to use a constant-width font to read the
                    table above properly.)

                    A good algorithm is suggested in The AWK Programming Language by Aho,
                    Kernighan and Weinberger. That solution divides the problem into three
                    steps:

                    1. Read each line of the input and generate a set of rotations of that line.
                    Each rotation puts the next word of the input in the first position and
                    rotates the previous first word to the end of the phrase. So the output of
                    this phase for the first line of our input above would be:

                    The quick brown fox
                    quick brown fox The
                    brown fox The quick
                    fox The quick brown

                    Of course, it will be important to know where the original phrase ends and
                    where the rotated beginning begins.

                    2. Sort the rotations.

                    3. Unrotate and print the permuted index, which involves finding the
                    separator, putting the phrase back together and printing it properly
                    formatted.


                    Comment

                    • Michael Bell

                      #11
                      Re: Disappointed by &quot;Accelerat ed C++&quot;

                      In message <9mD0j.120094$k j1.8392@bgtnsc0 4-news.ops.worldn et.att.net>
                      "Andrew Koenig" <ark@acm.orgwro te:
                      "Kai-Uwe Bux" <jkherciueh@gmx .netwrote in message
                      news:fhu7lu$q46 $1@murdoch.acc. Virginia.EDU...
                      >The claim that is hard to believe is that the students learned "how to
                      >write
                      >substantial programs on the first day in the classroom". That claim also
                      >is
                      >very hard to evaluate unless the students actually did write substantial
                      >programs (e.g., as an exercise) before the second day of class (which in a
                      >one-week course would presumably be the next day). As "substantia l" is a
                      >little vague, I would be very interested to learn what program(s) you had
                      >the students write before the second day of class that you consider
                      >substantial. That would help to put the publishers blurb in perspective.
                      Here is the first day's homework assignment for the Stanford course. Note
                      that we did not expect every student to answer every question, but we were
                      always pleased with how far they got.
                      ----------------------------------------------------------------------
                      -------------------------
                      1. Write a program to count the number of words in an input file.
                      2. Extend that program to count the number of occurrences of each word.
                      3. Ensure that the output to problem #2 is sorted by the number of
                      occurrences. That is, print all words that occur once, followed by those
                      that occur twice etc.
                      4. Write a program to read a collection of numbers from the standard input
                      and the compute and print their median.
                      5. Given a file of student names and exam scores (formatted as described
                      below), compute the student's final grade. The input will be records such
                      as:
                      Smith 87 92 93 60 0 98 75 90
                      Carpenter 47 90 92 73 100 87 93 91
                      ...
                      (Name, grades on six homework assignments, midterm, final)
                      The program should calculate the final grade as a weighted sum: The median
                      homework grade counts 40%, the final 40% and the midterm 20%.
                      So, for the input above, the output would be
                      Smith 86.8
                      Carpenter 90.4
                      ...
                      NOTE: the decimal points should all line up.
                      6. Extend the previous assignment to print a histogram of grades by ranges:
                      A 90- 100
                      B 80- 89.99...
                      C 70- 79.99...
                      F <70
                      The output should list how many students fall into each category.
                      7. Design and implement a program to produce a permuted index. A permuted
                      index is one in which each phrase is indexed by every word in the phrase:
                      So, given the following input
                      The quick brown fox
                      jumped over the fence
                      the output would be
                      The quick brown fox
                      jumped over the fence
                      The quick brown fox
                      jumped over the fence
                      jumped over the fence
                      The quick brown fox
                      jumped over the fence
                      The quick brown fox
                      (Note to Usenet readers: You need to use a constant-width font to read the
                      table above properly.)
                      A good algorithm is suggested in The AWK Programming Language by Aho,
                      Kernighan and Weinberger. That solution divides the problem into three
                      steps:
                      1. Read each line of the input and generate a set of rotations of that line.
                      Each rotation puts the next word of the input in the first position and
                      rotates the previous first word to the end of the phrase. So the output of
                      this phase for the first line of our input above would be:
                      The quick brown fox
                      quick brown fox The
                      brown fox The quick
                      fox The quick brown
                      Of course, it will be important to know where the original phrase ends and
                      where the rotated beginning begins.
                      2. Sort the rotations.
                      3. Unrotate and print the permuted index, which involves finding the
                      separator, putting the phrase back together and printing it properly
                      formatted.
                      I've got admit that the answers these questions are "substantia l
                      programs". I've done a lot more than one day and it would take me some
                      effort to do these, but you must have given them quite an idea of how
                      to go about it. That's teaching. There is nothing like this in the
                      book. And I suppose Stanford students are usually quite bright.

                      Michael Bell


                      --

                      Comment

                      • Andrew Koenig

                        #12
                        Re: Disappointed by &quot;Accelerat ed C++&quot;

                        "Alf P. Steinbach" <alfps@start.no wrote in message
                        news:13k644hfs2 g0re6@corp.supe rnews.com...
                        >7. Design and implement a program to produce a permuted index. A permuted
                        >index is one in which each phrase is indexed by every word in the phrase:
                        >So, given the following input
                        > The quick brown fox
                        > jumped over the fence
                        Hm, this is obviously incorrect: it must always be "the lazy dog", not
                        "the fence", if you're going to hit all letters on an English keyboard.
                        Of course -- but that wasn't the purpose.


                        Comment

                        • Andrew Koenig

                          #13
                          Re: Disappointed by &quot;Accelerat ed C++&quot;

                          "Michael Bell" <michael@beaver bell.co.ukwrote in message
                          news:f78ada444f .michaelbell@mi chael.beaverbel l.co.uk...
                          I've got admit that the answers these questions are "substantia l
                          programs". I've done a lot more than one day and it would take me some
                          effort to do these, but you must have given them quite an idea of how
                          to go about it. That's teaching. There is nothing like this in the
                          book. And I suppose Stanford students are usually quite bright.
                          Actually, several of these exercises *are* in the book. See, for example,
                          exercise 5-1.

                          Also note that a "day" here was four hours of classroom time, not the
                          typical hour or hour and a half that you find in courses that stretch out
                          over a whole semester. After all, we covered almost all of the material in
                          the book in a single week.

                          Also, we were in the lab to help when students had questions.

                          On the other hand, although I will say that the students were quite bright
                          on average, most of them were not Stanford students. They came from all
                          over.


                          Comment

                          • pauldepstein@att.net

                            #14
                            Re: Disappointed by &quot;Accelerat ed C++&quot;

                            On Nov 20, 11:37 pm, "Andrew Koenig" <a...@acm.orgwr ote:
                            <pauldepst...@a tt.netwrote in message
                            >
                            news:8e96b548-69fa-4760-afa4-b9152bdb1ba6@s3 6g2000prg.googl egroups.com...
                            >
                            Perhaps the disagreement between the OP and the author is largely
                            based on the vague word -- "substantia l". If a "substantia l" program
                            is an elegantly designed user-friendly program to present all
                            solutions when a user inputs a quartic equation, then I'm sure Andrew
                            Koenig would agree that under _that_ definition of "substantia l", his
                            book would not magically enable someone to write a "substantia l"
                            program on their first day. However, if "substantia l" means to solve
                            a problem that would be practically unsolvable using an average hand
                            calculator, then I'm sure the OP would agree that's not an
                            unreasonable claim.
                            >
                            How about a program to produce a concordance of a text file? In other
                            words: Read a file and produce a table of every distinct word in the file,
                            along with how many times it appears. That's a program that would be far
                            too hard to write after one day in a C course, or even a C++ course that
                            wasn't based on the library; but it becomes well within an average student's
                            grasp after one classroom day using Accelerated C++'s approach.
                            Well that example exactly proves my point. This program is
                            "substantia l" in some contexts, but not in others.

                            Paul Epstein

                            Comment

                            • Michael Bell

                              #15
                              Re: Disappointed by &quot;Accelerat ed C++&quot;

                              In message <HDH0j.121635$k j1.74798@bgtnsc 04-news.ops.worldn et.att.net>
                              "Andrew Koenig" <ark@acm.orgwro te:
                              "Michael Bell" <michael@beaver bell.co.ukwrote in message
                              news:f78ada444f .michaelbell@mi chael.beaverbel l.co.uk...
                              >I've got admit that the answers these questions are "substantia l
                              >programs". I've done a lot more than one day and it would take me some
                              >effort to do these, but you must have given them quite an idea of how
                              >to go about it. That's teaching. There is nothing like this in the
                              >book. And I suppose Stanford students are usually quite bright.
                              Actually, several of these exercises *are* in the book. See, for example,
                              exercise 5-1.
                              Also note that a "day" here was four hours of classroom time, not the
                              typical hour or hour and a half that you find in courses that stretch out
                              over a whole semester. After all, we covered almost all of the material in
                              the book in a single week.
                              Also, we were in the lab to help when students had questions.
                              On the other hand, although I will say that the students were quite bright
                              on average, most of them were not Stanford students. They came from all
                              over.

                              The cover of the book says that the most useful features of the
                              language are taught first, rather than the most primitive, and says
                              that this method is very successful, but this is not how the book goes
                              about it. Why?

                              Michael Bell

                              --

                              Comment

                              Working...