Showing posts with label beginning. Show all posts
Showing posts with label beginning. Show all posts

Python Programming: An Introduction to Computer Science Review

Python Programming: An Introduction to Computer Science
Average Reviews:

(More customer reviews)
I just wrapped up teaching a semester CS1 course using Zelle's book. I hope I never have to use another book besides this, because this text is simply fantastic.
This was the third version of CS1 I've taught, and the first using Python instead of C. The use of Python definitely contributed to the smashing success of this class (as did an exceptionally strong group of students), but much of the credit must go to this book.
Honestly, Zelle just nailed it. The examples are illustrative and convincing: his is one of the few books that manages to avoid the trap of silly and unreal examples that therefore provide no context for a student. His writing is crystal clear and very well organized, replete with very helpful diagrams and illustrative examples (did I mention the examples?), and he has obviously paid a lot of attention to the aspects of programming that students find most difficult.
And the exercises: wow. This is the first time I haven't felt the need to write my own (although I did anyway, because it's fun). They are fair but challenging (sometimes very), and for those of us on the teaching end, you'll be happy to know that the instructor's resources come with _complete_ sets of working solutions to all of the exercises.
Three chapters stand out in particular. First is the chapter on graphics (Ch. 5). Students love graphics, and Zelle has included a very nice wrapper on top of the TKinter library, which makes for a GUI package that students can actually use. Second, there's the final chapter that actually introduces recursion and some of the interesting algorithms from the science (searching/sorting, permutations, etc.). I had a lot of fun demonstrating the difference between sorting /usr/share/dict/words with insertion sort (about 6 days) and merge sort (about 6 seconds).
But possibly the best chapter is one I almost skipped: the chapter on software development, which is centered around a case study development of a "racquetball" simulation. At the last minute, I decided to use this chapter as the jumping off point for integrating the ideas we'd seen up to mid-term into real software development. I am convinced that this made the class.
Now there are a couple of things you might want to add as an instructor: The main one is the fact that Python is such a high-level language, with so much hand-holding built in, that I'm worried that students going on to later CS classes in other languages could get a nasty surprise. I finished up my class with a primer on languages with static type systems, in which you don't have wonderful Pythony things like string/list slicing, built-in hashtables, etc. In a second edition of this book, I'd like to see another chapter on this.
Second is a very small quibble, and really just boils down to a difference with Zelle about the order in which I like to teach this material. I ended up using every chapter in the book, but in the order 2,3,4,7,8,6,9,11,5,10,12,13. As yet another thing I love about this book, the chapters are independent enough from each other, that I was able to do this with only careful selection of the sections. Actually the book lends itself very well to alternative orderings.
In short, I simply have nothing bad to say about this book, and lots of good. Zelle hit this one out of the park. Everybody should be using it.

Click Here to see more reviews about: Python Programming: An Introduction to Computer Science

This book is designed to be used as the primary textbook in a college-level first course in computing. It takes a fairly traditional approach, emphasizing problem solving, design, and programming as the core skills of computer science. However, these ideas are illustrated using a non-traditional language, namely Python.Although I use Python as the language, teaching Python is not the main point of this book. Rather, Python is used to illustrate fundamental principles of design and programming that apply in any language or computing environment. In some places, I have purposely avoided certain Python features and idioms that are not generally found in other languages. There are already many good books about Python on the market; this book is intended as an introduction to computing. Features include the following:*Extensive use of computer graphics.*Interesting examples.*Readable prose.*Flexible spiral coverage.*Just-in-time object coverage.*Extensive end-of-chapter problems.

Buy Now

Click here for more information about Python Programming: An Introduction to Computer Science

Read More...

Processing: Creative Coding and Computational Art (Foundation) Review

Processing: Creative Coding and Computational Art (Foundation)
Average Reviews:

(More customer reviews)
This is a very good book on the Processing language, which is an object-oriented languaged based on Java that is used for computer art. It allows computer artists to produce attractive computer-generated art without having to become experts on the Java language, Java3D, Java2D, and all of the other associated Java multimedia APIs. The Processing language's home page has considerable tutorial information, but it is not organized in a tutorial format as this book is. The book starts out in the first few chapters talking about "code art" including a brief mention of various "code artists". It then goes on to talk about the origin and basics of the Processing language. Chapter 5 is the most helpful of the chapters in part one, since it discusses the actual environment of working with the Processing language including the various programming modes and rendering modes.
Part two is very practical and useful, as it illustrates how to actually draw shapes, work with various color and imaging styles, and even includes chapters on building interactive art, programming motion, and working in 3D. There is also a short chapter on object-oriented programming in the middle of this section, but it is rather brief and if you are unfamiliar with the topic you are going to need outside sources. The format of the chapters in part two is to discuss what you are trying to accomplish, show and discuss the Processing code for performing the task, and show an illustration of what your final piece of computer art should look like.
Part three is a reference on the Processing language itself that also includes an appendix consisting of various mathematics equations you will need when working with geometric figures. If you already know Java, as I do, this book makes learning the Processing language a breeze. If you don't already know Java or at least programming in an object-oriented language, this book might be more difficult. Note that there is an extra appendix and an extra chapter available online that is not in the printed book itself. These chapters are "3D Rendering in Java Mode" and "Integrating Processing within Java".

Click Here to see more reviews about: Processing: Creative Coding and Computational Art (Foundation)


If you're interested in creating cutting-edge code-based art and animations, you've come to the right place! Processing (available at www.processing.org) is a revolutionary open source programming language and environment designed to bridge the gap between programming and art, allowing non-programmers to learn programming fundamentals as easily as possible, and empowering anyone to produce beautiful creations using math patterns. With the software freely available, Processing provides an accessible alternative to using Flash for creative coding and computational artboth on and off the Web.

This book is written especially for artists, designers, and other creative professionals and students exploring code art, graphics programming, and computational aesthetics. The book provides a solid and comprehensive foundation in programming, including object-oriented principles, and introduces you to the easy-to-grasp Processing language, so no previous coding experience is necessary. The book then goes through using Processing to code lines, curves, shapes, and motion, continuing to the point where you'll have mastered Processing and can really start to unleash your creativity with realistic physics, interactivity, and 3D! In the final chapter, you'll even learn how to extend your Processing skills by working directly with the powerful Java programming languagethe language Processing itself is built with.


Buy Now

Click here for more information about Processing: Creative Coding and Computational Art (Foundation)

Read More...