The required textbook for the course is Computer Networks: A Systems Approach, fifth edition, by Larry Peterson and Bruce Davie. Almost all the material that we will cover is in the textbook.
Other good textbooks that you can use as a substitute are Computer Networking: A Top-Down Approach, Jim Kurose and Keith Ross, Addison Wesley, and Computer Networks, Andrew Tanenbaum and David Wetherall, Prentice Hall.
For the programming projects, please see Dave's Notes on Software Engineering for Systems Hackers.
There are a few recommended texts which are useful references (especially if networking becomes your career).
- TCP/IP Illustrated, Volume 1: The Protocols by W. Richard Stevens.
- Unix Network Programming: Networking APIs: Sockets and XTI (Volume 1) by W. Richard Stevens.
- Advanced Programming in the Unix Environment by W. Richard Stevens, Addison-Wesley, 1993.
Finally, if you have not taken 15-213, you may find its textbook useful as a gentle, software-focused introduction to computer architecture.
- Computer Systems: A Programmer's Perspective by Randal E. Bryant and David R. O'Hallaron. Prentice Hall, 2003