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

08.04.2011 16.00 A111
Year Semester Date Period Language In charge
2011 spring 18.01-29.04. 3-4 English Markku Kojo

Lectures

Time Room Lecturer Date
Tue 12-14 D122 Markku Kojo 18.01.2011-23.02.2011
Wed 12-14 C222 Markku Kojo 18.01.2011-23.02.2011
Tue 12-14 CK111 Markku Kojo 15.03.2011-15.03.2011
Wed 12-14 C222 Markku Kojo 16.03.2011-16.03.2011

Exercise groups

Group: 1
Time Room Instructor Date Observe
Tue 14-16 D122 Aki Nyrhinen 24.01.2011—18.03.2011
Tue 14-16 CK111 Aki Nyrhinen 21.03.2011—01.04.2011

Luentosali on vaihtunut! Kurssi luennoidaan englanniksi. Kurssille perustettaneen lisää harjoitusryhmiä.

The lecture room has changed! Due to limited resources, the attendance to the course may need to be restricted. There can be more exercise sessions.

General

The course is an intermediate module optional course.

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

 

Students accepted to the course

 

 Course Exam: Fri April 8, 2011 at 16:00-20:00, A111

 

 

 

 

 

Completing the course

The course can only be completed by active participation to the course. Active participation means being active in the weekly exercices, completing the programming exercise and the programming project, 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

Teaching and Other Course Arrangements available here

 

The course includes

  • 28 hours of lectures  (4 h / week)
  • 7 weekly exercises
  • programming exercise
  • programming project
  • course exam (2,5 hours)

Passing the course by active participation requires

  • taking the course exam (max. 25 points available,  min. 11 points required for passing)
  • participating actively in the weekly exercices that may give max. 8 points. At least one (1) point is required for passing.
  • programming exercise (max. 4 points)
  • programming project (max. 23 points available,  min. 9 points required for passing)

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

 

Exercises:

  • Active participation to the exercises is highly recommended and known to be 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 to a name list the tasks that she/he has completed (the name list is provided by the instructor). A marked task means that the student is prepared to present 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) execise point and 5/6 of max. ETPs gives the maximum 8 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-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 (Feb 17-25, 2011)  - Exercise period is over.

Programming exercise assignment.

NOTE: Problem with Ukko cluster connection blocking has been solved.  Programs that use fork() system call are now strictly prohibited to test on the "main frame" Unix computers of the CS department (i.e., melkki, melkinpaasi). Preferably use the computer which you are sitting at, or in remote use, please select  some nodes of the department high performance cluster Ukko (ukko001.hpc.cs.helsinki.fi - ukko240.hpc.cs.helsinki.fi) for remote login when testing these programs.

 

Project

Project Tasks
Project Instructions

 

Example Programs from Course Book(s):