This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: CS51 Project 1a: Words, Mere Words Due: Tuesday, 17 February 2009 at 11:59 PM Total Points: 65 (including 10 style points) This is the first part of your first long-term project for the semester. These two projects are intended to get you thinking about issues of large-scale design and iteration of code through multiple versions and stages, as well as what complications and benefits arise as a result of working with a partner. 1 Project Overview You will begin by understanding what an interface is and how it can help you write code that is extensible, maintainable, and able to be improved without a complete overhaul of the structure of your program. You will then build on the work you’ve done in the first part to create your own generative grammar, a relatively simple set of rules that defines a mini-language. You will use this grammar to make seemingly meaningful sentences, as well as determine whether a given string is a valid sentence within your language. You will then back up and move in a different direction by implementing a Markov chain babbler; this is a type of program which, rather than generating sentences based on a set of rules, takes a large text input and rearranges it with some randomness to form pseudo-sentences. (The output is usually much funnier than the input.) In the final stages, you will put together many of the earlier pieces to examine how Google and other search engines determine a website’s page rank, and attempt to understand how this notion enables us to more effectively search the Internet. 2 Pair Programming This project will be the first time we do pair programming. We’ve decided to allow you your choice of partners for this assignment. You may work with anyone else in CS51. Partners should work together (as in, both be physically present) when writing the code and understanding the assignment. You may also choose to be randomly assigned a partner. If you elect to have us assign you someone, you will probably end up working with someone 1 2 PAIR PROGRAMMING CS51 Project 1a: Words, Mere Words else in your section. We actually recommend random partner assignments, both because then you have the same TF and can easily ask joint questions after section, and because a big part of real-world software design is working with people you’ve never met before on projects that need to be finished quickly. If you decide to pick your partner, you and your partner must send an e-mail to both of your TFs before 11:59PM on Friday, February 13th stating that you wish to work together. If you do not do so, you will have your partner assignment e-mailed to you by Saturday morning. You may also e-mail your TF ahead of time and state that you wish a random partner, in which case you will be matched as soon as someone else in your section also says they want to be assigned a partner....
View Full Document
This note was uploaded on 07/26/2009 for the course COMPUTERSC CS51 taught by Professor Gregmorrisett during the Spring '09 term at Harvard.
- Spring '09