Time:Thursday 11:10pm-12:00pm
Place: SPR 2343
Office hours: Tuesday 3-4
Thursday 5-6 (preferably warn me by email before you come)
TA: Yihua Ye:
can be reached at yhe at cs.ucr.edu
Office hours: WE: 3:00-4:00
Appointments by request
New
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
blackboard
: 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
system.
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)
The explanation
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:
http://www.amk.ca/python/howto/sockets/
A great website for introduction to python:
http://heather.cs.ucdavis.edu/~matloff/python.html
There is a simple introduction to network programming with python (an
echo
server and a client).
http://heather.cs.ucdavis.edu/~matloff/Python/PyNet.pdf
My
site
on python with introduction and some simple programs.
Resources on network programming:
* Internetworking with TCP/IP Vol.1: Principles, Protocols, and Architecture
(4th Edition)
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.