CSE 5462:  Network Programming (3 credits)

Instructor:         Prasun Sinha (sinha.43@osu.edu)

Class timings:    T Th 2:20PM-3:40PM BE0144

Office hours:    Wed and Thu: 12pm-1pm, DL 791 (You can also email me to set up an appointment outside these hours)

Office hours (TA):    Tue: 1pm-2pm, Fri: 11am 12pm. BO 109

TA: Hansey Chen (chen.4800@osu.edu)

Discussion Group: http://groups.google.com/group/cse5462au16

(Apply for membership by clicking on the link if you are not a member)

Official Syllabus

Please note that we will not be using NesC or TinyOS in this semester but the concepts to be investigated are the same as in the main syllabus. This course focuses on learning socket programming for experimenting on real networks and ns-3 for large-scale simulations. Students are expected to have some background in networking as well as C/C++ programming before entering the class.

Note: Use of any electronic equipment (smartphones, tablets, laptops etc.) is not allowed in the class unless medically required.

Note: Lab1 is to be completed individually. Lab2 and onwards, and the projects are to be done in groups of 2.

Lab 1 (example1, example2, example3, example4, expected-output)

Lab 2 Use the images in the project1 website for testing your program

Lab 3

Lab 4

Lab 5


Project 1

Project 2


All demos will be in CL112


Aug 23: Unix, Makefile, lab1 discussion

Aug 25: Socket Programming, Beej's Guide to Network Programming, finalize groups


Aug 30: common programming pitfalls and Q&A on lab1 (by Hansey Chen)

Sep 1: no lecture

lab1 demo and code submit


Sep 6: C programming, demo tcp socket example code

Sep 8: lab2 discussion, demo troll, demo udp socket example code

Sep 9 (Friday): lab2 demo and code submit


Sep 13: project1 discussion, delta list

Sep 15: no lecture

lab3 demo and code submit


Sep 20: linked lists, checksum

Sep 22: retransmissions, RTT, RTO


Sep 27: circular buffer

Sep 29: no lecture

checkpoint1 demo and code submit


Oct 4: no lecture

Oct 6: no lecture


Oct 11: C++

Oct 13: autumn break


Oct 18: C++, python, ns3, project1 discussion

Oct 20: no lecture

checkpoint2 demo and code submit


Oct 25: ns3

Oct 27: no lecture


Nov 1: lab4 discussion

Nov 3: no lecture

project1 final demo, code submit


Nov 8: lab5 discussion

Nov 10: no lecture

lab4 demo and code submit


Nov 15: no lecture

Nov 17: no lecture

lab5 demo and code submit


Nov 22: project2 discussion part1

Nov 24: thanksgiving day


Nov 29: project2 discussion part2

Dec 1: no lecture

Dec 6: no lecture

project2 final demo, code submit



Prerequisites:    A course in networking, and a course in C programming

Reading Material

Safari: http://proquest.safaribooksonline.com/book/programming/unix/0131411551
If accessing from outside OSU click
here to sign in and then click here.



Grading Policy


5 Labs (6 points per lab)


Project 1


Project 2


Team Formation: You can either work by yourself or in a group of 2 (recommended). To the extent possible, please make sure that your group partner is a motivated and hard-working student.


Code Reuse Policy

Reusing code from previous or current students (other than your group member) is not acceptable.

Studying other similar example code or code snippets from the Internet is a good idea.  But, I strongly encourage developing your own code from scratch so that you learn the most. 

Academic Misconduct

Labs and projects must be your own or your groups work. High-level discussion of assignments is encouraged, but the more specific your discussion, the closer you come to cheating. The policy on collaboration with others is fairly liberal -- but please don't be tempted to test its limits.  Certain things clearly will not be permissible (e.g., passing off as your own the work of someone else). If you have doubts about the middle area, stay out of it; ask your instructor for assistance.  Violations are surprisingly easy to detect and they must and will be dealt with according to OSU rules on academic misconduct.


There is one other rule about professional ethics:

Please note that this last rule applies even if you have previously taken the course and you think it might save you some time to turn in an old solution. Assignments may change in subtle ways from one semester to the next. Any lab/project that gives evidence of having been prepared for a previous course offering will receive zero credit.  Moreover, if there is reason to suspect you got the questionable solution from someone else who took the course in a previous semester, it will be treated as academic misconduct just as if you had gotten it from someone else who is taking the course this semester.