King Fahd University of Petroleum & Minerals
College of Computer Sciences and Engineering
SWE 344: Internet Protocols and Client-Server Programming (2-3-3)
Fall Semester 2008-2009 (081)
<< download the syllabus in pdf >>
N.B. All course material and related resources are made available
through WebCT and will be added here soon.
Coordinator: Dr. EL-SAYED EL-ALFY
Class Time & Venue:
Section |
01 |
02 |
51 |
52 |
Time |
SM 9:00-9:50AM |
SM 11:00-11:50AM |
T 2:10-5:10PM |
M 2:10-5:10PM |
Venue |
24-141 |
24-110 |
22-335 |
23-015 |
Instructor |
Dr. El-Sayed El-Alfy Office: 22-108, Phone: 03-860-1930, E-mail: alfy@kfupm.edu.sa, |
Mr. Said Abdallah Muhammad Office: 22-148-2 Phone: 2081 E-mail: said@kfupm.edu.sa |
||
Office Hours |
SMW@10:00-11:00AM * |
UMT@1:00-1:50 PM * |
* or by appointment
Course Description:
The course explores the development of TCP/IP applications and their associated protocols. It utilizes hands-on programming and makes use of network monitoring tools. It includes detailed coverage of TCP, UDP, HTTP, FTP, and SMTP protocols. Several Client/Server applications are developed using the Socket interface. Also, it covers Remoting as an example of object-oriented distributed application framework.
Pre-requisites: Good at programming using Java (or C++) by taking ICS201.
Objectives
To provide students with basic understanding of how the Internet is structured into layers and various protocols in each layer with emphasis on the transport and application layers.
To teach students the theory and practice to develop client-server Internet applications using the socket interface and remoting.
Learning Outcomes
Upon completion of the course, you should be able to:
Demonstrate understanding of the TCP/IP model and relevant protocols in each layer.
Describe the IP addressing, Internet domain names and recognize the role of the DNS servers.
Explain the operation and related issues of various common Internet applications and protocols including: HTTP, SMTP, POP, FTP, Telnet, IGMP, etc.
Identify and apply various socket programming concepts and mechanisms.
Use effectively the socket interface or remoting to develop Client-Server Internet applications.
Practice software engineering principles and methods in building network-aware applications.
Required Material
Richard Blum
Sybex 2002, ISBN 978-0-7821-4176-4.
Lecture notes and handouts
Several web sites and e-books to be available through the course website.
Grading Policy
Lab: Assignments: 12% + 3 Quizzes: 13% |
25 % |
Term Project (Group of 2 or 3): Proposal: 1%; Requirements & Design: 5%; Implementation: 10%; Presentation: 4%
|
20 % |
Quizzes (2 or 3) |
10 % |
Midterm Exam: (Date: Dec. 17, 2008@5:00-7:00PM & Room: TBA) |
20 % |
Final Exam (semi-comprehensive) [Date: as announced by the registrar] |
25 % |
Tentative Topics
Overview of C# and .NET Framework
C# Programming Basics
OOP, GUI, Delegates, Events and Threads
TCP/IP Protocols and Client/Server Model
Analyzing Network Packets using Network Monitoring Tools
IP Addressing and Domain Name System (DNS)
Socket Programming using C# Sockets Helper Classes
Raw Socket Programming
Asynchronous and Multithreading C/S Programming
Application-Layer Programming: HTTP and Web Applications, SMTP, POP/MIME, FTP, ICMP
UDP Broadcast and Multicast
Remoting and web services
Security and databases
Network management (as time permits)
Detailed Schedule of Lectures, Labs, Quizzes & Exams (Tentative)
Note: Material will be updated as necessary.
Week |
Lect. |
Date |
Lecture Topics |
Labs |
Assignments, Quizzes |
Additional Readings |
Additional Activities |
||||
1 | 1 | Oct 11 | Getting Started | ||||||||
2 | Oct 13 | Introduction |
chapter 1 from the textbook |
||||||||
2 | 3 | Oct 18 | C# Prog. Essentials (1) | ||||||||
4 | Oct 20 |
|
form groups |
||||||||
3 | 5 | Oct 25 | cont. | ||||||||
6 | Oct 27 | C# Prog. Essentials (3) |
|
||||||||
4 | 7 | Nov 1 | Delegates and Events |
Delegates Tutorial (C#) C# Station C# Tutorial Lesson 14 - Introduction to Delegates and Events |
|||||||
8 | Nov 3 | GUI and Threading | An Introduction to Programming with C# Threads | ||||||||
5 | 9 | Nov 8 | Internet Basics and Application Architectures | Lab 5 | Chapter 2: IP Programming
Basics Chapter 4 |
||||||
10 | Nov 10 | cont. | Quiz 1 on lectures 1 to 6 | ||||||||
6 | 11 | Nov 15 | Addressing and DNS | Lab 6 | |||||||
12 | Nov 17 | TCP C/S Programming: Using Helper Classes (1) | Chapter 3, 5, 7 | ||||||||
7 | 13 | Nov 22 | TCP C/S Programming: Socket Class (2) | Lab 7 | |||||||
14 | Nov 24 | UDP C/S Programming (Part 1) | Chapter 6, 7 | ||||||||
8 | 15 | Nov 29 | UDP C/S Programming (Part 2) | Lab 8 | |||||||
16 | Dec 1 | Review | |||||||||
School Break (Dec. 3 to Dec. 13) -- No Classes |
|||||||||||
9 | |||||||||||
10 | 17 | Dec 15 | Asynchronous Programming & Multi-Client TCP Servers | Lab 9 | chapter 8, 9 | ||||||
Ex. | Dec 17 |
Midterm at 5:00-7:00PM, Room: 22-119 material: up to lecture 16 |
|||||||||
11 | 18 | Dec 20 | App Layer Programming Examples: HTTP (part 1) | Lab 10 |
chapter 14, HttpListner
|
||||||
19 | Dec 22 | App Layer Programming Examples: HTTP (part 2) | Deadline to submit the term project proposal | ||||||||
12 | 20 | Dec 27 | App Layer Programming Examples: Remoting (part 1) | Lab 11 |
chapter 16,
|
||||||
21 | Dec 29 | App Layer Programming Examples: Remoting (part 2) | |||||||||
13 | 22 | Jan 3 | App Layer Programming Examples: Electronic Mail System (part 1) | Lab 12 |
chapter 13, |
||||||
23 | Jan 5 | App Layer Programming Examples: Electronic Mail System (part 2) | |||||||||
14 | 24 | Jan 10 | App Layer Programming Examples: Electronic Mail System (part 3) | Lab 13 | |||||||
25 | Jan 12 | App Layer Programming Examples: Electronic Mail System (part 4) | |||||||||
15 | 26 | Jan 17 | App Layer Programming Examples: FTP | Lab 14 | |||||||
27 | Jan 19 | Broadcast & Multicast |
chapter 10, |
||||||||
16 | 28 | Jan 24 | Database | Lab 15 |
chapter 17,
|
||||||
29 | Jan 26 | C/S Programming in Java |
Quiz
2: HTTP, Remoting, Email; Wed. January 28, 2009. @ 12:01pm-12:30pm; Room 22-119 |
|
Submit CD containing: Final Report + Software + PPT slides | ||||||
17 | 30 | Jan 31 |
review & project presentations
|
||||||||
18 | Feb 9 | Final Exam at 7:00PM, Room: TBA |
Additional Notes
Course Website & Class Participation: Students are required to periodically check the course website and download course materials as needed. Lecture notes will be made available ahead of time for students to read, print out, and bring to class. This way it is much easier to take additional notes and gain the most out of class. Several resources will be posted through the website as well. Keys to quizzes and exams are generally discussed during class as time permits but solutions will not be posted. WebCT will be used for communication and interaction, posting and submitting assignments, posting grades, posting sample exams, etc. Also it is expected that you get benefit of the discussion board by raising questions or answering questions put by others (up to 5% bonus will be granted based on your active participation and the usefulness of the material you post).
Attendance: It is very important to attend all classes (both lectures and labs). Attendance will be checked at the beginning of each class. Missing more than 5 lectures will result in a DN grade without prior warning. To avoid being considered as absent, an official excuse must be shown no later than one week of returning to class. There is no penalty for the first two absences, after that you lose one full percentage per absence.
No make up quizzes or exams will be given.
Re-grading policy: If you have a complaint about any of your grades, discuss it with the instructor no later than a week of distributing the grades (except for the final). Only legitimate concerns on grading should be discussed.
Office Hours: Students are encouraged to use the office hours to clarify any part of the material that is not clear; however the instructor will only provide hints if it is an assigned task but not solve it.
Lab Guidelines: The lab is an integrated part of the course. It is highly important to attend all labs and accomplish all tasks. There will be a number of graded labs (12%) and three programming quizzes (13%). Lab projects are to be done in group of 2 or 3 students. However, quizzes are NOT group work. Related concepts and example programs for each lab will be explained in the lecture. The instructor will go briefly through the lab material then students will be asked to do the lab project (s) and one member of the group should submit their work through WebCT (no other means of submission will be accepted). If you fail to finish the assigned work during the lab, your group should finalize it at home and submit in the WebCT (but no later than the next laboratory session). Throughout the labs, students will gain hands-on experience on using Visual Studio .NET and SharpDevelop IDE software packages.
Term Project: Form groups of two or three students, pick up a relevant client/server application and go through all different phases of software development; innovative ideas are highly encouraged. (More information about deliverables on WebCT).
Academic honesty: Students are expected to abide by all the university regulations on academic honesty. Cheating will be reported to the Department Chairman and will be severely penalized. Although collaboration and sharing knowledge is highly encouraged, copying others work without proper citation, either in part or full, is considered plagiarism. Whenever in doubt, review the university guidelines or consult the instructor.
Courtesy: Students are expected to be courteous toward the instructor and their classmates throughout the duration of this course. Talking while someone else is speaking will not be tolerated. Furthermore, all cell phones must be turned off during class. In addition, students are expected to be in class on time. Late arrivals will disrupt the class session. If you are 15 minutes late, you will be marked as absent and will not be permitted to enter the class. More importantly, you are not allowed to leave the class unless it is an urgent matter. To contact your instructor, please use email through WebCT whenever possible and avoid using phone calls or written notes. When necessary to send an email through the university email system, please indicate SWE344-081 in the "Subject" field of your email, e.g. SWE344-081: Question about chapter 1.
888 Best of luck!! 888
Programming Windows with C Sharp, MS Press, by Ch Petzold
Visual Studio C Sharp Book
Introduction to Design Pattern in C Sharp
Thinking in C Sharp
Web Applications with C Sharp
Windows Applications with C Sharp
Web Services with C Sharp
A Programmer's Introduction to C Sharp
C Sharp Language Reference
C Sharp Essentials of Object-Oriented Programming
C Sharp Essentials 2nd Edition, O'Reilly
C Sharp Developer's Guide to ASP.NET, XML, and ADO.NET, Addison Wesley
C Sharp Primer, A Practical Approach, Addison Wesley
Advanced C Sharp Programming, McGraw-Hill
C Sharp.Net Web Developers Guide, Syngress
C Sharp Bible, Wiley
C Sharp Cookbook, O'Reilly
C Sharp 2005 for Dummies, Wiley
Programming C Sharp
C Sharp for Java Programmers
From Java to C Sharp - A Developer's Guide, Addison Wesley
Visual C Sharp .Net Developer's Handbook
Visual C Sharp .Net Programming
Visual C Sharp 2005 - How To Program
Visual C Sharp 2005, A Developer's Notebook
Advanced Socket Programming [Java]
ICS 343 - Fundamentals of Computer Networks (Fall 2007-2008)
Etherpeek [WildPackets]
more will be added soon ........................................
Copyright © 2008 Dr. El-Sayed El-Alfy, King Fahd University of Petroleum and Minerals
SINCE DEC. 16, 2008