You are on page 1of 4

Course Syllabus

CS 5950 and CS6030: Network Programming


(Prerequisite: Departmental Approval)
 
Spring Semester ‘07 Days: TR Time: 6:00-7:15 p.m. Venue: CEAS C-123

Instructor: Ala I. Al-Fuqaha
   
Office: 4601 Campus Drive # A-238                              Office Hours: TR: 4 to 5 p.m.
     
Telephone: (269) 276-3868 Fax: (269) 276-3122 E-mail: alfuqaha@cs.wmich.edu
 
 
Course Description:
This course will cover the practical aspects of computer network programming, with emphasis on the Internet. The
goal of this course is to introduce the students to the basics of computer networks and Internet programming. We
will introduce the students to the TCP/IP protocol stack and some of its important protocols. Students will also be
introduced to multi-tier application development and RPC technologies including: RMI, CORBA, EJB, and Web
Services. We will also look at industry trends and discuss some innovative ideas that have recently been developed.
Some of the course material will be drawn from the web, industry white papers and Internet RFCs.
 
Active participation by the students is expected in the course.
 
Texts:
 David Reilly and Michael Reilly, Java Network Programming and Distributed Computing, Addison-
Wesley (ISBN: 0-201-71037-4).
 W. Richard Stevens, TCP/IP Illustrated, Volume 1: The Protocols, Addison-Wesley, 1994
(ISBN: 0201633469).
 WWW Resources
 
Course Home Page:
The course home page will include all assignments, class notes, and links to related material. The course home page
is available at http://www.cs.wmich.edu/~alfuqaha/Spring07/cs6030
 
 
Course Objectives:
1.        Introduction to Networking and the OSI reference model.
2.        Data Link and Transport Layers, Ethernet, TCP/IP protocol suite.
3.        Sockets Programming: TCP Programming (TELNET, HTTP).
4.        UDP Sockets: TFTP, DNS.
5.        Web Programming: HTTP, CGI, Cookies, JavaScript, HTML, XML.
6.        Network Security: Secure Sockets (SSL), TLS, SSH, HTTPS, PGP, Kerberos.
7.        Client/Server Programming, 3-tier architecture.
8.        Remote Method Invocation (RMI).
9.        Common Object Request Broker Architecture (CORBA).
10.     Simple Object Access Protocol (SOAP), UDDI, and Web Services.
11.     Enterprise Java Beans (EJB).
12.     Java Server Pages (JSP) and Java Server Faces (JSF).
13.     JavaMail and E-mail programming: SMTP, POP, IMAP.
 
Performance Objectives:
1.        Students will be able to understand the basics of computer networks and the OSI reference model.
2.        Students will be able to understand the operation of multi-access and point-to-point link layer
technologies.
3.        Students will be able to understand the basics of the TCP/IP protocol suite and some of its widely used
protocols.
4.        Students will be able to experiment with protocol analyzers (packet sniffers) to understand and analyze the
operation of the different TCP/IP protocols.
5.        Students will be able to experiment with network routing (static and dynamic) and understand the process
of implementing simple routed inter-networks.
6.        Students will be able to understand the 3-tier software architecture (presentation/client tier, application
tier, data tier).
7.        Students will be able to understand the basics of network security and using SSL for secure
communication.
8.        Students will be able to write web applications using a combination of client-side (JavaScript, HTML,
XML, WML) and server-side technologies (JSP, JSF, SERVLETS).
9.        Students will be able to write network applications using state-of-the-art RPC technologies including:
RMI, CORBA, EJB, and Web Services (SOAP and UDDI).
10.     Students will be able to understand e-mail programming (JavaMail, SMTP, POP, IMAP).
11.     Students will be able to design and implement network applications through semester-long projects.
 
Topics:
 
Week of Topics Suggested Readings
Jan 8 Overview, goals, syllabus, project Provided
Overview of multi-tier enterprise References
applications, review of web
technologies (HTML, XHTML,
CSS, JavaScript, HTML DOC)
 
Jan 15 NetBeans IDE, J2SE, J2ME, and Provided
Design Patterns References
   
Review of Computer Networks, Chapter 1
OSI Model, TCP/IP protocol suite Stevens
   
Jan 22 User Datagram Protocol, Internet Chapters 3,5
Control Protocol, UDP Reilly & Reilly
Programming in Java  
Transmission Control Protocol, Chapter 6
Multithreading & TCP Sockets Reilly & Reilly
Programming in Java  
 
