CS 360 Special Topics: Networking with Android and Java

Course Syllabus
Spring 2012

Introduction

This course is an introduction to Computer Networking covering basic networking architectures, algorithms, and protocols. In particular, it will focus on the 7-layer OSI model and the TCP/IP reference model. This course will discusss, with respect to these models, how data is transferred across a network, how networking protocols allow for open networks and which piece of the model is responsible for each bit of functionality.

Topics

Network Programming with Java and Android
Security
OSI Model Internetworking
TCP/IP Model Application Protocols (HTTP/SMTP/DNS/DHCP)
TCP Protocol Internet Protocol (IP)
Routing Algorithms User Datagram Protocol (UDP)
Congestion Control The End-to-end Principle

Grade Breakdown

Percent Breakdown

Midterm 1 15%
Midterm 2 15%
Final Exam 15%
Homework/Quizzes/Labs 15%
Programming Projects 40%
    92-100 A 90-92 A-
88-90 B+ 82-88 B 80-82 B-
78-80 C+ 72-78 C 70-72 C-
68-70 D+ 60-68 D    
    0-60 F    

Programming Projects

This course will contain a set of significant programming projects to allow students to gain experience using the networking API available in Java and Android and to understand how the TCP/IP protocol works. Most of the later programming assignments in this course will build on functionality implemented in previous assignments. Quality solutions to the early assignments are the key to success.

All programming assignments must be build in Eclipse.  You may program on Windows or Linux, however be aware that I will test your code on Linux and any or all of the Android devices available in the Lab.  The last project of the semester will use the CISCO routing equipment to explore what can be done on the network router. All projects are individual projects unless otherwise specified, do not allow any other student see your source code.

Academic Dishonesty

  1. The cheating policy is defined in the Pacific Catalog as well as the Academic Policy that each of you signed upon entering Pacific University. Be sure you read or reread this policy carefully. All code written for CS360 is to be an original design and an original implementation. The Web, textbooks, and any other references are simply references for you. Copying source code from any source is prohibited unless specifically stated by the instructor. Further, source code is not to exchange hands in any form or by any medium except when sending your solutions to the instructor. It is OK to share high level ideas during the design phase, share information dealing with Java/Android/Eclipse issues, debugger issues, in general, development issues that do not involve code writing.
  2. Sanctions that may be imposed for academic dishonesty are:

If you have any question as to whether or not what you are about to do constitutes cheating, ask the instructor.

Course Policies

Resources

BOOKS

REQUIRED: Computer Networks, 5th Edition, Tanenbaum, online resources (http://www.pearsonhighered.com/educator/product/Computer-Networks-5E/9780132126953.page)
RECOMMENDED: Java Network Programming, 3rd Edition, Harold ( http://www.cafeaulait.org/books/jnp3/ or O'Reilly)

Other Online Resources

Java Docs: http://docs.oracle.com/javase/7/docs/api/

Android Docs http://developer.android.com/reference/packages.html

Android Tools http://developer.android.com/sdk/index.html

RFC Editor (http://www.rfc-editor.org/)
HTTP/1.1 (http://www.ietf.org/rfc/rfc2616.txt)
Web Sniffer (http://web-sniffer.net/)
"A protocol for packet network intercommunication", Cerf, Kahn (http://portal.acm.org/citation.cfm?id=1064423)
A TCP/IP Tutorial - RFC 1180 (ftp://ftp.rfc-editor.org/in-notes/rfc1180.txt)
User Datagram Protocol - RFC 768 (http://www.ietf.org/rfc/rfc0768.txt)
Computing the Internet Checksum - RFC 1071 (http://www.ietf.org/rfc/rfc1071.txt)
The Secure Shell Protocol Architecture (ftp://ftp.rfc-editor.org/in-notes/rfc4251.txt)
IP QOS (http://www.ciscopress.com/content/images/chap01_1578701163/elementLinks/1578701163.pdf)
IEEE 802 (http://www.ieee802.org/)
TCP/IP (http://en.wikipedia.org/wiki/Tcp/ip)
Smashing The Stack For Fun And Profit (http://insecure.org/stf/smashstack.html)
End-to-end Arguments in System Design (http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf)
JFLAP (http://www.jflap.org)
Subversion (http://svnbook.red-bean.com/)
SSH (http://kimmo.suominen.com/docs/ssh/)
TCP SYN Flooding Attacks and Remedies (http://www.networkcomputing.com/unixworld/security/004/004.txt.html)

Unsupported Resources

Cygwin (http://www.cygwin.com)
Pthread Support in Microsoft Windows Services for UNIX (http://www.microsoft.com/technet/interopmigration/unix/sfu/pthreads0.mspx)
Pthreads-WIN32 (http://sourceware.org/pthreads-win32/)
CVS (http://www.cvshome.org)

Further Reading

Where Wizards Stay Up Late: The Origins of the Internet, Hafner, (ISBN13: 9780684832678)
TCP/IP Illustrated, Volume 1: The Protocols, Stevens, (ISBN13: 9780201633467)
The Cathedral and the Bazaar (http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/)

Instructor Details

 

Course Basics

 
Professor Chadd Williams Course Title CS360 Special Topics: Client/Server Programming
Email chadd@pacificu.edu Meeting Times MWF 2:15-3:20pm
Office Strain 202 Location Marsh LL12
Phone (503) 352-3041 Textbook Computer Networks, 5th Edition, Tanenbaum
Office Hours Tues 2:30-3:30
Website http://zeus.cs.pacificu.edu/chadd/cs360s12
  Wed 11-noon
Official Clock http://time.gov/timezone.cgi?Pacific/d/-8/java
  Thur 1:30-2:30
Final Exam Monday, May 14 8:30am to  11:00 am
 or by appointment
Fri 11-noon
   

Exams

Midterm March 7
Midterm Apr 11
Final May 14, 8:30am

Acknowledgements

This class has benefited from networking classes taught at other universities: