CSCI-E215 Projects

Introduction

There are six assignments for csci-e215. You may work on your projects on any system, but the program has to compile and run on the Unix system at the Science Center.

Important Facts

Access to Projects

Some of these projects are password-protected. Your userid is your login name on ice. Your password is the last four digits of your Harvard ID.

Assignment 6: Network Programming

For this assignment you have a choice. You can extend your pong solution into a two-player network-based game, or you can extend the web server shown in class and in the text.

Choice 1: wsng

A web server is much like a shell. A web server lists directories, displays files, and runs programs for users on other machines.

For this project you will take a bare-bones web server and make it a useful, flexible program.

Choice 2: netpong

Take your solution to pong, add some network code, play the game with other people across the Internet. The ideas and techniques in this program are the basis for network chat programs and other interactive network applications.

Assignment 5: smsh

The kernel will run programs if you ask it correctly: (fork, exec, wait). A shell is a program that allows convenient access to file and process managements.

The shell is also a programming language. Writing your own shell is the only way to understand what is really going on when you run commands.

Project 4: pong

Ritchie and Thompson at Bell Labs wanted to keep playing their space travel video game so they built software to support it. The result: Unix.

Jobs and Wozniak worked for Atari developing the video game 'Breakout'. The skills developed there went into the original design for the Apple.

Assignment 0: Self Test

Do these exercises on your own If you find these difficult, you are likely to find this course too difficult.

If you would like some feedback on whether you are prepared for the course, send your solution to problem 10 to molay@fas.harvard.edu

Project 1: llast

The who command lists the people using the system now. But what about history? Who was logged in in the past, and for how long was each logged in? The last command reports the login history, in reverse order, for the current machine. Our first project is to write a version of last

Project 2: tarc

The tar command copies a directory tree to a single archive file (or device, like a tape). This archive file stores the directory structure and all the file attributes. The original tree and its attributes can all be restored from that archive. For this assignment you will write the part of tar that creates an archive.

Project 3: sttyl

The stty command is used to view and modify the terminal control settings for your console. In other words, stty allows you to determine how your current login session (for example) processes input and output, and to control these parameters.