Answers.Body: <p>I can remember when I first read an early book about C++, and (knowing C) I wondered: &quot;What is this all about? Just a more complicated way of doing things?&quot;</p>
  <p>Years later I read the early C++ language specification (with much more stuff added), and I learned a lot of things to do,</p>
  <p>ELLIS, Margaret A. und Bjarne STROUSTRUP, 1990. The annotated C++ Reference Manual. 1. Murray Hill, New Jersey, U.S.A.: Addison-Wesley Publishing Company. ISBN 0-201-51459-1</p>
  <p><strong>but</strong> I really had no idea what OOP is really about until I had read (German):</p>
  <p>MEYER, Bertrand, 1990. Objektorientierte Softwareentwicklung. München Wien: Prentice-Hall International Inc. ISBN 3-446-15773-5</p>
  <p>and later (2nd edition):</p>
  <p>MEYER, Bertrand, 1997. Object-Oriented Software Construction. 2. Upper Saddle River, NJ 07458, U.S.A.: Prentice-Hall, Inc. ISBN 0-13-629155-4</p>
  <p>Also nice:</p>
  <p>MEYER, Bertrand, 1994. Reusable Software. 1. Hemel Hempstead, Hertfordshire, U.K.: Prentice-Hall International (UK) Ltd. Prentice Hall Object-Oriented Series. ISBN 0-13-245499-8202</p>
  <p>In summary: You can do quite a lot of things with OO languages, but many things are <em>not</em> OOP.</p>
  <p>Of course Eiffel is somewhat exotic.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-11-24T22:57:29.257Z
Answers.LastActivityDate: 2021-11-24T22:57:29.257Z
Answers.UserDisplayName: U. Windl
Answers.Body: <p>My suggestion is &quot;Object Oriented Programming in Python&quot; by Goldwasser &amp; Letscher
  <a href="https://cs.slu.edu/%7Egoldwamh/oopp/" rel="nofollow noreferrer">https://cs.slu.edu/~goldwamh/oopp/</a>
  It's a free PDF download, or you can buy a paper copy.
  They have a companion graphics module that is simple to understand for rudimentary GUI applications.
  Hope this helps.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-09-07T00:35:52.803Z
Answers.LastActivityDate: 2020-09-07T00:35:52.803Z
Answers.UserDisplayName: Louis B.
Body: <p>I'm looking for a text for a course in object oriented programming.  Most of the students will have done some programming courses in the past, but the background of the students is varied so the purpose of this course is to ensure that they are all well grounded in basic programming and object-oriented ideas such as abstraction, design by contract, polymorphic code, generic code, etc.  The language of the course is probably Java, but could also be Python.</p>
  <p>I had suggested Barbara Liskov's textbook, <em>Program Development in Java: Abstraction, Specification, and Object-Oriented Design</em>.  But unfortunately it is out of print.  (Although still available as an e-book.)</p>
  <hr />
  <p>This is graduate level for a professional masters in computer engineering. However the educational background of the students is quite varied and some are, quite frankly, not competent at programming when they arrive. Hence this fairly low-level course.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-09-01T15:31:03.610Z
