305345 Network System Programming
Home 
Semester 1, Academic Year 2007 Suradet Jitprapaikulsarn, PhD
Overview | Objectives | Instructional Approach | References | Course outline | Evaluation

Resources
» Home
  Go back to my home page.
» Announcement
  Announcement for this class.
» Academic Policy
  The academic policy enforced in this class.  Students are required to understand and followed this policy.
» Score
  The score for each student.
» Work submission
  Where to submit your assignments.
» Lecture Notes
Notes for this class.

7 habits of highly effective students
Be punctual - To be a good professional, we need to be punctual from the starting.

Ask questions - The more you ask, the more you understand, the less confused.

Review materials every day - The sooner you review the materials, the better you understand the materials.

Be moderate in resting and eating - Few people receive good score by cramming everything in a few nights.  Not eating can lead to several health problem, so as not enough rest.

Be organized - The better you organize your materials, the easier to remember or review.

Prioritize - Not everything receive the same level of attention.  Hence, prioritize your work to maximize the benefits.

Think positively - Positive attitude can help students through difficult time.

 

Overview
Experience is the mother of wisdom.  This course fills the void in the previous network classes by providing the students opportunities to write programs in higher level programming languages--such as C, Java, etc.--to explore the interaction between each device on the network. Topics include sockets, TCP/ICP, RPC, streaming, CORBA, .NET, and SOAP.

Objectives

This is a programming-oriented network course with emphasis on individual software development process.  After completing this course, students should:

  1. be able to apply the software engineering principles to the development of any network programs.
  2. be able to create programs to perform network-related tasks.
  3. understand the actual mechanism of the communication between network devices.
  4. be able to apply the concepts learned in the network course to create programs.
Instructional Approach

In order to be successful in this course

  1. Students are required to read the textbook before attending each class session.
  2. Every week, there will be a quiz on the subject we are going to study.  A quiz will help students prepare for the upcoming topics.
  3. There will be approximately 8 - 10 programming assignments for this course.  These assignments are designed to institute the discipline software engineering practice.
  4. Every week, students will present progress on their semester-long project.  Each project must be an actual software system for an enterprise.
References

Since many reference books are used in the class, it will be more economical to acquire only one title per student and share different titles among group members.

  1. (NPPC) นิรุธ อำนวยศิลป์, Network and Protocols Programming using C/C++, THAIDEV.COM, 2548 ISBN 974-93637-9-5
  2. (JNP-3) Elliotte Rusty Harold, Java Network Programming, 3rd Edition, O'Reilly, 2004, ISBN 0-596-00721-3
  3. (INPJ) Jan Graba, An Introduction to Network Programming with Java, Springer, 2007, ISBN 1-84628-380-9
  4. (CNP1) Douglas C. Schmidt and Stephen D. Huston, C++ Network Programming, Volume 1: Mastering Complexity with ACE and Patterns, Addison-Wesley, 2002, ISBN 0-201-60464-7
  5. (CNP2) Douglas C. Schmidt and Stephen D. Huston, C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks, Addison-Wesley, 2002, ISBN 0-201-60464-7
  6. (UNP1-3) W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking API,Addison-Wesley, 2004, ISBN 0-13-141155-1
Course outline

The following schedule is tentative only; it may change depending on the circumstances.  Note that 

Week Topics Book Section
1 Basic Concepts NPPC: Ch 1
JNP-3: Ch 1
INPJ: Ch 1
CNP1: Ch 0 - 1
UNP1-3: Ch 1
2 Starting Network Programming NPPC: Ch 2
JNP-3: Ch 2 - 6
INPJ: Ch 2
CNP1: Ch 2 - 3
UNP1-3: Ch 2
3 Socket Programming
NPPC: Ch 2, 9
JNP-3: Ch 9 - 11
INPJ: Ch 2
CNP1: Ch 3 - 4
UNP1-3: Ch 3 - 4
4 Client/Server NPPC: Ch 3
JNP-3: Ch 2 - 6
INPJ: Ch 8
CNP1: Ch 2, 3
UNP1-3: Ch 2
5 Multi-processing NPPC: Ch 10
JNP-3: Ch 5, 14
INPJ: Ch 5
CNP1: Ch 5, 9
UNP1-3: Ch 26
6 I/O Handling NPPC: -
JNP-3: Ch 4, 12
INPJ: Ch 4
CNP1: Ch 4
UNP1-3: Ch 6, 14
7 Mini project presentation -
8 Midterm -
9 Remote Procedure NPPC: -
JNP-3: Ch 18
INPJ: Ch 5
CNP2: Ch 4
UNP1-3: -
10 Synchronous Processing NPPC: -
JNP-3: Ch 13 - 14
INPJ: Ch 8 - 10
CNP1: Ch 7, 10
UNP1-3: Ch 30
11 Asynchronous Processing NPPC: -
JNP-3: Ch 13 - 14
INPJ: -
CNP2: Ch 3 - 4
UNP1-3: Ch 30
12 Web Application NPPC: Ch 5 - 6
JNP-3: Ch 7, 8, 15
INPJ: Ch 8, 9, 13
CNP1: -
UNP1-3: Ch 16, 26
13 Web Services -
14 Testing -
15 Configuration Management -
16 Term Project Presentation -
17 Final Exam -

Note that the above schedule is tentative by nature; it may change at the instructor's discretion.

Evaluation

The course evaluation will be divided equally between examinations and assignments.  The distribution of each half is shown below.  

Items Weight
Individual Assignments 20%
Group Assignments 20%
Articles 10%
Quizzes 10%
Midterm Exam 20%
Final Exam 20%

Please make sure that you have carefully read and understand the academic policy.

Note that the above description is only tentative; it may change at the instructor's discretion.



Copyright © 2007 Suradet Jitprapaikulsarn.
Last Updated June 3, 2007