Course Notes
Computer Engineering

Recommended Book List

This page is out of date and appears here for archival purposes. For new references see the Technical Links page.

image file not found image file not found image file not found image file not found image file not found image file not found
Books for Summer Classes


" The covers of this book are too far apart. "
- Ambrose Bierce, The Devil's Dictionary


Here you will find mostly book citations, but there are also a few links to interesting web sites.

Some Author Links

.Net Authors  Juval Lowy  Jeff Prosise  Ingo Rammer  Chris Sells  Bjarne Stroustrup  Julian Templeman 

Books on Hold in Sci-Tech Library

  • Programming Microsoft .Net, Jeff Prosise, Microsoft Press, 2002
    Covers .Net types, WinForm programming, ASP, XML, and Remoting. We use Parts I and III for CSE681 - Software Modeling and Analysis and Part II for CSE686 - Internet Programming.
  • Patterns of Enterprise Architecture, Martin Fowler, Addison Wesley, 2003
    51 patterns that focus on automating business processes, especially using the web.
  • Head First Design Patterns, O'Reilly, 2004
    Another view on the 23 patterns discussed in the original Design Patterns book.
  • Enterprise Integration Patterns, Gregor Hohpe and Bobby Woolf, Addison Wesley, 2004
    65 patterns that focus on building message-passing middleware.
  • Organizational Patterns of Agile Software Development, James Coplien and Neil Harrison, Prentice-Hall, 2005
    Patterns for concurrent and networked objects.
  • Pattern-Oriented software Architecture, Douglas Schmidt, et. al., Wiley, 2000
    51 patterns that focus on automating business processes, especially using the web.
  • Refactoring to Patterns, Joshua Kerievsky, Addison-Wesley, 2005
    Discusses improving existing code with patterns. Collects refactorings into Creation, Simplification, Generalization, Protection, Accumulation, and Utilities.
  • Books recommended by Microsoft for Applicants for SDTE Positions:

    1. Writing Solid Code, Steve McGuire
    2. Code Complete, Steve McConnell
    3. Testing Computer Software, Cem Kaner
    4. How to Break Software, James A Wlittaker
    5. The Art of Software Testing, Glenford Meyers
    They also recommend:
    1. All I Ever Needed to Know in Business I Learned at Microsoft, Julie Bick
    2. Business at the Speed of Thought, Bill Gates
    3. The Road Ahead, Bill Gates

    Developers Book Kit

    I mentioned, during a Friday morning help session, a couple of books that I thought should be on every developer's bookshelf. There seemed to be enought interest that I've compiled my list of essentials - a Software Development book kit. Most of these are references and texts for experienced developers, listed below as Core References. I've also included links, emphasizing Tutorial Links.

    1. C++
      Core references:
      "The C++ Programming Language", 3rd Edition, Stroustrup, "The C++ Standard Library", Josuitus, "C++ Coding Standards", Sutter and Alexandrescu, "Effective C++", 3rd Edition, Scott Meyers, "Design and Evolution of C++", Stroustrup

      Tutorial references:
      "C++ Primer Plus", 5th Edition, Prata

      Tutorial links:
      cplusplus, C++ FAQ - Marshall Cline
      C++0x Links:
      C++0x, Dawning of a new Standard, Simpler Multithreading
      Other Links:
      The C++ Source

    2. C# and .Net
      Core references:
      "Effective C#", Wagner, "More Effective C#", Wagner, "Windows Forms 2.0 Programming", Sells and Weinhardt, "Concurrent Programming on Windows", Joe Duffy, "C# Network Programming", Blum, ".Net and COM, The Complete Interoperability Guide", Nathan

      Tutorial Links:
      C# Station Tutorials, Threads Tutorial
      Other Links:
      .Net Quickstarts

    3. Java
      "Java Concurrency in Practice", Brian Goetz, et. al., "Concurrent Programming in Java", 2nd Edition, Lea
    4. Win32 Systems Programming
      Core References:
      "Windows via C/C++", Jeffrey Richter

      Tutorial Links:
      theForger's Win32 Windows
      Other Links:
      Sysinternals, Catch22 Win32 Windows

    5. WCF
      Core References:
      "Inside Windows Communication Foundation", Justin Smith, Progamming WCF Services, 2nd Edition, Juval Lowy, "Windows Communication Foundation 3.5, Unleashed", McMurtry, et. al.

      Tutorial Links:
      MSDN Tutorial, Wahlin Blog, WCF Security Samples, WCF Rest Samples, WCF Tutorial links
      Other Links:
      secure messaging

    6. WPF
      Core References:
      "Programming WPF", Sells, "Pro WPF in C# 2008", MacDonald

      Tutorial Links:
      MSDN Tutorial, Tutorial Videos, WindowsClient Tutorials, BeaCosta Blog, CoreDotNet Data Binding, DotNetSlackers, WPF and Xaml Tutorials, AspAlliance Tutorials, Christian Moser's Tutorials, Paranoid Ferret Tutorials, Erno de Weerd Code Samples, SearchWinDevelopment Tutorials
      Other Links:
      C# Corner Articles

    7. Web Development
      Core References:
      "Pro Asp.Net 3.5 in C# 2008", MacDonald and Szpuszta, "Bulletproof Web Design", Cederholm, "DOM Scripting", Keith, "PPK on Javascript", Koch, "HTML Dog, the Best-Practice Guide to XHTML & CSS", Griffiths

      Other References:
      "Beginning XSLT 2.0", Tennison

      Tutorial Links:
      Code.Google Web Security, Code.Google Ajax Programming

    8. Microsoft's COM Technology
      Core References:
      "ATL Internals", Sells et. al., "Understanding ActiveX and Ole", David Chappell
      Other References:
      "Developer's Workshop to COM and ATL", Troelson, "Inside OLE2", Kraig Brockschmidt

      Tutorial Links:
      Simple COM Server, Intro to COM, Part I, Intro to COM, Part II, COM STA, Part I, COM STA, Part II

    9. Distributed and Enterprise Computing:
      Tutorial Links: Code.Google Distributed Computing
      Other Links: Udi Dahan's Articles, ACE, Corba, Corba Tutorials,
      Distributed Computing Research Links: Distributed Programming with Mozart
    10. Database Development
      "The Hitchhiker's Guide to Visual Studio and SQL Server", 7th edition, Vaughn, "Murach's SQL for SQL Server", Syverson

      Tutorial Links:
      Code.Google MySQL Database links

    11. Algorithms
      Tutorial Links:
      Code.Google Algorithms
    12. Software Engineering
      Core References:
      "The Mythical Man Month", Frederick Brooks

      Tutorial Links:
      Code.Google Configuration Management

    13. Writing
      Core References:
      "Writing with Style", Second Edition, Trimble

    Object Oriented Design

    1. Design Patterns, Erich Gamma, et. al., Addison-Wesley, 1995
      This wonderful book is the text we use in the summer course of that name. You have to write software using the patterns to understand in detail what the book is saying, but well worth reading even if you don’t follow my advice.
    2. UML Distilled, Fowler and Scott, Addison-Wesley, 1997
      Good introduction to the Unifed Modeling Language.
    3. Practical Statecharts in C/C++, Miro Samek, CMPbooks, 2002
      Book focuses on modeling event driven systems with Hierarchical State Charts (Chapter 4) and concurrent processing with Active Objects (Chapter 7). The text is wordy - the author spends as much time telling why the method is great as he does about the method. However, the fundamental ideas seem useful and effective. I haven't tried any of these in code yet, so the jury is still out.
    4. Object-oriented Software Construction, Bertrand Meyer, Prentice-Hall, 1994
      Lot’s of OOD wisdom by the author of the Eiffel Language.
    5. Agile Software Development, Principles, Patterns, and Practices, Robert C. Martin, Prentice-Hall, 2003
      A thoughtful text, full of examples in Java and C++, that discusses most of the design principles we cover in this course.

    Design Patterns

    1. Design Patterns, Gamma, et. al., Addison-Wesley, 1995
      CSE776 - Design Patterns is an excellent follow-on to CSE687 - Object Oriented Design. This book is the text we use for CSE776. It's a great book, and by far, the best on the topic.
    2. Refactoring to Patterns, Joshua Kerievsky, Addison-Wesley, 2005
      Discusses improving existing code with patterns. Collects refactorings into Creation, Simplification, Generalization, Protection, Accumulation, and Utilities.
    3. Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2003
      Presents 51 patterns related to building distributed enterprise systems.
    4. Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects, Volume 2, Douglas Schmidt, et. al., Wiley, 2000
      Focuses on middle-ware. The first listed author lead the work on the ACE middleware communication platfrom and TAO CORBA ORB.

    Win32 Systems Programming

    1. Win32 System Programming, Second Edition, Johnson Hart, Addison-Wesley, 2001
      File system, registry, security, memory-mapped files, processes, threads, interprocess communication, network programing, services, asynchronous I/O, RPC and COM, Win64
    2. Win32 System Services, Second Edition, Marshall Brain, Prentice Hall, 1996
      About the same contents as Hart, uses lots of small examples.

    .Net Toolkit

    If you are working every day with .Net, then the following will be essential parts of your toolkit.
    1. Programming Microsoft .Net, Jeff Prosise, Microsoft Press, 2002
      Covers .Net types, WinForm programming, ASP, XML, and Remoting. We use Parts I and III for CSE681 - Software Modeling and Analysis and Part II for CSE686 - Internet Programming.
    2. Effective C#, Bill Wagner, Addison-Wesley, 2005
      My attitude had always been: you don't need to buy a C# book. Look at Prosise (above) and the www.gotdotnet.com website to get all you need. This book changed my mind. Wagner has lots of good ideas, insights, and things you just hadn't thought of. Highly recommended.
    3. Windows Forms Programming in C#, Chris Sells, Addison-Wesley, 2004
      Very good discussion of Windows Forms programming, including design-time support.
    4. Pro C# 2008 and the .Net 3.5 Platform, Fourth Edition, Troelsen, Apress, 2007
    5. Programming in the .Net Environment, Watkins, Hammond, Abrams, Addison-Wesley, 2003
      Good treatment of Types, Metadata, the execution system, and deployment.
    6. Essential .Net, Volume I, Don Box, Addison-Wesley, 2003
      Good treatment of .Net object model, application domains, and an introduction to security.
    7. Applied .Net Attributes, Bock and Barnaby, APress, 2003
      How .Net attributes work, building custom attributes, compile-time and run-time behavior
    8. Programming .Net Components, Juval Lowy, O'Reilly, 2003.
      A clearly written account of the component model and how it is implemented in .Net. Some comparisons with COM as well. The book ends with a very well written chapter on .Net security with example code and configuration files.
    9. COM and .Net Component Services, Juval Lowy, O'Reilly, 2001.
      A clearly written description of component services provided by COM+. Contains a brief chapter on using COM+ services from managed code. The book has a chapter devoted to COM+ security.
    10. Advanced .Net Remoting, Ingo Rammer, APress, 2002
      A readable and useful book on .Net Remoting. I have based most of my work on material in this text. Discusses programming with components in the remoting chain to intercept, react, and possibly modify messages before they are received.
    11. Microsoft .Net Remoting, McLean, Naftel, and Williams, Microsoft Press, 2003
      Contains fairly detailed description of the remoting channel model and its use of sinks and formatters.
    12. C# Network Programming, Richard Blum, Sybex, 2001
      Focus on .Net Sockets classes, socket-based web protocols, e.g., ICMP, SNMP, SMTP, and HTTP. Also contains brief chapters on remoting and active directory.
    13. Debugging Applications for Microsoft .NET and Microsoft Windows, John Robbins, Microsoft Press, 2003
      Covers MSIL, testing, and debugging in the .Net environment.
    14. Essential Guide to Managed Extensions for C++, Challa and Laksberg, Apress, 2002
      Written by two developers on the Visual Studio C++ team, does a nice job of covering the use of managed C++ and interoperation between managed and unmanaged C++.
    15. .NET Web Services, Keith Ballinger, Addison-Wesley, 2003
      Creating web services and web service clients, XML and schemas, XML serialization, SOAP, WSDL, and UDDI.
    16. Expert .Net 1.1 Programming, Simon Robinson, APress, 2004
      IL, assemblies, garbage collection, performance, generating code at run-time, threading, WMI, security, cryptography
    17. Essential ASP.NET, with Examples in C#, Fritz Onion, Addison-Wesley, 2003
      Great discussion of Webforms, configuration, the ASP pipeline, data binding, caching, state management, and ASP security.
    18. ASP.NET Unleashed, Second Edition, Stephen Walther, SAMS, 2004
      Simple introduction to ASP, great breadth of scope, lots of examples. This book is now my primary reference.
    19. Microsoft ADO.NET, David Sceppa, Microsoft Press, 2002
      Examines ADO details with examples in C# and VB. I use this as a secondary reference.

    Other Books about .Net:

    1. The C# Programming Language, Anders Hejlsberg, Scott Wiltamuth, Peter Golde, Addison-Wesley, 2004
      Covers C# Language as it is now defined and adds a section on the changes coming in the next release of Visual Studio. This includes generics, anonymous functions, iterators, and partial types. Describes the grammar clearly and presents a nicely balanced set of examples.
    2. .Net Common Language Runtime Unleashed, Kevin Burton, SAMS, 2002
      Interop, resource management, threading, networking, security, reflection, debugging, and profiling.
    3. Programming Microsoft Windows with C#, Charles Petzold, Microsoft Press, 2002.
      Demonstrates how to do a lot of the things, that MFC does, in a simpler, clearer way, using WinForms. Exceptionally lucid presentation. We used this book for Advanced Windows Programming last summer.
    4. C# In A Nutshell, Peter Drayton, et. al., O’Reilly, 2002
      Nice reference for the C# language and a lot of the .Net Framework. Discusses the most important .Net System Libraries and their Types. Not many examples.
    5. Understanding .Net, David Chappell, Addison Wesley, 2002
      Excellent introduction to the .Net technologies. Almost no code, but very clear descriptions of the various pieces.
    6. Professional C#, 2nd Edition, Robinson, et. al., Wrox Press, 2002
      Discusses C#, some of the Framework classes, using Visual Studio.Net, WinForms, ADO, Win Controls, File and Registry Operations, ASP, Custom Controls, COM+, Web related parts of the Framework, .Net Remoting, and .Net Security. Lots of material with a reasonable amount of sample code in C#.
    7. GDI+ Programming: Creating Custom Controls Using C#, Eric White, Wrox Press, 2002
      Good reference for building custom GUI widgets. We will use this as a reference for CSE775 - Distributed Objects this spring.
    8. Professional Windows Forms, Jason Bell, et. al., Wrox Press, 2001
      A typical Wrox book, lots of good information, not always presented in the most graceful manner.
    9. ASP.NET Website Programming, Bellinaso and Hoffman, Wrox Press, 2002
      New book that I've just begun to look at. Looks like a good step-by-step tour of the construction of a major website, with lots of tools.
    10. Developing Applications with Visual Studio.Net, Richard Grimes, Addison Wesley, 2002
      A very detailed look at some of the most interesting .Net technologies. There is detail here that you just can’t find anywhere else. It is by no means complete coverage however.
    11. Applied Microsoft .Net Framework Programming, Jeffrey Richter, Microsoft Press, 2002
      Clear presentation of the Common Language Runtime (CLR) core of the .Net Framework. Does not discuss remoting or web services except in the introduction.
    12. C# Web Services, Ashish Banerjee, et. al., Wrox Press, 2001
      This was my first reference for Web Services. Well written with some interesting ideas.
    13. C# Programmer's Reference, Grant Palmer, Wrox Press, 2002
      A clear, and fairly complete tour of the C# language. A good reference to keep at your desk, after you have read the Prosise book, above.
    14. C# and the .Net Platform, Andrew Troelsen, Apress, 2001
      Clear discussions of C#, WinForms, Active Data Objects (ADO) and Active Server Pages (ASP) as they now appear in the .Net platform
    15. C# .Net Web Developer’s Guide, Adrian Turtschi, et. al., Syngress Publishing Inc., 2002
      A relatively simple introduction to most of the most useful Web related .Net technologies.
    16. Professional .Net Framework, Hoffman, et. al., Wrox Press, 2001
      Discusses CLR, System Namespace, .Net Components and Controls, ADO and XML classes, Web Services, .Net Remoting. Lots of material with a reasonable amount of sample code in C#. One interesting example is the use of “managed” and “unmanaged” C++ in the same program (pgs 88-91).
    17. Microsoft Visual C# .Net, Step by Step, John Sharp and Jon Nagger, Microsoft Press, 2002
      Covers C#, WinForms, ADO, ASP, WebForms, and XML Web Services. Its main attribute is that the examples are short, simple, and very detailed, in that you get explicit directions for every step, including the use of Visual Studio IDE features to create working demonstrations. This book is very similar in design and intent to “Practical Visual C++ 6.0”, by Bates and Tompkins, Que which I have put in the library for reference during the Advanced Windows Programming course.
    18. Professonal ASP.Net, Anderson et. al., Wrox Press, 2001
      Very thorough coverage of ASP.
    19. ASP.NET, Web Developer’s Guide, Mesbah Ahmed, et. al., Syngress Publishing Inc., 2002
      Seems to have a good mix of topic coverage, small examples, and a larger continuing example.
    20. ASP.NET: Tips, Tutorials, and Code, Scott Mitchell, et. al., SAMS, 2002
      Covers lots of server-side programming techniques, including some details I haven’t found elsewhere.
    21. C# Essentials, Ben Albabari, et. al., O’Reilly, 2002
      Two of the authors are also authors of the C# in a Nutshell book. Presents material in less condensed fashion than the Nutshell book, but has about the same coverage of C# and much less of the Framework.
    22. Host Secure, Lightweight Client-Side Controls in Microsoft Internet Explorer, Jay Allen, MSDN, February 2001
      Discusses using .Net controls in web-pages, a topic not discussed anywhere else that I can find.

    C++ Programming Language Toolkit:

    If you are working every day with C++, then the following will be essential parts of your toolkit.
    1. The C++ Programming Lanaguage, Bajarne Stroustrup, Addison Wesley, 1997
      We use this book as our first required reference for CSE687-Object Oriented Design. This is not a great tutorial book, but, it is simply the best general reference on the C++ language there is. If you continue on with C++ you will grow to appreciate the book more and more. It is always my first, and often my last place to look for answers about the language and how to use it.
    2. The C++ Standard Library, Nicolai Josuttis, Addison-Wesley, 1999
      The best general coverage of the Standard Library. We use this as the second required text in CSE687 - Object Oriented Design.
    3. C++ Coding Standards, Herb Sutter, Andrei Alexandrescu, Addison-Wesley, 2005
      Outstanding book devoted to managing the complexity of C++ through thoughtful design idioms and recommended strategies. Any book by either of these authors will be worth your time. This one is essential reading.
    4. C++ Gotchas, Avoiding Common Problems in Coding and Design, Stephen Dewhurst, Addison-Wesley, 2003
      Dewhurst was one of my favorite columnists (C/C++ User's Journal) and this is a useful reference to read, then keep by your desk. It covers many of the same topics, in a somewhat different way, as C++ Coding Standards, above.
    5. Effective STL, Scott Meyers, Addison-Wesley, 2002
      Great introduction to the right mindset to use with the STL. Has lots of tips and instructions for daily use of this powerful library.
    6. The Design and Evolution of the C++ Language, Bjarne Stroustrup, Addison-Wesley, 1994
      By far the best written of his books, it explains the reasons why he made the choices for C++ that he did. Your perspective will mature a lot as you digest this book.
    7. Modern C++ Design, Andre Alexandrescu, Addison-Wesley, 2001
      Alexandrescu is just smarter than the rest of us. He does high magic in this book – all focused on templates.
    8. Imperfect C++, Matthew Wilson, Addison-Wesley, 2005
      A constructive criticizm with practical solutions. Some interesting ideas here.
    9. Exceptional C++, Herb Sutter, Addison-Wesley, 2000
      Lot’s of good design ideas here.
    10. More Exceptional C++, Herb Sutter, Addison-Wesley, 2002
      More good design ideas here.
    11. Exceptional C++ Style, Herb Sutter, Addison-Wesley, 2005
      Generic programming, exception safety, class design, resource management, efficiency, Pitfalls, and Case Studies.
    12. Effective C++, Scott Meyers, Addison-Wesley, 2nd Edition, 1998
      Provides design guidelines for using C++ effectively.
    13. More Effective C++, Scott Meyers, Addison-Wesley, 1996
      More of the same.

    Other Books about the C++ Programming Language:

    1. C++ Primer Plus, Third Edition, Stephen Prata, Waite Group, 1998
      Large, thorough coverage of the C++ Language with lots of small examples. I put this book on reserve in the SciTech Library when I'm teaching CSE687 - Object Oriented Design. Recommended supplement if you find the primary class text too hard.
    2. Accelerated C++, Andrew Koenig, Barbara Moo, Addison-Wesley, 2000
      Good beginner’s book.
    3. C++ Templates, the Complete Guide, Vandevoorde and Josuttis, Addison-Wesley, 2003
      An excellent book to sharpen your C++ template skills after finishing CSE687.
    4. C++ Complete: A Reference and Tutorial to the Proposed C++ Standard, Wiley, 1994
      Contains a very nice condensed description of the language grammar using syntax diagrams and well planned discourse.
    5. Large Scale C++ Software Design, John Lakos, Addison-Wesley, 1996
      Addresses the issues we talked about in the Design Principles Notes.
    6. Essential Guide to Managed Extensions for C++, Challa and Laksberg, Apress, 2002
      Written by two developers on the Visual Studio C++ team, does a nice job of covering the use of managed C++ and interoperation between managed and unmanaged C++.

    Books on Windows Programming:

    1. Windows Forms Programming in C#, Chris Sells, Addison-Wesley, 2004, ISBN 0-321-11620-8
      This is the primary text for CSE778 - Advanced Windows Programming. It's an extraordinary book. Because getting started with WinForms is easy, we tend to think that we know most of what there is to know about the topic. Not so! Chris Sells has provided an exceptionally readable account of a lot of details that are useful, often necessary, and help you make very professional looking and operating user interfaces. If you don't have a copy, go get one.
    2. Programming Windows with C#, Charles Petzold, Microsoft Press, 2002
      Coverage: Visual C#, ver 7.0, a.k.a. .Net, using WinForms.
      This was our main text for CSE778 - Advanced Windows Programming last year, and is an excellent text. Very clearly written. Goes into micro-detail about many, many WinForm programming issues.
    3. Programming Windows with MFC, Jeff Prosise, Microsoft Press, 1999
      Coverage: Visual C++, ver 6.0, using MFC.
      This is our secondary text for CSE778 - Advanced Windows Programming. Very clearly written. This is, by far, the best book I've seen on MFC programming.
    4. Practical Visual C++, Bates and Tompkins, Que Press, 1999
      Coverage: Visual C++, ver 6.0, using MFC.
      This is a really good recipe book, e.g., it has clear instructions with screen shots showing you how to do all the typical MFC things and some not so typical as well.
    5. Beginning MFC COM Programming, Julian Templeman, WROX Press, 1997.
      This is a very well written book that addresses just what it says it does, the support provided by MFC for creating and using COM objects with MFC programs. It is now out of print, but I've seen it advertised by a few booksellers, so you may want to order a copy right away if you expect to be doing MFC programming.
    6. The MFC Answer Book, Eugene Kain, Addison-Wesley, 1998
      Coverage: Visual C++, ver 6.0, using MFC.
      Explores the Document/View Architecture, managing Documents and Files, Views, Splitter Windows, Dialog Boxes and Property Sheets, Toolbars, Menus, and Printing, all in a question and Answer format. Has information you are not likely to find elsewhere.

    Books on COM, COM/.Net Interoperability, and Components:

    1. COM and COM+ Primer, Alan Gordon, Prentice Hall, 2000
      We use this book this year for CSE775 - Distributed Objects. It is a very well written book that walks you through the process of implementing and building COM components in a very clear manner. The material on COM+ is also relevant for .Net. This is one of two texts we use in CSE775 - Distributed Objects.
    2. Programming Microsoft Internet Exlorer 5, Scott Roberts, Microsoft Press, 1999.
      One of the very few resources that discusses the IE programming model. IE exposes a number of COM interfaces that support the programmatic use of the Explorer control, which you may wish to embed in a WinForm, or use through the MFC HTMLview class. The book is getting out of date, but is very clearly written and will be valuable as long as IE implementation is based on COM (I would not be surprised to see a .Net-based implementation with the next release of Windows.
    3. Programming .Net Components, Juval Lowy, O'Reilly, 2003.
      A clearly written account of the component model and how it is implemented in .Net. Some comparisons with COM as well.
    4. COM and .Net Component Services, Juval Lowy, O'Reilly, 2001.
      A clearly written description of component services provided by COM+. Contains a brief chapter on using COM+ services from managed code.
    5. The .NET and COM Interoperability Handbook, Alan Gordon, Prentice-Hall, 2003
      A readable, pragmatic, and useful book on COM in the .Net Environment. I have put Alan Gordon's earlier book, The COM and COM+ Programming Primer, in the Science and Technology Library this semester. This book is as well written as the reference book - see the citation below.
    6. .NET and COM, The Complete Interoperability Guide, Adam Nathan, Sams, 2002
      A very detailed book, written by a member of the Microsoft Development team. Contains the best description I've seen of getting events to work across COM managed code boundaries. Covered in Chaps 5, 6, 14, and 19.
    7. COM Programming with Microsoft .Net, Templeman and Mueller, Microsoft Press, 2003
      This is the first book I have seen that discusses, in any detail, ATL 7.0 Attributed Programming. I expect to use this text frequently.
    8. ATL Internals, Brent Rector and Chris Sells, Addison Wesley, 1999.
      Best book around on ATL 3.0. I hope there will be an edition for ATL 7.0.
    9. Inside Distributed COM, Guy Eddon and Henry Eddon, Microsoft Press, 1998
      This is an excellent book for developers new to COM. It has, by far, the best collection of example code, sensibly organized and accessible, of any other COM oriented text I've read. We used the book for two years for CSE775 - Distributed Objects.
    10. Essential IDL, Martin Gudgin, Addison Wesley, 2001
      One of only two books I know of devoted to Interface Definition Language (IDL). It is an excellent book, clearly written and containing virtually everything you might ever need to understand about IDL.
    11. Understanding COM+, David S. Platt, Microsoft Press, 1999
      An excellent overview of the COM technologies, in the style of David Chappell’s books.
    12. Developing Applications with Visual Studio.Net, Richard Grimes, Addison Wesley, 2002
      A very detailed look at some of the most interesting .Net technologies and some discussion of building and using COM components in a .Net environment. There is detail here that you just can’t find anywhere else. It is by no means complete coverage however.

    Web Programming:

    Note: All of the books on ASP and Web Services, in the .Net section, above, also fit into this category, but most citations have not been duplicated here.
    1. Programming Microsoft .Net, Jeff Prosise, Microsoft Press, 2002
      Very readable introduction to ASP, ADO, XML and Web Services on the .Net platform. This is the text we use for CSE686. Includes a discussion of Client Callbacks, e.g., AJAX, a technology for updating data on a page without posting back a whole page.
    2. Pro Asp.Net 3.5 in C# 2008, Second Edition, MacDonald and Szpuszta, Apress, 2007
      Very complete, with lots of discussion and quite a few examples. I'm thinking about using this for CSE686 - Internet Programming this year.
    3. Essential ASP.NET with Examples in C#, Fritz Onion, Addison-Wesley, 2003
      Deep coverage of the ASP programming model and its roots in the .Net FrameWork Class Library. Quite a few straight-forward examples are presented with the text.
    4. Professional XML, Didier Martin, et. al., Wrox Press, 2000
      Most of what you need to know about XML can be found here.
    5. XSLT Programmer's Reference, 2nd Edition, Michael Kay, Wrox Press, 2001
      Great - the one book to buy on XSLT. Using XSLT to generate HTML from XML is a very effective way to build a web site. That's what I did when I totally revised my web site at SU, of which this page is a part.
    6. DOM Scripting, Jeremy Keith, Apress, 2005
      Discusses designs using Javascript and CSS via the W3C Document Object Model. I will use material from this book for examples in CSE686 - Internet Programming.
    7. Bulletproof Web Design, Dan Cederholm, New Riders, 2006
      Discusses developing XHTML structures and CSS styles for navigation and page layout in a way that is robust in the presence of design changes and supports accessibility. Highly recommended.
    8. The Zen of CSS design, Shea and Holzschlag, New Riders, 2005
      Focus on using CSS to accomplish specific design affects. The first chapter provides an interesting discussion of how CSSZenGarden.com was structured to support presentation of many different design concepts.
    9. Murach's SQL for SQL Server, Bryan Syverson, Mike Murack & Associates, 2002, ISBN: 1-890774-16-2
      Very clear and detailed discussion of each of the SQL Commands, stored procedures, transactions, and locks, with good examples. Brief introduction to db design.
    10. Relational Database Design, 2nd Edition, Jan Harrington, Morgan Kaufmann, 2002
      Clear discussion of the relational model, normalization, and joins, with several case studies.
    11. Dynamic HTML, The Definitive Reference, 2nd Edition, Danny Goodman, O'Reilly, 2002
      My primary source for DHTML information.
    12. Cascading Style Sheets, The Definitive Guide, Eric Meyer, O'Reilly, 2000
      My primary source of information about CSS. I used XML, XSLT, and CSS on every page of my web site at SU.
    13. Inside Dynamic HTML, Scott Isaacs, Microsoft Press, 1997
      A very knowledgeable treatment of HTML and JavaScript, especially from the Microsoft point of view. Now a little out of date – written at the time of Internet Explorer 4 – but still a great source of information and reusable code.
    14. Programming Internet Explorer 5, Scott Roberts, Microsoft Press, 1999
      Detailed look at the COM structure underlying IE 5.0, it provides a great source of information for including the Microsoft Browser control in your applications.
    15. XHTML Black Book, Steven Holzner, Coriolis Group, 2000
      Covers HTML 4.01 and XHTML. This book has a lot of examples and covers most of the important topics.

    Mathematics and Computer Graphics:

    1. Articles and columns from American Scientist
    2. Algorithms in C++, 3rd Edition, Parts 1-4, Fundaments, Data Structures, Sorting, Searching, Robert Sedgewick, Addison-Wesley, 1998
      Clear, simple, graceful exposition of Algorithms and Data Structures.
    3. Algorithms in C, 3rd Edition, Part 5, Graph Algorithms, Robert Sedgewick, Addison-Wesley, 1998
      Clear, simple, graceful exposition of graphs and graph algorithms.
    4. Introduction to Algorithms, Corman, Leiserson, Rivest, Stein, MIT Press, 2001
      Nearly ideal description of data structures, sorting, optimization, graph algorithms, and other selected topics, along with a decent introduction to complexity analysis. Highly recommended.
    5. Linear and Nonlinear Programming, David Luenberger, Addison-Wesley, 1984.
      A wonderfully lucid presentation of basic and some quite advanced optimization processes. There are perhaps half a dozen books that I would love to have written. Luenberger wrote three of them.
    6. The Algorithm Design Manual, Steven Skiena, Springer/Telos, 1998
      This book is an encyclopedic listing of algorithms from the linear algebra, graphs, combinatorics areas. It provides advice about usage, cautions, and links to many implementations. Note that it provides few implementations itself.
    7. Linear Algebra and its Applications, Gilbert Strang, Academic Press, 1976
      Simple exposition about a topic indispensible for computer graphics. This book provides the basics in a simple and clear way. You will need other references to complete your background in this area (see below).
    8. 3D Game Engine Design, David Eberly, Morgan Kaufmann, 2001
      Don't even open the cover until you are comfortable with the material in Strang, above.
    9. Computer Graphics, Principles and Practice, Foley et al., Addison-Wesley, 1996
      A standard text, used in many graduate programs for Computer Graphics courses.
    10. Cooperative Association for Internet Data Analysis: Walrus Page

    Computational methods in Bioinformatics

    1. An Introduction to Bioinformatics Algorithms by Neil C. Jones (Author), Pavel A. Pevzner, MIT Press, ISBN: 0262101068
    2. Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids by Richard Durbin, Sean R. Eddy, Anders Krogh, Graeme Mitchison, Cambridge University Press, ISBN: 0521629713, 1997
    3. Introduction to Computational Biology: Maps, Sequences and Genomes by Michael S. Waterman, published by Chapman & Hall/CRC, ISBN: 0412993910, 1995
    4. Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology by Dan Gusfield, Cambridge University Press, ISBN: 0521585198, 1997

    Security

    1. .Net Developer's guide to Windows Security, Keith Brown, Addison-Wesley, 2003
      On-line version, appears to be very thorough and well written
    2. Programming .Net Components, Juval Lowy, O'Reilly, 2003.
      A clearly written account of the component model and how it is implemented in .Net. Some comparisons with COM as well. The book ends with a very well written chapter on .Net security with example code and configuration files.
    3. COM and .Net Component Services, Juval Lowy, O'Reilly, 2001.
      A clearly written description of component services provided by COM+. Contains a brief chapter on using COM+ services from managed code. The book has a chapter devoted to COM+ security.
    4. Programming Microsoft .Net, Jeff Prosise, Microsoft Press, 2002
      Covers .Net types, WinForm programming, ASP, XML, and Remoting. We use Parts I and III for CSE681 - Software Modeling and Analysis and Part II for CSE686 - Internet Programming. The book contains a very nice chapter on ASP security.
    5. Understanding .Net Code Access Security
    6. Secure Architecture Design Methodologies
    7. Insight into Security Model using Principal and Identity Objects in .Net
    8. NT Security Classes for .Net