This course introduces the concepts of network programming and also its practical detail to students. Network programming integrates the concept of software development and data communication where the main focus is how to send data between two point effienciently and securely. The current course focuses on client/server model, a de-facto model on network programming, with TCP/IP stacks. The second part of the course will focus on mobile client, both implemented with web technology and native mobile technology. The course consists on lecturers and a series of hand-on programming homework
- Explain the concepts in network programming
- Develop server application
- Develop client application
- C# and .Net Core Programming Skill (please install .Net Core 2.0 or later with Visual Studio Code or Visual Studio 2017)
- Github account
- Basic knowledge on TCP/IP operation
- HW 1 in elearning
- HW 2, instruction ,due date is 28/2/2562. Submission will be in elearning
Week 1: Overview of network programming
- Slide: Week 1 Introduction
- Network programming, what and why.
- Class Progress (7/1/2562) Slide 1 done.
Week 2: OSI model, client/server model, protocol, handshaking
- Slide: Week 2 Model
- OSI MOdel
- Client/Server Model
- Protocol: RFC, TCP/IP
- Handshaking
- Class Progress: (7/1/2562) Slide 2 page 1 - 6
- Class Progress: (14/1/2562) Slide 2 page 7 - 17
- Class Progress: (17/1/2562) Slide 2 page 18 - 29
- Class Progress: (21/1/2562) Slide 2 page 30 - 40
- Class Progress: (24/1/2562) Slide 2 page 41 - 57
- Assignment 1 (see elearning site)
Week 3: TCP connection
- Slide: Week 3 TCP
- TCP Connection Sequence
- Socket
- Class Progress: (31/1/2562) Done week 3 slide
Week 4: TCP TCP handshaking, retransmission
- Slide: Week 4 Advanced TCP
Week 5: Multiplexing, port, buffer queue
- Slide : Week 4 Advanced TCP
- Class Progress: (7/2/2562) Done week 4 slide
Week 6: UDP Stream
- Slide : Week 5 UDP
- Class Progress: (14/2/2562) Done week 5 slide
Week 7: DNS, Address Tranlation, NAT, Daemon Process, Super Server
- Slide : Week 6 DNS
- Class Progress: (18/2/2562) Done week 6 slide
Midterm exam
- 7/3/2562 9:00-12:00
Week 8: Multi-thread Programming
- Slide : Week 7 Thread
- Slide : Week 7.1 Advanced Thread
- Class Progress: (22/2/2562) Done slide week 7
Week 9: REST, RESTful, JSON, API
- TBA
Week 10: Web-based Client, part 1
- TBA
Week 11: Web-based Client, part 2
- TBA
Week 12: Android Client, part 1
- TBA
Week 13: Android Client, part 2
- TBA
Week 14: Android Client, part 3
- TBA
Final exam
- TBA
- TCP/IP Illustrated, Vol. 1: The Protocols, W. Richard Stevens, Addison-Wesley, 1994
- TCP/IP Illustrated, Vol. 2: The Implementation, Gary R. Wright and W. Richard Stevens, Addison-Wesley, 1995
- Network Programming in .NET With C# and Visual Basic .NET, Fiach Reid, Elsevier, 2004
- C# Network Programming, Richard Blum, Sybex, 2003
We expect our students to conduct themselves professionally, at least, for the following areas:
- Taking personal responsibility for class prerequisites and coming to class prepared
- Taking personal responsibility for scheduling and managing the homework
- Treating others in a respectful manner
- Plagiarism is not acceptable in any cases
- Accepting things you cannot change, working respectfully within the system to change things you can, and choosing your battles wisely
- Prepares for class by watching and studying the textbooks and readings.
- Answers in-class questions frequently
- Actively participates and frequently takes a leadership role in break outs
- Whether excused or unexcused absence, missed classes must be made up in order to earn a grade of B or higher for the semester
- To make up a class, students study the slide, work any in-class exercises on their own, write up an executive summary, and submit the executive summary to the instructor using a CMU Elearning or email (pruet@eng.cmu.ac.th) before the next class meeting start time
- Executive Summary should be a PDF file, 1 to 1.5 pages in length, professionally formatted,12 point font, 1 inch margins.
- 8 Assignments, count as 20% toward final score
- 7 of 8 will count
- 1 lowest will be dropped
- However, to be dropped, the assignment must be turned in with a reasonable attempt
- Each assignment is graded in whole numbers between 0 and 10 points
- Subjective = 2 of 10 points
- Most students will score a 1 on subjective on most assignments
- A score of 2 on subjective indicates exceptional performance and typically only 10% of students in a section will make this
- Objective = 8 of 10 points
- Subjective = 2 of 10 points
- Late Submissions
- Assignments 1 through 7
- When grading, a zero will be put in as a "placeholder" for missing submissions and changed when they are submitted
- 1 of 10 points penalty for 1 second late
- Additional 1 point penalty for each additional 24 hours late
- After 10 days late, the assignment will be worth zero points
- Assignment 8
- Due to end of semester time constraints, late submissions for assignment 8 will have the following late penalties
- 5 of 10 points for 1 second lateZero for the assignment if 24 hours late
- Assignments 1 through 7
- Midterm exam
- Cover the content of week 1 - 7
- Count 40% toward final score
- Final exam
- Cover the content of week 8 - 14
- Count 40% toward final score
Grade | Rubrics |
---|---|
A |
|
B+ |
|
B |
|
C+ |
|
C |
|
D+ |
|
D |
|
F | Otherwise |