Comments.Text: I should have said this is graduate level for a professional masters in computer engineering.  However the educational background of the students is quite varied and some are, quite frankly, not competent at programming when they arrive.  Hence this fairly low-level course.
Comments.UserDisplayName: Theodore Norvell
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-09-01T15:48:05.100Z
Comments.Text: Do you need to project "seriousness" or can it also be a bit of fun, though excellent, and complete?
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-09-01T17:16:55.957Z
Comments.Text: @Buffy I am not against fun.  I do find that some books try too hard to be fun and end up with silly examples that don't give insight into how an idea might be applied in situations that are likely to come up in the real world.
Comments.UserDisplayName: Theodore Norvell
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-09-02T15:00:42.370Z
Comments.Text: For all of the years I've taught OO, I've never used a textbook as a primary resource.  I think *Liang* has a pretty good one, but I am locked out of my institution (where my books are), so I can't check whether it has good (any?) exercises.  Hence, my hesitation to create an answer.
Comments.UserDisplayName: Ben I.
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-09-02T15:46:27.437Z
Comments.Text: @BenI. Thanks.  I guess that's Introduction to Java Programming and Data Structures by Y. Daniel Liang.
Comments.UserDisplayName: Theodore Norvell
Tags: <resource-request><object-oriented-paradigm>
Title: Looking for a text book on object-oriented concepts and programming
ThreadText: # Looking for a text book on object-oriented concepts and programming
  
  (Asked by: username_0 on 2020-09-01)
  
  I'm looking for a text for a course in object oriented programming. Most of the students will have done some programming courses in the past, but the background of the students is varied so the purpose of this course is to ensure that they are all well grounded in basic programming and object-oriented ideas such as abstraction, design by contract, polymorphic code, generic code, etc. The language of the course is probably Java, but could also be Python.
  
  I had suggested Barbara Liskov's textbook, *Program Development in Java: Abstraction, Specification, and Object-Oriented Design*. But unfortunately it is out of print. (Although still available as an e-book.)
  
  ---
  
  This is graduate level for a professional masters in computer engineering. However the educational background of the students is quite varied and some are, quite frankly, not competent at programming when they arrive. Hence this fairly low-level course.
  
  **Tags:** resource-request, object-oriented-paradigm
  
  > **Comments:**
  > **username_0**: I should have said this is graduate level for a professional masters in computer engineering.  However the educational background of the students is quite varied and some are, quite frankly, not competent at programming when they arrive.  Hence this fairly low-level course.  
  > **username_1**: Do you need to project "seriousness" or can it also be a bit of fun, though excellent, and complete?  
  > **username_0**: @username_1 I am not against fun.  I do find that some books try too hard to be fun and end up with silly examples that don't give insight into how an idea might be applied in situations that are likely to come up in the real world.  
  > **username_2**: For all of the years I've taught OO, I've never used a textbook as a primary resource.  I think *Liang* has a pretty good one, but I am locked out of my institution (where my books are), so I can't check whether it has good (any?) exercises.  Hence, my hesitation to create an answer.  
  > **username_0**: @BenI. Thanks.  I guess that's Introduction to Java Programming and Data Structures by Y. Daniel Liang.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_4 on 2020-09-07. Score: 3 | Accepted answer
  
  My suggestion is "Object Oriented Programming in Python" by Goldwasser & Letscher
  [https://cs.slu.edu/~goldwamh/oopp/](https://cs.slu.edu/%7Egoldwamh/oopp/)
  It's a free PDF download, or you can buy a paper copy.
  They have a companion graphics module that is simple to understand for rudimentary GUI applications.
  Hope this helps.
  
  
  ---
  
  ### Answer by username_3 on 2021-11-24. Score: 1
  
  I can remember when I first read an early book about C++, and (knowing C) I wondered: "What is this all about? Just a more complicated way of doing things?"
  
  Years later I read the early C++ language specification (with much more stuff added), and I learned a lot of things to do,
  
  ELLIS, Margaret A. und Bjarne STROUSTRUP, 1990. The annotated C++ Reference Manual. 1. Murray Hill, New Jersey, U.S.A.: Addison-Wesley Publishing Company. ISBN 0-201-51459-1
  
  **but** I really had no idea what OOP is really about until I had read (German):
  
  MEYER, Bertrand, 1990. Objektorientierte Softwareentwicklung. München Wien: Prentice-Hall International Inc. ISBN 3-446-15773-5
  
  and later (2nd edition):
  
  MEYER, Bertrand, 1997. Object-Oriented Software Construction. 2. Upper Saddle River, NJ 07458, U.S.A.: Prentice-Hall, Inc. ISBN 0-13-629155-4
  
  Also nice:
  
  MEYER, Bertrand, 1994. Reusable Software. 1. Hemel Hempstead, Hertfordshire, U.K.: Prentice-Hall International (UK) Ltd. Prentice Hall Object-Oriented Series. ISBN 0-13-245499-8202
  
  In summary: You can do quite a lot of things with OO languages, but many things are *not* OOP.
  
  Of course Eiffel is somewhat exotic.
  
  
  ---
  
  