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.

 

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,

URL: http:faculty.kfupm.edu.sa/ics/alfy

Mr. Said Abdallah Muhammad

Office: 22-148-2

Phone: 2081

E-mail: said@kfupm.edu.sa

URL: http:faculty.kfupm.edu.sa/ics/said

Office Hours

SMW@10:00-11:00AM *

UMT@1:00-1:50 PM *

* or by appointment

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.

 

  1. 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.

  2. To teach students the theory and practice to develop client-server Internet applications using the socket interface and remoting.
     

 Upon completion of the course, you should be able to:

  1. Demonstrate understanding of the TCP/IP model and relevant protocols in each layer.

  2. Describe the IP addressing, Internet domain names and recognize the role of the DNS servers.

  3. Explain the operation and related issues of various common Internet applications and protocols including: HTTP, SMTP, POP, FTP, Telnet, IGMP, etc.

  4. Identify and apply various socket programming concepts and mechanisms.

  5. Use effectively the socket interface or remoting to develop Client-Server Internet applications.

  6. Practice software engineering principles and methods in building network-aware applications.
     

 

• Lecture notes and handouts
• Several web sites and e-books to be available through the course website.
 

 

Lab:

          Assignments: 12% + 3 Quizzes: 13%

25 %

Term Project (Group of 2 or 3):

           Proposal: 1%; Requirements & Design: 5%;

           Implementation: 10%; Presentation: 4%

 

                   [ Download Project Guidelines ]

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 %

 

  1. • Overview of C# and .NET Framework

  2. • C# Programming Basics

  3. • OOP, GUI, Delegates, Events and Threads

  4. • TCP/IP Protocols and Client/Server Model

  5. • Analyzing Network Packets using Network Monitoring Tools

  6. • IP Addressing and Domain Name System (DNS)

  7. • Socket Programming using C# Sockets Helper Classes

  8. • Raw Socket Programming

  9. • Asynchronous and Multithreading C/S Programming

  10. • Application-Layer Programming: HTTP and Web Applications, SMTP, POP/MIME, FTP, ICMP

  11. • UDP Broadcast and Multicast

  12. • Remoting and web services

  13. • Security and databases

  14. • Network management (as time permits)

 

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

Lab 1

     
2 Oct 13 Introduction

chapter 1 from the textbook

2 3 Oct 18 C# Prog. Essentials (1)

Lab 2

   
4 Oct 20

C# Prog. Essentials (2)

 

form groups

3 5 Oct 25 cont.

Lab 3

      
6 Oct 27 C# Prog. Essentials (3)

  

   
4 7 Nov 1 Delegates and Events

Lab 4

  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

User Interface Programming in C#- Basics and Events GUI ...

CodeProject Threading out tasks in a C#.NET GUI

  
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

Example

 

 
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,

.NET POP3 MIME Client.

A C# Implementation of Mime De-encode.

Rebex.NET POP3 Tutorial

Secure Socket Layer

Security in Network Programming

 
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

Security

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

Jan 30 before 10pm: Submit a softcopy of the report through WebCT

Jan 31: Project Presentations and Discussions & Hand-in:

 a hard copy of the final report + CD

[check the project guidelines]

 

 

18   Feb 9 Final Exam at 7:00PM, Room: TBA

 

                           

 

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


 

 

 

more will be added soon ........................................


Copyright © 2008 Dr. El-Sayed El-Alfy, King Fahd University of Petroleum and Minerals      

Hit Counter SINCE DEC. 16, 2008