Jan 29 Security Overview, Java Provided
Cryptography Extension (JCE), References
and Java Secure Socket Extension  
(JSSE) Chapter 13
  Reilly & Reilly
Email (JavaMail): SMTP, POP,
IMAP
 
Feb. 5 HTTP Chapter 9
  Reilly & Reilly
Cookies & HTTP Proxies, URL  
Programming
 
Feb. 12 Asynchronous JavaScript and Chapters 9, 10
XML (AJAX), Common Gateway Reilly & Reilly
Interface (CGI)
 
Introduction to Server-Side
Programming using Java Servlets,
Creating Servlet Based Web
Applications
 
Feb. 19 Servlet Session Management Chapter 10
  Reilly & Reilly
Java Naming and Directory  
Interface (JNDI) Provided
  References
 
Feb. 26 Introduction to Enterprise Java Provided
Beans (EJB), Session Beans, Entity References
Beans
 
Mar. 5 SPRING BREAK  
 
Mar. 12 Java Server Pages (JSP), JSP vs. Provided
[MIDTERM] Servlets, Handling HTML Forms References
using JavaBeans, MVC pattern  
 
Mar. 19 Java Server Faces (JSF), Input Provided
Validation, Site Navigation, References
Database, Connectivity
Mar. 26 WebServices (Clients and Servers), Provided
SOAP, UDDI, JAXRPC References
 
Apr. 2 Remote Method Invocation (RMI) Chapter 11
Reilly & Reilly
 
Apr. 9 Common Object Broker Chapter 12
Architecture (CORBA) Reilly & Reilly
 
Apr. 16 Project Presentations  
Final Exam Discussions
 
(The order of covering some of the topics might change depending on chosen term projects)
Grading Policy:
Assignments                                                                                                                                        15%
Midterm Exam (Tuesday, March 13th, in class)                                                                                15%
Final Exam (Tuesday, April 24th, 7:15-9:15pm)                                                                 15%
Quizzes                                                                                                                                                  10%
Term Project                                                                                                                                          40%
Attendance                                                                                                                                           5%
 

                                                                                                                                                                100%
 
Normally, the standard thresholds for letter grades will be used. However, the thresholds may be lowered by as
much as 10% depending of the class performance.
 
All exams, assignments, and other materials will be returned to the students in no more that two weeks from the date
they are submitted.
 
Guidelines for Submission of Assignments:
         All work must be submitted on, 81/2”X11” papers. Use only one type, size and color paper for each assignment.
Please do not submit papers torn-off from the spiral notebooks.
         The material need not be typed unless otherwise specified. However, all work must be neat and easily readable.
         The solutions to the homework problems must be arranged sequentially. Each solution must be clearly labeled
and separated from the previous and the next solution.
         If using pencil, please make sure that it produces easily readable contrast on paper.
         Assignments must be turned-in in the class before the start of the class on due dates. A late submission will not
be accepted and will receive a grade of ‘zero’ unless a time extension is approved by the instructor in advance,
or an emergency had occurred.
 
A submission not within the guidelines will not be accepted and will receive a grade of ‘zero’.
 
Other Important Notes:
         No discussion on assignments or course difficulties over telephone with the instructor.
         No questions will be answered on the date of a test/exam.
         Any disagreement with grading on tests must be pointed out immediately after the class period (in which
graded papers are returned) with written arguments for your claim.
         A make-up test/exam can be given only when the student presents a valid reason for missing the test/exam.
 
Change of Enrollment Status Policy:
         Withdraws recorded as “W” on transcript: After January 17th.
         Last day to withdraw from classes: March 19th.
 
Student Workload:
This is a combined lecture/discussion and programming/implementation course. Material will be presented by the
instructor and students are expected to participate in class discussions. The students are also expected to engage in
semester-long programming projects.
 
Academic Honesty:
You are responsible for making yourself aware of and understanding the policies and procedures in the Undergraduate (pp. 274-
276) [Graduate (pp. 26-28)] Catalog that pertain to Academic Integrity. These policies include cheating, fabrication, falsification
and forgery, multiple submission, plagiarism, complicity and computer misuse. If there is reason to believe you have been
involved in academic dishonesty, you will be referred to the Office of Student Conduct. You will be given the opportunity to
review the charge(s). If you believe you are not responsible, you will have the opportunity for a hearing. You should consult with
me if you are uncertain about an issue of academic honesty prior to the submission of an assignment or test.

You might also like