Skip to content

Latest commit

 

History

History
161 lines (131 loc) · 8.33 KB

README.md

File metadata and controls

161 lines (131 loc) · 8.33 KB

261433 Network Programming

Course Overview

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

Course Learning Objectives

  1. Explain the concepts in network programming
  2. Develop server application
  3. Develop client application

Prerequisites

  1. C# and .Net Core Programming Skill (please install .Net Core 2.0 or later with Visual Studio Code or Visual Studio 2017)
  2. Github account
  3. Basic knowledge on TCP/IP operation

Attendance Sheet

Please see it here

Assignment

  1. HW 1 in elearning
  2. HW 2, instruction ,due date is 28/2/2562. Submission will be in elearning

Course Topics

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

Required and Recommended Textbooks

Required Textbooks

  1. TCP/IP Illustrated, Vol. 1: The Protocols, W. Richard Stevens, Addison-Wesley, 1994
  2. TCP/IP Illustrated, Vol. 2: The Implementation, Gary R. Wright and W. Richard Stevens, Addison-Wesley, 1995

Recommended Textbooks

  1. Network Programming in .NET With C# and Visual Basic .NET, Fiach Reid, Elsevier, 2004
  2. C# Network Programming, Richard Blum, Sybex, 2003

Recommended Reading

  1. Bandwidth vs. Latecny vs. Throughput 1, 2,

Grading Rubrics

Professional Conduct

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

Attendance including Active & Enthusiastic Participation

  • 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

Making Up Missed Classes

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

Assignments

  • 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
  • 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

Exams

  • 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

Semester Letter Grade Rubrics

Grade Rubrics
A
  • Professional conduct
  • Attendance (or make ups) in all 15 classes
  • All 8 assignments submitted with a reasonable attempt
  • The average of the highest 7 of 8 assignments should be 9.0 or higher
  • Obtain at least 35% of midterm and final exam score
  • Top 5 in both midterm and final exam
  • Completed the course
B+
  • Professional conduct
  • Attendance (or make ups) in all 15 classes
  • All 8 assignments submitted with a reasonable attempt
  • The average of the highest 7 of 8 assignments should be 8.5 or higher
  • Obtain at least 30% of midterm and final exam score
  • Top 10 in both midterm and final exam
  • Completed the course
B
  • Professional conduct
  • Attendance (or make ups) in all 15 classes
  • All 8 assignments submitted with a reasonable attempt
  • The average of the highest 7 of 8 assignments should be 8.0 or higher
  • Obtain at least 30% of midterm and final exam score
  • Completed the course
C+
  • Professional conduct
  • All 8 assignments submitted with a reasonable attempt
  • The average of the highest 7 of 8 assignments should be 7.5 or higher
  • Obtain at least 25% of midterm and final exam score
  • Completed the course
C
  • Professional conduct
  • All 8 assignments submitted with a reasonable attempt
  • The average of the highest 7 of 8 assignments should be 7.0 or higher
  • Obtain at least 20% of midterm and final exam score
  • Completed the course
D+
  • Professional conduct
  • The average of the highest 7 of 8 assignments should be 6.5 or higher
  • Obtain at least 15% of midterm and final exam score
D
  • Professional conduct
  • The average of the highest 7 of 8 assignments should be 6.0 or higher
  • Obtain at least 10% of midterm and final exam score
F Otherwise