Department of Computer Science
National Yang Ming Chiao Tung University

Introduction to Network Programming

 

Semester: Fall 2021

Level: Undergraduate

Instructor:

Prof. Shie-Yuan Wang (王協源)

Email: shieyuan@cs.nctu.edu.tw

Office: EC413

Office hours: Mondays CD

Phone: (03) 5131550

Laboratory: Network and System Laboratory

URL: http://www.cs.nctu.edu.tw/~shieyuan 

Course Webex Link:

       https://nycu.webex.com/meet/nsl.110np

Course Home Page:

http://www.cs.nctu.edu.tw/~shieyuan/course/networkProgramming/2021

Course Announcement and Discussion Forum:

        The e3 course platform

Teaching Assistants:

伍英華 stud4063294@gmail.com             Phone 54706           Office: EC215

林政達  actf5795nb8@gmail.com            Phone 54706           Office: EC215

郭乃恩  nekuo.cs09@nycu.edu.tw             Phone 54706           Office: EC215

李晉廷  alan870218@gmail.com            Phone 54706           Office: EC215

魯家瑜  a46382340@gmail.com            Phone 54706           Office: EC215

 


General Information

Course description:

This course covers TCP/IP network programming using Berkeley sockets as the application program interface. After an introduction to the concepts of computer networks, TCP/IP protocols, and sockets, TCP/UDP sockets and their example client-server programs are presented. The second half of the course covers advanced topics including I/O multiplexing, threads, non-blocking I/O, client-server design alternatives, etc. Along the semester, three mini-program assignments will be given. A mid-term exam and a final exam will be held to evaluate whether a student can use the taught network concepts and programming techniques to correctly develop his/her own network programs.

Prerequisite:

1.     C (or C++) programming skills

2.     Computer networks (highly preferred but not absolutely required)

3.     Operating Systems (preferred but not absolutely required)

Lectures:

The course meets on Mondays from 3:30 pm to 4:20 pm and on Thursdays from 10:10 am to 12 pm, in EC 015 room.

Coursework:

  • Read the textbook
  • Write mini-programs homework (each student needs to write his/her own programs)
  • Take mid-term and final exams 

Course Requirements:

  • 40% Mini-programs homework
  • 10% Class participation (Roll calls will be randomly conducted.)
  • 25% Mid-term exam
  • 25% Final exam

 

Exam Policies:

  • Because two cheating cases each using a cell phone were caught in the final exam of the “Introduction to Computer Networks” course of the 2020 school year, if cheating is caught in the mid-term or final exam in this course, the whole semester grade of the cheater will be set to 0.
  • When taking the mid-term exam or final exam, the cell phone of the student must not be placed on the table or is with the body of the student. It is required that the student should not bring his/her cell phone into the exam room. If the student still decides to bring his/her cell phone to the exam room, the cell phone must be placed inside a bag and must not be taken out during the whole exam. Otherwise, it is considered as cheating in the exam.
  • During the exam, if the student decides to go to the rest room, he/she must not take the cell phone with him/her.  Otherwise, it is considered as cheating in the exam.

Coursework Policies:

·       Late homework submissions will be punished.

o   Every report/program demonstration should be submitted or performed by the deadline.

o   The penalty for a late submission is: Its final score = its original score * (3/4) ^ #_late_days. 

·       Discussions are allowed and highly encouraged.

·       However, when writing homework programs, “copy & paste” must not be used.

·       Students’ homework programs will be sent to an online comparison system to detect whether or not “copy & paste” is used to make the programs. Once found, all involved students (including the students who let other students copy his/her program code) will get a score of 0 for this homework. 

Textbook

·       W. Richard Stevens, UNIX Network Programming, Vol. 1, Third Edition, Addison-Wesley, 2004. (Cheap used books can be purchased on the Amazon book store. Also, the ebook of this book can be found on the Internet.)