Place: SPR 2343
Office hours: Tuesday 3-4
Thursday 5-6 (preferably warn me by email before you come)
NEW:Timetable and grading
TA: Yihua Ye:
can be reached at yhe at cs.ucr.edu
Office hours: WE: 3:00-4:00
Appointments by request
Group Formation: Please form groups on your own at first. I reserve the right to shuffle group members
as happens in real life.
For grade dissemination, we will use the
: Make sure you insert your email
in your profile, since I may use it to contact you.
Also, make sure you check the announcements.
Here is the project specification
as described in class.
For next class, make sure you read the introduction to file sharing systems (white paper) below.
Our mailist list is cs179i (see lists off the main page of the department). MAKE SURE you check up the list frequently or subscribe and check your email recently. I would like you to check the list or email at least once a day.
The overview of the class
It assumes and requires 164 (Networks).
The class is a complete engineering project: desing, implementation, texting evaluation.
Teams of 2 or 3 people will be required.
The project is the development of a large scale distributed file sharing
The teams will have to design their own software and demonstrate its capabilities,
and explain their design decisions.
The development must follow industrial processes.
Evaluations: 70% Project (evaluated in installements)
20% Presentation (project description, final presentation)
10% Class participation (attendance AND class participation)
of the project (my slides).
Sources of information.
Introduction to file sharing systems:
a white paper on resource sharing systems and a presentation
You are free to choose the programming language of your choice. Python,
Java and C++ are by default acceptable. Any other
language should also be ok, but check with me first.
Your program should run in Linuc on hill.cs.cur.edu.
The python programming language: a powerful programming language and can simplify network programming singificantly.
The classic tutorial in python : http://www.python.org/doc/tut/
Python Libraries: http://www.python.org/doc/lib/
The standard Socket how-to for python is available here:
A great website for introduction to python:
There is a simple introduction to network programming with python (an echo
server and a client).
on python with introduction and some simple programs.
Resources on network programming:
* Internetworking with TCP/IP Vol.1: Principles, Protocols, and Architecture
by Douglas E. Comer (Author) (Hardcover)
* UNIX Network Programming, Volume 2: Interprocess Communications (2nd Edition)
by W. Richard Stevens (Author) (Hardcover)
* TCP/IP Sockets in C: Practical Guide for Programmers (The Practical Guides Series)
by Michael J. Donahoo, et al (Paperback ) (also in Java) introductory book.