Because students coming into this class have diverse backgrounds in programming languages and operating systems, yet will need to use C and UNIX effectively, I am working to accumulate some C and UNIX resources for those with backgrounds in Java or other languages or with Windows, Mac, or other operating systems.
Here are some of those:
C and Unix: Tools for Software Design, Martin L. Barrett and Clifford H. Wagner, 1996, John Wiley & Sons, Inc. (ISBN 0-471-30927-3)
Assumes programming experience but not C or UNIX experience. Brings them both together for you. Probably around $60.
C by Dissection: The Essentials of C Programming Fourth Edition, Al Kelley and Ira Pohl, 2001, Addison-Wesley. (ISBN 0-201-71374-8)
According to the publisher, "The book assumes no programming background and can be used by first time computer users or by experienced programmers who are transitioning to C." Should be about $60.
According to the student at the University of Minnesota who suggested this book, "I have the second edition, but there is most likely a new one out. That book is quite possible the best C book I've ever read. It does a better job of balancing beginning and intermediate topic than the book I was forced to buy for the University C class! It is heavy on examples and expects people to read code (although the code is explained line by line). Perhaps it is a little on the dense side for some who do not have practice with any language other than scheme, but I think it is very good if you already know Java!"
The C Programming Language, 2nd Edition, Brian W. Kernighan & Dennis M. Ritchie, 1988, Prentice Hall. (ISBN 0-13-110362-8)
This is the classic book on the C language. It is not a book on how to program, it is a book for people who already know how to program but who want a concise and accurate reference to C. It is an essential reference book for anyone who wants (or needs) to do a lot of C programming. Should be around $40.
C for JAVA Programmers, Tomasz Mueldner, 2000, Addison Wesley. (ISBN 0-201-70279-7)
As the name implies, this is a book specialized for those who want to learn C and know JAVA already. Should be around $40.
Learning the UNIX Operating System, 4th Edition, Jerry Peek, Grace Todino & John Strang, 1997, O'Reilly & Associates. (ISBN 1-56592-390-1)
This is a brief (100 page) intro to UNIX that should get you started for $15.
UNIX in a Nutshell, System V Edition, 3rd Edition, Arnold Robbins, 1999, O'Reilly & Associates. (ISBN 1-56592-427-4)
This is a more complete book (600 pages) but may be overkill for a complete novice. Should be about $30.
Addison-Wesley's Interactive UNIX Tutorial and Reference, Edutrends, 2001, Addison Wesley. (ISBN 0-201-70389-0)
This is a book (300 pages) and CD-ROM (for Windows) combination, for those who want to learn UNIX using exercises. There is also a Linux version of this book. Each should be about $40.
Your UNIX: The Ultimate Guide, Sumitabha Das, 2001, McGraw Hill. (ISBN 0-07-240500-7)
This is a big book (900 pages) that is intended to teach you all about UNIX (and Linux). Should be around $65.
UNIX for Programmers and Users, 2nd Edition, Graham Glass & King Ables, 1999. (ISBN 0-13-681685-1)
Another rather large book (600 pages) to introduce you to UNIX. Should be around $50.
Practical UNIX Programming: A Guide to Concurrency, Communication, and Multithreading, Kay A Robbins & Steven Robbins, 1996, Prentice Hall. (ISBN 0-13-443706-3)
This book, like this class, is for people who know how to use UNIX and program in C. It builds from there to cover many of the same topics we are covering in this class. As such, it can be used as an alternative or additional textbook on both the why's and the how's of these topics. Should be around $70.
UNIX Systems Programming for SVR4, David A. Curry, 1996, O'Reilly & Associates. (ISBN 1-56592-163-1)
Like the systems programming text listed in the syllabus, this somewhat larger book (600 pages) tells you about the details of how to do systems programming, and is a good alternative or supplement to that book. It is intended for those who already know both C and UNIX. May be out of print.
Advanced Programming in the UNIX Environment, W. Richard Stevens, 1992, Addison Wesley. (ISBN 0201563177)
As above but even larger (750 pages). Should be around $65.
If you have your own suggestions for good C and/or UNIX books (or websites) to get your classmates going, you can email them to me and I'll add them to this list.