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

07.03.2017 16.00 B123
Year Semester Date Period Language In charge
2017 spring 17.01-01.03. 3-3 English Markku Kojo

Lectures

Time Room Lecturer Date
Tue 12-14 B222 Markku Kojo 17.01.2017-28.02.2017
Wed 12-14 B222 Markku Kojo 18.01.2017-01.03.2017

Exercise groups

Group: 1
Time Room Instructor Date Observe
Wed 14-16 B120 Markku Kojo 25.01.2017—01.03.2017

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.

 

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 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),
  • 6-7 weekly exercises,
  • a programming exercise, and
  • a course exam (2,5 hours).

Passing the course by active participation requires

  • taking the course exam (max. 38 points available,  min. 17 points required for passing the course),
  • participating actively in the weekly exercices (max. 15 points available; at least one (1) point is required for passing the course),
  • completing the programming exercise (max. 7 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. Exercise tasks that involve program code should compileable and runnable in the exercise session using CS Department Unix (Linux) computers.
  • 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. Some of the tasks are delivered to the instructor (in advance) as separately instructed for each of the tasks.
  • Each completed exercise task gives one exercise task point (ETP).
  • In total there will be approx. 6 exercise tasks per week.  Roughly 1/4 ETPs out of max. ETPs gives one (1) exercise point that is the minimum required and roughly 5/6 out of max. ETPs gives the maximum of 15 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 exercises

 

Programming exercise (March 2 - March 12, 2017)

Programming exercise assignment.

 

The programming exercise has started - UNIX_TL service is up and running. Hard work and good luck!

 

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, and department's high performance cluster ukko nodes, except the ukko nodes that are specifically allocated for the course. For allocated ukko nodes see below. Preferably use the computer which you are sitting at, or in remote use, please ONLY  use one of the ukko cluster nodes allocated for the course.

Currently ukko cluster nodes

ukko126.cs.helsinki.fi

ukko127.cs.helsinki.fi

ukko128.cs.helsinki.fi

are allocated for the course and available for remote login for testing such programs, including the Programming exercise.  Remote login to ukko nodes is not available from outside of the CS department. In remote use, you may access the ukko nodes via melkki, melkinpaasi, or melkinkari.

NOTE: The three ukko nodes listed above are guaranteed to have connectivity with the server node, but the PC computers at the CS Department (e.g., in classrooms) should now work as well.

 

Example Programs from Course Book(s):