Slashdot Mirror


Think Python

An anonymous reader writes "In a neverending effort to spread the word about free quality online programming books, here is a Python programming book. 'How to Think Like a Computer Scientist: Learning With Python', by Allen B. Downey, Chris Meyers, and Jeffrey Elkner is a copylefted work available in multiple formats at Green Tea Press: HTML , PDF, LaTeX. Compliments of the online books what's new page."

3 of 200 comments (clear)

  1. Thanks to Online Books by Taco+Cowboy · · Score: 5, Interesting



    Thanks to Copylefted Online Books, I now can read the books before I buy.

    On my bookshelf, seven of the books were bought after I read their online version.

    I live in a third world country where there is no Towers bookstore, nor Borders, nor Barnes - there is NO WAY for you to know how good a book is without first buying the book - the bookstore here do NOT allow you to read the book !

    The idea of Copylefted books really help me, and many others who are in the situation of buying books not knowing if the books are good or not.

    Thanks again !

    --
    Muchas Gracias, Señor Edward Snowden !
  2. How about how to think like a Software Engineer? by hacksoncode · · Score: 5, Insightful
    I should probably quit whining and write my own copyleft book, but I skimmed through this book, and I'm not all that impressed.

    This book doesn't strike me as a book on how to think like a Computer Scientist, except insofar as Computer Scientists generally make lousy Software Engineers. There are no descriptions of the advantages of object oriented programming, discussions of theoretical topics, and in general very little encouragement to view programming as a science. Basically, this appears to be just a book on the Python language, written for someone who has never programmed before. That's a fine thing, don't get me wrong. My brief look even makes me think it could be an effective example of such a book. At the very least, I think it's hyped wrong.

    However, from a software engineering point of view, I find it damning that the book forgoes any explanation of the practice of, or motivation for, writing maintainable code. I consider that unforgivable in a beginning programming book. You absolutely have to impress on newbies early the importance of documentation, sensible structure, logical variable naming, good class hierarchy, etc.

    I consider this especially true for Python, which is an interpreted non-declarative language (making maintainabilty all that more important). Python is, conversely, also especially well designed as a platform where such concepts could be taught. It largely overcomes the occasional weaknesses of its design philosophy by consciously including language features such as built in support for docstrings, well crafted namespaces, modules as first-class citizens, etc.

    Yet, these language features are barely given a nod in this book.

    It's books for existing programmers that can afford to skimp on these areas.

  3. Re:Pointers required by cheezedawg · · Score: 5, Insightful

    I think it's rather silly to teach Computer Science with a specific programming language at all. Computer Science is not about teaching people how to program.

    To me, Computer Science is a very cool blend of:
    - Discrete mathematics
    - Computation theory
    - Linguistics
    - Complexity theory
    - Logic
    - Probability

    None of these rely on programming at all, let alone a specific language or whether that language has pointers or not. Programming is only an application of Computer Science.

    You gave example of an AI class- to me, the core of AI is learning about first-order logic and predicate calculus, searching and graph traversal heuristics, reasoning, and natural language processing. I know this list isn't complete, but the point is that these concepts are for the most part independent of programming. Sure, you can start off by teaching somebody a specific implementation in Lisp or Prolog, but then they only know program AI in Lisp instead of how to apply AI concepts in any setting.

    --
    "The defense of freedom requires the advance of freedom" - George W Bush