Text books that I like and/or use (updated 2019)
These text book notes extend back into the previous century so note the tags legacy (watch the date) and classic (probably still good). The notes are the result of teaching full time at RMIT (Computer Systems) and ADFA (EE) in the 1990s, and then at JCU (IT) until 2008 after which I have taken a few contracts for teaching in electrical engineering.
- Computer Architecture
- John L. Hennessy & David A. Patterson, "Computer Architecture : A Quantitative Approach", 6th edition, Morgan Kaufmann Publishers Inc., 2017. ISBN-13: 978-0128119051. --This is a really good book. I used previous editions successfully for masters level engineering subjects at RMIT (DS466/DS740) and consider it a classic.
- David A. Patterson & John L. Hennessy, "Computer Organisation & Design : The Hardware / Software Interface", 4th edition 2008, Morgan Kaufmann Publishers Inc. ISBN-13: 978-0123744937. --This text is very good, and I used previous editions in introductory Computer Science teaching at JCU.
- Andrew Tanenbaum, "Structured Computer Organisation", 4th edition, Prentice-Hall 1999. ISBN 0-13-020435-8. Also 6th edition, Pearson 2012. ISBN-13: 978-0132916523. --This text is very good and I used the 4th edition at RMIT and JCU.
- Kevin Skahill, "VHDL for Programmable Logic", Addison-Wesley Publishing (and Cypress Semiconductor), 1996. ISBN: 0-201-89586-2. --This is a good first text on VHDL.
- Innovative Design and Software Engineering
- Craig Larman, "APPLYING UML AND PATTERNS - An Introduction to Object-Oriented Analysis and Design and the Unified Process", Prentice Hall, 2nd edition 2002 and 3rd edition 2004. ISBN 0-13-148906-2. This book is seriously good, and very interesting from a more general designer's point of view. I used it in JCU CP3120 to teach software object design. I particularly like the mental experiment to detect when classes are too big to retain a clear theme and too complex in themselves to maintain, or too small such that interconnections and interdependencies make complexity an issue, or the sweet spot somewhere in between...
- Tom Kelley, "The Art of Innovation: Lessons in Creativity from IDEO, America's Leading Design Firm", Tom Kelley with Jonathon Littman, January-2001. ISBN-10: 0385499841. ISBN-13: 978-0385499842 . (This is a fantastic book and is the text I wish I had when planning the team based innovation aspects of JCU CP3120 and CP3110)
- Martin Fowler, "Refactoring: Improving the Design of Existing Code", Martin Fowler with contributions by Kent Beck, Addison-Wesley Professional, 2nd edition 2018. ISBN-10: 0134757599, ISBN-13: 978-0134757599. (another very important and practical text, helping people to improve or replace code subsystems without breaking other system parts, used 1st edition in JCU CP3120 and CP3110)
- Brian W. Kernighan and Rob Pike, "The Practice of Programming", Addison-Wesley, 1999. ISBN 0-201-61586-X. (simply useful everywhere for teaching and practice, very very good - ideas fed into RMIT DS472 and JCU CP2377)
- Digital Signal Processing
- A.V. Oppenheim and R.W. Schafer, "Discrete-time signal processing", Prentice-Hall, 3rd edition 2009, ISBN-13: 9780131988422. (previous edition successfully used in ADFA masters level course)
- J.G. Proakis and D.G. Manolakis, "Digital Signal Processing: Principles, Algorithms and Applications", 4th edition 2006, ISBN-10: 0131873741, ISBN-13: 978-0131873742. (the introduction to discrete time is very clearly presented)
- Paolo Prandoni and Martin Vetterli, "Signal Processing for Communications", 1st edition 2008, EFPL Press. ISBN-10: 1420070460. ISBN-13: 978-1420070460. An on-line version is also available at http://www.sp4comm.org/getit.html, and can be used with an on-line subject provided by the authors at https://www.coursera.org/course/dsp.
- S. M. Bozic, "Digital and Kalman filtering: an introduction to discrete-time filtering and optimum linear estimation", Arnold, 1979. ISBN 0713134100. (introductory text on digital filters and Kalman filtering is solid yet gentle, good for KF beginners)
- Ethics
- G. Reynolds, "Ethics in Information Technology", Thomson Publishing, October 2002. ISBN: 0-619-06277-0. (this text appears quite good, no negative feedback with a first class using it in the early 2000s)
- Networking
- Andrew S. Tanenbaum and David J. Wetherall, "Computer Networks", 5th edition 2011, Pearson. ISBN-10: 0-13-212695-8, ISBN-13: 978-0-13-212695-3. (previous editions were just great)
- Douglas Comer, "Computer Networks and Internets", 5th edition 2008, Pearson - Prentice-Hall. ISBN 10: 0-13-606127-3, ISBN 13: 978-0-13-606127-4. (see also texts by Comer and Stevens)
- Microprocessor Systems (legacy)
- Gene H. Miller, "Microcomputer Engineering", Prentice-Hall, 1993 (ISBN 0135844754) and 2nd edition 1999 (ISBN 0-13-895368-6). --This was/is a very good 68HC11 text, and was successfully used in the RMIT Manufacturing Systems Engineering program.
- Joseph L. Jones and Anita M. Flynn, "Mobile Robots: Inspiration to Implementation", A.K. Peters, Wellesley, Massachusetts, 1993. ISBN 1-56881-011-3. --This text was just great for inspiring student projects at ADFA and RMIT, proved great for 68HC11 users, and you can still pick up good ideas from here even if you've moved onto AVR and ARM devices. A classic.
- Phillip Musumeci, "68HC11 Programmer's Reference Manual", Department of Computer Systems Engineering, RMIT, Melbourne, 1996. Currently available at Department of Electrical Engineering, Federal University of Rio de Janeiro - UFRJ. --This snapshot of my uP practical support notes has proven quite popular. I also wrote notes on assembly language programming, and the explanation of addressing modes was inspired by the following text.
- MOS Technology and Synertek Systems, "SY6500/MCS6500 Microcomputer Family Programming Manual", Publication Number 6500-50, 1976. Currently available at archive.org (search, text scan, scanned PDF) and archive.6502.org (scanned PDF). --This classic text was/is a good introduction to uP programming, especially with respect to the many addressing modes available in a small yet powerful (understandable) processor such as the 6502. And it was sensibly thin (i.e. a small book but not too small).
- Telecommunications studies for humanities students (legacy)
- A.M. Noll, "Introduction to Telecommunication Electronics", Artech House Inc., Norwood MA, 2nd Edition, 1995. --I found that the 1st edition worked well in a telecommunications systems course for humanities students at ADFA in the early 1990s.
- Network Theory (classic)
- F.F. Kuo, "Network Analysis and Synthesis", 2nd edition, John Wiley, 1966. ISBN 0471511188. Library of Congress: 66-16127. This is an excellent text irrespective of age. It is a shame that Wiley do not republish it (search web links: Abebooks; biblio.com). Definitely a classic.
- Operating System Studies (classics)
- Andrew Tanenbaum and Albert Woodhull "Operating Systems Design and Implementation", 3rd edition 2006, Pearson. ISBN-10: 0-13-142938-8, ISBN-13: 978-0-13-142938-3. Notes: Woodhull maintains a Teaching with Minix Howto web site; MINIX 3 is now publicly available under a BSD-like licence.
- Andrew Tanenbaum's "Modern Operating Systems", 3rd edition 2008, Prentice-Hall. ISBN-10: 0-13-600663-9, ISBN-13: 978-0-13-600663-3.
- M.K. McKusick, K. Bostic, M.J. Karels, and J.S. Quarterman, "The Design and Implementation of the 4.4 BSD Operating System", Addison Wesley, 1996. ISBN: 0-201-70245-2. --This is quite useful as a starting point for learning about FreeBSD and NetBSD.
- Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne, "Operating System Concepts", 6th edition, John Wiley & Sons, 2001. ISBN 0-471-41743-2. --This proved better than I expected, and it was successfully used in JCU CP2002 Operating Systems teaching.
- UNIX Programming and UNIX Use
- W. Richard Stevens, "Advanced Programming in the UNIX Environment", Addison-Wesley, 1992, ISBN 0-201-56317-7. URL=http://www.kohala.com/start/apue.html. --This is simply excellent, with a strong coverage of BSD4.3+ i.e. BSD4.4, and I still depend on it.
- W. Richard Stevens and Stephen A. Rago, "Advanced Programming in the UNIX Environment", 2nd edition, Addison-Wesley, 2005, ISBN 0-201-43307-9. URL=http://www.aw-bc.com/catalog/academic/product/0,1144,0201433079,00.html. (not seen yet but I am sure it is also very very good)
- Paul Abrahams and Bruce Larson, "UNIX for the Impatient", 2nd edition, Addison Wesley, 1996. ISBN 0-201-82376-4. --I have seen students find this to be quite a good book (perhaps because they are impatient).
- The Ohio State University UTS Unix text is available on-line - find its web site via this search link.
- Peter Dyson, "The UNIX Desk Reference", SYBEX, 1996. ISBN 0-7821-1658-2. (nice and small)
- Greg Lehey, "The Complete FreeBSD", published by Walnut Creek CDROM, June 1999. ISBN: 1-57176-246-9. Errata for the text is distributed on FreeBSD CD sets --- look at /book/errata. Errata and the mosr recent version are/were available from ftp://www.lemis.com/pub/cfbsd. Greg Lehey lives in Adelaide, Australia.
- Annelise Anderson, "FreeBSD - An Open-Source Operating System For Your Personal Computer", published by The Bit Tree Press, 2001. Paperback, 419 page book with CD #1, ISBN: 0-9812045-0-0. --This is a good introductory text and subsequent books by this author are definitely worth a look.
- Computing History
- Peter H. Salus, "A Quarter Century of UNIX", Addison-Wesley, 1994. ISBN 0-201-54777-5. (must have unix history book)
- Doug McCann and Peter Thorne. "The Last of the First, CSIRAC: Australia's First Computer", ISBN 0-7-7340-2024-4. See also http://www.cs.mu.oz.au/csirac or this search for CSIRAC.
- Project Management
- E.M. Bennatan, "On Time, Within Budget - Software Project Management Practices and Techniques", 2nd edition, John Wiley and Sons, 1995. ISBN 0-471-12811-2. --This was very good for software engineering teaching.
- 3rd edition, John Wiley and Sons, 2000. ISBN 0-471-37644-2 (sadly not as THIN at 368 pages, but still very good)
- Robert K. Wysocki and Rudd McGary, "Effective Project Management: Traditional, Adaptive, Extreme", 3rd edition, Wiley 2003. ISBN-10: 0471432210. ISBN-13: 978-9868115859. --This text was chosen for JCU CP3046 and CP3047 as a way to get adaptive and iterative development methodologies past traditionalists. Very good technically :-)
- There is now a 4th edition.
- Programming and the Study of Languages
- Search for books by Al Kelley and Ira Pohl (these authors were brought to my attention by P. Kootsookos and A. McManus - thanks)
- Ira Pohl, "C++ Distilled - A Concise ANSI/ISO Reference and Style Guide", Addison-Wesley, 1997. ISBN 0-201-69587-1. --I find that one of the really great aspects of this book is that distillation makes it THIN enough to read in a [human] lifetime. See also Ira Pohl, "C++ for C Programmers", Addison-Wesley, 1998. ISBN: 0201395193.
- Brian W. Kernighan and Dennis M. Ritchie, "The C Programming Language", 2nd edition, Prentice Hall 1988. ISBN 0-13-110362-8. --I find this to be another GREAT THIN book. Even after many years of writing C, one can still be pleasantly refreshed by reading its lean clean code.
- Mark Lutz and David Ascher, "Learning Python", 2nd edition, O'Reilly, December 2003. ISBN 0-596-00281-5.
- Allen Downey, Jeff Elkner and Chris Meyers, "How to Think Like a Computer Scientist: Learning with Python", Green Tea Press (January 4, 2002), ISBN: 0971677506. Available on-line at http://www.ibiblio.org/obp/thinkCS/python/english. This is a gentle text aimed at the transition between high school and university (in the U.S., this book promotes Python as a replacement for C++ as a first programming language in high school).
- Luke Welling and Laura Thomson, "PHP and MySQL Web Development", 5th edition 2015, Addison-Wesley. ISBN-13: 978-0321833891, ISBN-10: 0321833899. This text is very good, and earlier editions proved very useful for RMIT CSE and JCU IT project students.
- Lesley Anne Robertson, "Simple Program Design", 5th edition, Nelson Thornes Ltd (previously Thomson Publishing), September 2006. ISBN-10: 0170128512, ISBN-13: 978-0170128513. --This has been very good for IT students learning their computational thinking and a first programming language, and even later as a reference for u/grad engineers studying Matlab in 2012.
- Brian W. Kernighan and P.J. Plauger, "Software Tools in Pascal", Addison-Wesley Professional, January 1981. ISBN-10: 0201103427 and ISBN-13: 978-0201103427. (historically significant)
- Real-Time Systems (classics)
- Raymond Buhr and Donald Bailey, "An Introduction to Real-Time Systems from Design to Multitasking with C/C++", Prentice-Hall, 1999. ISBN 0-13-606070-6.
- S.T. Allworth and R.N. Zobel, "Introduction to Real-Time Software Design", editions released in 1987 and 1988. (old but so very good, really!)
- Document Preparation and Programming (classics)
- Leslie Lamport, "LaTeX: A Document Preparation System", Addison-Wesley. This is the original description of LaTeX.
- Frank Mittelbach (LaTeX 3 Project, Mainz, Germany), Alexander Samarin (IPS, ISO, Geneva, Switzerland), and Michel Goosens (CERN, Geneva, Switzerland), "The LaTeX Companion", Addison-Wesley, 1994. ISBN 0-201-54199-8. (covers many of the packages shipped in the teTeX distribution that is popular on FreeBSD and linux)
- Michel Goosens (CERN, Geneva, Switzerland), Sebastian Rahtz (Elsevier Science Ltd., Oxford, United Kingdom), and Frank Mittelbach (LaTeX 3 Project, Mainz, Germany), "The LaTeX Graphics Companion", Addison-Wesley, 1997. ISBN 0-201-85469-4.
- Sugar/Control/Printing (classics)
- E. Hugot, "Handbook of Cane Sugar Engineering", Elsevier Publishing Company, Amsterdam, The Netherlands, 1972. --This is not so easy for an EE to get through but, on the other hand, just how many books do we have on this topic? There is now a 3rd edition, 1986, with ISBN: 0444424385.
- T.E. Fortmann and K.L. Hitz, "An Introduction to Linear Control Systems", Marcel Dekker, Inc., N.Y., 1977. ISBN: 0-8247-6512-5. (old but GOOD)
- K.J. Astrom and B. Wittenmark, "Computer Controlled Systems: Theory and Design", Prentice-Hall, Inc., Englewood Cliffs, N.J. 3rd edition, 1997. ISBN 0-13-314899-8. (good book, previous edition saved me in a job. The student who has my copy really ought to return it)
- "Gutenberg Man of the Millennium - From a secret enterprise to the first media revolution", published by the City of Mainz, 2000, on the occasion of the sixth centenary of the birth of Johannes Gutenberg. --There is no ISBN, just like the works of Gutenberg. This book and the museum in Mainz are both very good.
- Donald E. Knuth, "Digital Typography", CSLI Publications, Stanford, California, 1998. ISBN 1-57586-011-2. --In my opinion, Knuth invented computer typesetting (or gave it one hell of a jolt forward), and has recently revised the Art of Programming - all are fantastic works.