Term Project - Choose Your Own Fun
Proposals due: Tuesday, October 29, 2002
Presentations: Tuesday, December 3, and Thursday, December 5, 2002
Final submission: 4:00 PM, Friday, December 6, 2002

You may choose your own topic for the final project. Choose a topic related to operating systems and study it in more detail than we have in class. Your project should include programming, but the amount may vary from topic to topic. A formal research paper and brief in-class presentation are required.

You may work individually or in groups of two or three for the term project. Groups must be formed by Thursday, October 24, 2002.

The proposal. Please start thinking about a topic right away and come to me with your ideas. By Tuesday, October 29, 2002, submit a proposal, no more than one page in length, that describes your topic, what you plan to investigate, and how you plan to go about it. If you will need access to any special hardware or software, include that in your proposal. Submit as a postscript file turnin.ps or PDF file turnin.pdf.

The paper. This is to be a formal research paper, and should be organized as such. You should begin with a title, author list, and abstract. The main body of the paper should be organized into sections including (i) an introduction in which you describe the general topic and the particular aspects you will be examining, (ii) one or more sections comprising your main text, where you describe what you have done, how you have done it, and what you have learned, (iii) a conclusion, which should include ideas for future investigation into your topic which were beyond the scope of your paper, and (iv) a complete list of citations. I can provide examples of papers that fit the expected format.

Proper English and a good technical writing style are important. Writing well is very difficult - it is an iterative process and cannot be done all at once. Be precise and be concise. Group members should proofread and make suggestions about each other's writing. Check your spelling and grammar carefully. If you would like, I can take a look at a draft when you have one available. A reasonable length might be 10 single-sided pages, using 1.5 spacing, one inch margins, and a 12-point Times Roman font (or as close as you can come). Please do not adjust margins and font sizes to force a certain length. Length is not important - content and quality are. Papers shorter than 10 pages or longer than 20 pages are acceptable, if the length is appropriate for the content.

Submit as a postscript file paper.ps or PDF file paper.pdf by 4:00 PM, Friday, December 6, 2002.

The project. You should submit your source code and instructions on how to build and run it. The software should be described in the paper. For programs that run on systems other than the CSLab Unix systems, you will need to make arrangements to demonstrate the program. Others may wish to schedule a demonstration as well. Source code should be submitted and demonstrations completed by 4:00 PM, Friday, December 6, 2002.

The presentation. Each group will present a summary of their work to the class. Include background information on your topic, a description of what you did, and a summary of what you learned. Software demonstrations may also be appropriate. Prepare slides or web pages. Rehearse your presentation, paying special attention to timing. Our schedule will be tight, so groups will not be allowed to run over the alloted time. Depending on the number of groups, there may be as little as 10-15 minutes available per group for your presentations. Presentations will take place in class on Tuesday, December 3, and Thursday, December 5, 2002. All group members must participate in the presentation. Attendance is required at both presentation sessions, not just when your group is speaking.

Grading. This project is included in the "Homework and Projects" portion of the course grade, which is 60% of the total. This final project accounts for 25% of the course grade, meaning the other projects and homeworks combine for 35% of the course grade. The grade will be based on all aspects of the project, including the design, documentation, style, and correctness of the software developed, the content and writing style of the paper, and quality of the presentation.

Choosing a topic. Here are some ideas to consider when choosing your topic:

  • Contributions to an open source project - could include modifications to the FreeBSD or Linux distributions, even the kernel (A dedicated lab computer can be made available to each of a few groups)
  • A more detailed simulation of some aspect or aspects of operating systems, possibly with a GUI, to effectively demonstrate important concepts in operating systems
  • OS issues arising in high-end web servers
  • Applications of semaphores or other synchronization techniques
  • How (insert OS here) handles (insert important OS issues here)
  • Sockets and applications
  • Mass storage systems, high performance file systems, file system safety and repair
  • OS issues in autonomous systems, embedded systems, or real time systems
  • Emulators - build your own or enhance an existing one
  • Protection and security issues, encryption
  • Distributed operating systems
  • These are just ideas, and you should not restrict yourself to this list. I hope everyone can find an appropriate topic that they find interesting.

    Honor Code Guidelines

    Collaboration within a group is unrestricted. Since each group is working on a different project, you are free to discuss your projects with each other. If you wish to use or refer to any software libraries or outside source code beyond the standard language (C, C++, Java) libraries, check with me first. All sources must be cited properly. If in doubt about anything related to Honor Code, ask now and avoid problems later!