Network Programming

582303
5
Networking and Services
Intermediate studies
The course gives practical and hands-on skills in designing and programming TCP/IP networking applications in a Unix environment. Prerequisites: Programming in C, Introduction to Data Communications, Operating Systems (or Concurrent Programming) and Data Structures Project, or corresponding knowledge. Recommended course book: Stevens W. R., Fenner B., Rudolf A.M.: UNIX Network Programming, Volume 1 (3rd ed.), Addison Wesley, 2004.

Exam

05.03.2015 16.00 B123
Year Semester Date Period Language In charge
2015 spring 13.01-25.02. 3-3 English Markku Kojo

Lectures

Time Room Lecturer Date
Tue 12-14 C222 Markku Kojo 13.01.2015-25.02.2015
Wed 12-14 C222 Markku Kojo 13.01.2015-25.02.2015

Exercise groups

Group: 1
Time Room Instructor Date Observe
Wed 16-18 C220 Laila Daniel 21.01.2015—21.01.2015
Wed 16-18 C222 Laila Daniel 28.01.2015—25.02.2015

General

The course is an intermediate studies optional course.

The course gives practical and hands-on skills in designing and programming TCP/IP networking applications in a Unix environment.

 

Course results are now available.

 

 

 

Completing the course

The course can only be completed by active participation in the course. Active participation means being active in the weekly exercices, completing the programming exercise, and passing the course exam. Only the course exam can be retaken, but it requires that all the other requirements of the course have been completed acceptably.

 

Teaching and Other Course Arrangements

Information on teaching and schedule is available here

 

The course includes

  • 24-26 hours of lectures  (4 h / week),
  • 7 weekly exercises,
  • programming exercise,
  • course exam (2,5 hours).

Passing the course by active participation requires

  • taking the course exam (max. 40 points available,  min. 17 points required for passing the course),
  • participating actively in the weekly exercices (max. 14 points available; at least one (1) point is required for passing the course),
  • completing the programming exercise (max. 6 points available).

The grading is based on the total points achieved. A passing grade requires at least 30 points in total.

 

Exercises:

  • Active participation in the exercises is a requirement and known to be very useful.
  • Collecting exercise points requires active participation in exercises by preparing the answers to the exercise tasks before the exercise group meets. The answers need not to be perfect, but should  be in the right ballpark. In the beginning of the exercise session each student marks the tasks that she/he has completed into a name list (the name list is provided by the instructor). A marked task means that the student is prepared to present and explain her/his answer to the group.
  • Each completed exercise task gives one exercise task point (ETP).
  • In total there will be approx. 6 exercise tasks per week.  Roughly 1/3 ETPs out of max. ETPs gives one (1) exercise point that is the minimum required and 5/6 out of max. ETPs gives the maximum of 14 exercise points.

Literature and material

 

Course Book:

Stevens W. R., Fenner B., Rudolf A.M: UNIX Network Programming, Volume 1, 3rd Edition , Addison Wesley, 2004The course covers the chapters 1-8, 11-17, 20-26 and 30 plus Appendixes A-D of the course book.

 

Course Content:

A more detailed description of the course content is available here.

 

Lecture Notes:

Lecture notes are available here.

 

Exercises:

Weekly exercisesThe last exercise (exercise 7) is now available but will not have a classroom session but the answers are emailed by Mon March 9, 2015. Remember to complete the Programming exercise (see below) on time, too!

 

Programming exercise (Feb 26 - March 9, 2015)

Programming exercise assignment.  

 

NOTE:  Programs that use fork() system call are strictly prohibited to test on the "main frame" Unix computers of the CS department (i.e., melkki, melkinkari, melkinpaasi, users, and the department's high performance cluster Ukko nodes, i.e, ukko<number>.hpc.cs.helsinki.fi). Preferably use the computer which you are sitting at, or in remote use, please ONLY  use one of the  nodes allocated for the course.

Currently ukko135.hpc.cs.helsinki.fi is available for remote login when testing such programs.

 

Example Programs from Course Book(s):