CS102 Summer 2012-Class of 2016


Update: 07/02/2012

  1. Look your best on the SECOND DAY :-)
    We will be taking your Identification Photos for your Cooper Union student id card during the second class: Tuesday, July 10th.
     Please come in with your best look as this "headshot" will haunt you for four years :-)
  2. Whoops on the dates:  Apparently Monday, July 30rd and Tuesday July 31st, were left off the schedule.
    We will hold class on these dates too.  If you have booked a vacation or have some other commitment, please see me.
  3. Problem with Michael Dawson link.  I made an error and the link for Dawson's ISBN  referred to Mark Pilgrim's ISBN.
    Just to be clear, the Michael Dawson book is :

    Python Programming for the Absolute Beginner, 3rd Edition


Please check back for more information.  This can be made easier by signing up to follow my twitter feed, "cooperadvice":

We will be using three books:   K&R, Dawson and Pilgrim.

is a classic and surprisingly elderly book:

              The C Programming Language,
               Brian W. Kernighan, Dennis M. Ritchie, (Prentice Hall, 2nd edition)
               ISBN-10: 0131103628 
Please also check out the errata for corrections to the text.

The text is available in many libraries and has been well translated into most human languages.

Multiple other good sources for learning the C language are out there. An excellent book, with a funny name, is C for DummiesOther references, including many excellent tutorials and examinations of the problems and samples in K&R, are online.
You are encouraged to let me know about which ones do and do not help you.

Avoid like the plague  Herbert Schildt's C: The Complete Reference. Why? 

A good tutorial might present simplifications, but would identify them as such and correct them later, rather than presenting them as the real and whole truth. Furthermore, as revealed in the in-depth look, the book is a very poor tutorial, frequently omitting key points or concepts.


I wish the examples above had been more carefully cherry-picked than they were, but really, the examples here appear to be pretty representative. The "pick a page" section consists of things obtained by flipping the book to a random page. I did, once, flip to a random page and not find any errors. Yes, exactly once. The whole book is like this. The explanatory material is garbage. The explanations of some concepts are exceptionally bad, and it seems very clear that Schildt simply does not understand the material. This isn't just typos; this is genuine failure to understand what's going on.

14 years ago, I wrote this summary:

C: The Complete Reference is a popular programming book, marred only by the fact that it is largely tripe. Herbert Schildt has a knack for clear, readable text, describing a language subtly but quite definitely different from C.

With fourteen years' more experience, including most of a decade of active participation in C standardization, thousands of lines of code written, and a few years of work as a professional writer, I still stand by the evaluation of the book. I do not so much stand by the claim that Schildt's writing is "clear"; readable, yes, clear, not so much. The article itself was not particularly well-written, but the ultimate analysis of Schildt's writing was spot-on. If anything, I know enough more to spot a lot more of the subtle ways in which his sample programs are likely to screw over any poor fool who tries to learn to program from his books.

[...More constructive criticism by  Peter Seebach (or just google Seebs)  ...]

Dawson is a newer book and a very easy read.


Python Programming for the Absolute Beginner, 3rd Edition

Michael Dawson, Third Edition.
Publication Date: January 1, 2010
ISBN-10: . 1435455002
ISBN-13: 978-1435455009 

Think of this as "Fun with Python" :-)

Pilgrim is an in-depth look at Python 3's many features

Happy Day! The author, Mark Pilgrim, has revised and updated his text so we using http://diveintopython3.org!
But wait, Mark Pilgrim decided to pull the http://www.diveintopython3.org/ from the Internet!

Happily, since the book was written with a  Creative Commons Attribution Share-Alike license, clones of the website were quickly established like:

as well as the "source code" to the book/website at https://github.com/diveintomark/diveintopython3 .
You could also print out all 495 and the Front Matter and Back Matter and the covers too :-)

There are many ways to get the book.  All are available in dead trees, and there are electronic forms of each.
You can also borrow the book , Find it via Google Book Search, or just do a Google Search for it like: