Homework 2
Due Friday, April 27

Problem I:

Here you will so some calculations regarding Fourier series, very similar to what is discussed in our printed lecture notes.

You will be asked to do some graphing. I require that your graphs be .eps files, and that they be included in your .lyx or .tex file in which your solution to this problem is written up. In other words, these graphs will appear in the midst of your writeups, NOT on separate pages. Both LyX and LaTeX allow easy inclusion of Encapsulated Postscript, and you are required to do this.

I recommend that you use either gnuplot or jgraph to generate Encapsulated Postscript files.

We will assume we are transmitting the string 10111 repeatedly at the rate of 2 million bits per second. A 1 is represented by +1, a 0 by -1, as in the notes. We are not using any special coding, e.g. 4B/5B.

Graph the truncated Fourier series up through the n-th harmonic, for n = 1, 2, 3, 4, 5, 6, 7, 8. Use Yacas to find the coefficients an and bn, instead of evaluating the integrals yourself; I have installed the program in Pub/Yacas in my home directory on the CSIF PCs. However, you are required to set up the integrals for the case n = 1. These must be set up so that any calculus student could evaluate them, even if he/she has never heard of networks, x(t), etc.; the string "x(t)" must NOT appear in the integrands of your integrals.

Problem II:

In this problem, you will be writing versions of the ftp and ftpd programs, with some special features. Name your programs myftp and myftpd.

The command-line form of myftp will be:

myftp server_IP_address

Have myftp print out a prompt symbol, say `>', to invite user commands. The latter can be one of the following:

ls 
get remote_file_name local_file_name
cd directory_name
quit

These all work in manner similar to ftp:

Note that your client and server must be fully general, workable on all UNIX systems. So for example suppose you have a friend who works at Sun Microsystems and you give him/her your client source code. Then if you run your server on, say, pc12, your friend should be able to download your files--even though he/she does not have an account at UCD.

Your cd and get commands need not deal with "." and ".." notation.

This even affects your testing of your programs. The fact that CSIF machines mostly share a common file system, except for /tmp, is clouding the testing picture. In order to have the clearest test, try downloading a file from /tmp.