2
$\begingroup$

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.

$\endgroup$
5
  • $\begingroup$ 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. $\endgroup$ Sep 1 '20 at 15:31
  • $\begingroup$ Do you need to project "seriousness" or can it also be a bit of fun, though excellent, and complete? $\endgroup$
    – Buffy
    Sep 1 '20 at 15:48
  • 1
    $\begingroup$ @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. $\endgroup$ Sep 1 '20 at 17:16
  • $\begingroup$ 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. $\endgroup$
    – Ben I.
    Sep 2 '20 at 15:00
  • $\begingroup$ @BenI. Thanks. I guess that's Introduction to Java Programming and Data Structures by Y. Daniel Liang. $\endgroup$ Sep 2 '20 at 15:46
3
$\begingroup$

My suggestion is "Object Oriented Programming in Python" by Goldwasser & Letscher https://cs.slu.edu/~goldwamh/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.

$\endgroup$
1
$\begingroup$

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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.