Connect with Central Hub. Public Domain Image: Braude College Logo

Client Server Systems and Parallel Programming 31666
Course Home Page

Electronic and Electrical Engineering Department

Site owner: Samy Zafrany

Client Server Cloud Computing

Course Program

English sylabus
Hebrew sylabus
Course Introductory Slides

Official Book Lecture Notes

  1. We will be using official slides for the Tanenbaum Computer Networks book (4th Edition).
  2. Students are welcome to download the full set of slides for all book chapters with source code and additional materials from Prentice Hall Publishing Company web site:
  3. Andrew Tanenbaum, Computer Networks, Fourth Edition
    Prentice Hall PTR Publishing Company

Course Lecture Notes

Course lecture notes are based on the book slides, but contain some modifications and adaptations to our special course program. The course slides are prepared during this semester and are subject to more changes and modifications, so it is not advised to print them at this early stage. If you find error or missing items, please report to: Samy Zafrany

line separator

Text Tutorials

  1. Sockets programming in Python - IBM
  2. Computer Networks and Network Programming
  3. Client-server communication
  4. The Little Book of Semaphores, Allen B. Downey
  5. HTML Made Really Easy, James Marshall
  6. HTTP Made Really Easy, A Practical Guide to Writing Clients and Servers, James Marshall

line separator

Video Tutorials

  1. Computer Science 162 - Lecture 1: Operating Systems and System Programming
  2. Client Server Introduction - Berkeley CS 61A
  3. Introduction to the OSI Model - Professor Isaias Leiva 2011
  4. Introduction to Networking - Professor Isaias Leiva
  5. The Little Book of Semaphores Lecture by Allen B. Downey - Book and Video
  6. Introduction to Multiprocessing in Python - Python Conference 2009

line separator


  1. Introduction to Computer Networking Course Notes by Dr. John T. Bell,
    Department of Computer Science, University of Illinois, Chicago
  2. Principles for Networking Protocol Design
  3. An Introduction to Python Concurrency - David Beazley
  4. RFC Searchable Database, maintained by IETF
  5. RFC 3232 - Well Known Ports
  6. The Sputnik Crisis - The day the Internet started rolling
  7. Mathematics Web Server

line separator


  1. We will be using the Python Programming Language.
    The link above contains tutorials, books, and software downloads for the course
  2. The smallest HTTP server
    Unzip this zip file int a directory and run the program to get a working http server. Read the directions inside the code.

line separator


Project 1

Project 2

Project 3

Project 4

Project 5

A Gentle Introduction to Multi-threading. This is a light introduction to the subjects of running multiple threads and multiple cooperating processes, concurrently, in Python.

Project 6

Download the full set of all the parallel programming examples and assignments that we did in class and lab!
These include the "too much milk" programs, parallel prime computation, Leibnitz-Gregory formula for approximating the number PI, etc.
A Gentle Introduction to Multi-processing, parallel programming, process communication and synchronization. This is a light introduction to the subject of parallel programming with cooperating processes, in Python. Synchronization primitives (like locks, semaphors, and monitors) will be covered.

Project 7

Producer Consumer Computing Model.
Download the seven sorting algorithms you need for this project
Great YouTube movie to understand sorting algorithms!

Project 8

DataBase Management Client/Server.
Download all the files needed for this project

line separator


line separator

Kernighan's Law: Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.