Project Information
CMPS 122, Winter 2005
Every student in CMPS 122 is required to complete a final project or paper on a subject of his or her choosing. The only requirement for the topic is that it be related to computer security. The project need not involve writing code or running experiments; it can be a more in-depth exploration of a topic covered in class, a review of several technical papers in the field, or a discussion of the ethical and social implications of computer security issues.
List of topics
This is not an exhaustive list of topics—you're welcome to do something not on this list. If you'd like to do this, please talk with me via email or during office hours to verify that your project topic is reasonable.
- Review several research papers
- Analyze the security of a particular system or piece of software
- Propose your own cryptographic algorithm and evaluate it
- Compare the security or performance of several cryptosystems
- Evaluate security products (firewalls, secure operating systems, software, etc.)
- Build a secure file system using existing tools
- Explore ways to write more secure code, or compare existing approaches
- Investigate issues in
- Digital rights management
- The tradeoff between security and privacy in an online society
- Distribution restrictions for cryptographic algorithms and software
- Write your own code snippet to compromise (via stack smashing or format string hacking, presumably) an existing program (NOTE: this requires that you have your own, non-networked computer system on which to experiment). This should be an already-existing program; writing your own program and then exploiting it doesn't count.
Remember, choosing a topic related to security but not on this list is fine (and even encouraged).
Important dates
- Thursday, February 3: 1–2 paragraph description of project topic due.
- Tuesday, February 15: plan for project due (includes any references, plans to write code, etc.).
- Monday, March 14: final paper due at 8 PM.
Project mechanics
Project checkpoints
For each of the two checkpoints, you'll need to submit (on unix.ic) a paragraph or two telling me where you are with your project. The goal of the checkpoints is not to make you spend a lot of time on the checkpoint itself, but rather so that I have an idea of whether you're keeping up with where you need to be. The checkpoint itself should take around 15–30 minutes if you've been working on your project all along.
Final paper
Your final paper should be 6–8 pages long (single spaced), or about 2000–3500 words. I'm not going to count exactly, but a paper that's shorter than this probably won't have enough content to get a good grade. Your paper will be graded in two areas:
- Technical content: how well you describe the issue, how well your paper explains or addresses it, and how well you make use of existing work (papers, code, etc.)
- Writing style: As computer scientists, you need to be able to communicate. You will be graded on spelling, grammar, writing style, paper organization, and proper use of references. I strongly suggest that you use a word processing program that has a spell-checker, and that has good templates for papers.
Papers with good technical content that are poorly written may not receive a good grade. Similarly, papers with poor technical content that are written well may receive a better grade than if they were both poorly written and full of nothing.
I encourage you to seek help (if necessary) with your writing. There are plenty of resources on campus to help you learn to be a better writer; please take advantage of them.
Last updated 10 Mar 2005 by Ethan L. Miller (elm at ucsc d0t edu)