By next Thursday(5-23) alternative project proposals are due. By next Tuesday(5-21) project ideas to be considered will be offered. If you or your group have an alternative project idea, send mail to Steve Petersen. (His e-mail address is petersen@cse.ucsc.edu)
For project ideas, try to harmonize with your field of study. Think creatively about how to coordinate your interests with a project. Pascal projects are encouraged, but spreadsheets, databases, or a combination of are permitted. Groups of two are highly encouraged, but up to four would be considered;however, be prepared for each person in the group to defend the project proposal independently. The group projects will be held to different standards then an individual. Work among the group must be equitably distributed. Take the projects seriously, students in the past have gained a lot from these projects.
General Information: These are four projects from which you are to select one. (Alternately, you may propose a project that is more relevant to your major or interest for consideration and approval). The project evaluation will depend on the degree to which the project meets its objectives (including correct operation). It will also be graded on style. In Pascal programs, style includes modularization (use of procedures) and comments for the program, variables, etc. In Quattro Pro, this includes correct formatting and accompanying instructions for the user. Pat Mantey has the data required in the projects. Extra Credit: Describe (and document) work done beyond that defined in this project description that you are offering for extra credit. General Hints: In Turbo Pascal, if you position the cursor on the name of a procedure and press, Turbo Pascal will give you the library reference information for that function. Project 1 - Text Manipulation - Turbo Pascal Old concepts: Loops New concepts: Reading and writing files Usage of arrays String handling Procedure ®pos¯ Summary: For this project, you will prompt the user for a series of words to count, read a text file, count the occurrence of the specified words in that file, and write those statistics back to a file. Description: First, your program will prompt the user for a filename. It will then ask the user how many words are to be counted. The number of words must be between 1 and 10 inclusive. Then, using a loop (of your choice), it will prompt the user for the specific words that are to be counted and store these words in an array. The program will then open the file and read it, one line at a time. For each line, the program is to then search for those words the user had chosen. This search will be case sensitive (so neither ®Document¯ nor ®document¯ would be a match for ®DOCUMENT¯). The program will keep a running sum of the number of occurrences of each specified word for the entire input text file in another array. When the end of the file is reached, the program is to prompt the user for a file name to use to record the statistics, writing them to the specified file. Hint: It will make your job much easier if you use the procedure ®pos¯ to locate a word in a line of text. (See the Turbo Pascal online help for details of pos.) Possible Extra Credit Items: Perform the search for words ignoring case (so ®Document¯ and ®document¯ would both be a match for ®DOCUMENT¯) Study distances between occurrences of the same word in the document. Project 2 - Statistical Analysis - Quattro Pro Old concepts: Graphing New concepts: Importing data into Quattro Pro Linking multiple spreadsheets Advanced functions Summary: You will import four text files into four different Quattro Pro spreadsheets. You will then perform some functions on the data to gather some statistics and compute some new data. Then you will link the four spreadsheets together into a fifth spreadsheet and create several graphs. Description: The first thing you will do is import several data files into separate Quattro Pro spreadsheets. The data files AK.DAT, CA.DAT, NH.DAT, and NY.DAT will be made available to you and contain the census data for Alaska, California, New Hampshire, and New York respectively. You will create a new spreadsheet and import each of these data files separately using the Comma & "" Delimited File import method of Quattro Pro, which is obtained under the Tools menu. Save the new files as AK.WQ1, CA.WQ1, NH.WQ1, and NY.WQ1 respectively. You will then calculate the totals for the following columns: LAND_AREA, POP_1980, POP_1970, BLACKS, HISPANICS, and P65_A_OVER. Then, calculate the average values for the following columns: INCOME_P_C and MEDIAN_INC. Note that you cannot simply average the column of numbers. You must weight each average by the population of that tract. You can accomplish this by creating a new column for each, which is calculated by multiplying the average by the number of people in that district. You can then calculate the overall average by summing the new column and dividing by the total number of people. Next, create a new spreadsheet (named SUMMARY.WQ1) and link in all the summary information you have gathered such that you have a table of numbers, the state names being the row identifiers and the fields of data being the column identifiers. It should look something like this: STATE LAND_AREA4 POP_1980 4 ... AK CA ... All the numeric values in the table should be linked from the other spreadsheets and not just copied in. Now you will calculate some new figures. Add to the table values for % Increase, which is the percentage of growth from 1970 to 1980 (calculated by dividing 1980 population by 1970 population minus 1), POP_P_AREA, which is the population in 1980 per unit land area (calculated by dividing 1980 population by land area), and %_MINORITY, which is a very rough estimate of the percentage of the population that are minorities (calculated by adding BLACKS and HISPANICS and dividing by the 1980 population). Now graph the three new values you have just calculated versus the states. Add all appropriate titles, legends, and axis labels. Make sure you assign each graph a name such that they will be saved with your file. Possible Extra Credit Items: Use the built in regression function of Quattro Pro to estimate the population growth from 1970 to 1980, and from there predict the population for 1990 and 2000. Use the graph annotator in Quattro Pro to indicate interesting features of the graphs you have plotted. Project 3 - Piano Player - Turbo Pascal Old concepts: Computer Graphics Music New concepts: Reading and writing files Combining graphics with music Summary: For this project, you will simulate a player piano. You will draw a keyboard on the screen. You will then read music data from a file and indicate which key on the keyboard is being played while you play the notes. Description: The first thing you will do is to draw a keyboard. Then you will read notes and corresponding durations from a file, and play those notes. The data file should contain several lines, each line containing a letter, some space, and a number or symbol indicating the length of time to play the note. An example data file might look as follows: cP 500 cP 500 gP 500 gP 500 aP 500 aP 500 cP 700 fP 500 fP 500 eP 500 eP 500 dP 500 dP 500 cP 1000 While you are playing the notes, you will indicate on the keyboard which note is being played. You may do this in any manner you wish, from a small indicator to changing the color of the entire key. Possible Extra Credit Items: Use the ®new method¯ of graphics in Turbo Pascal Develop an interactive method for a user to record music to a file for the player piano. Add ®sharps¯ and ®flats¯ to the notes. Project 4 - Utility Rate Structuring - Quattro Pro Old concepts: Formulas New concepts: Importing Data into Quattro-Pro Evaluation of Management Alternatives Linked Spreadsheets Summary: This is a real business problem. A small mutual water company with about 70 customers pumps water from its own wells and delivers water to customers. Fixed costs are insurance, bookkeeping, and an operator. (Both positions are part time employees.) Variable costs are electricity (to pump water from wells to tanks), chlorine and other supplies, and repairs. Water use of the customers varies from nearly zero (those who own their own wells) to tens of thousands of gallons per month (highest in summer when some do irrigation of yards). The problem is to develop an equitable rate structure that involves a flat charge (to cover fixed costs) and a variable charge (to cover costs associated with production and delivery of water). Description: You will be provided the use, by customer and by month, of gallons of water metered, for 1993 and 1994 (each in an ASCII text file). You will create a new spreadsheet and import each of these data files separately using the Comma & "" Delimited File import method of Quattro Pro. Save these as W93.WQ1 and W94.WQ1. For each month, you will also be given the costs associated with the operations. Create a charging function for creating monthly bills to customers that has a fixed charge and a charge dependent on the water use, such that the resulting billing for 1993 will recover all 1993 costs plus 10% reserve. Apply this same formula to 1994 and see what reserve results. Graph the total water use by month for 1993 and for 1994 on a single graph so that they may be compared. Graph costs for 1993 and 1994 also for comparison, along with the amount of ®reserve¯ that your billing function will produce for each year. Add all appropriate titles, legends, and axis labels. Note that to graph both years on one graph, you must link the necessary data into a third spreadsheet. Call this spreadsheet GRAPH.WQ1. Make sure you assign each graph a name such that they will be saved with your file. Possible Extra Credit Items: Use "what-if" capabilities of Quattro-Pro to find "break-even" values for billing function. Use extrapolation (via regression in Quattro-Pro) to project water use, costs and revenues for 1993 and 1994. Determine correlation between hours of daylight in each month and amount of water used per month, and graph results.
*** Michelle MillsSpreadsheet Modelling of Environmental Systems I am an earth science major, with an interest in modelling in environmental systems, looking at what they have done in the past, and using that information to project into the future and see what might happen given certain conditions. *** Marlene K. Fung Pascal Cash Register Change Maker. I would like to do my project using pascal to figure out monetary change like what you receive back from the cashier... how many dimes? quarters? 1 dollar bills? 5 dollars bills must be given back.... *** Rebecca Nichol Alegria Pascal Summer Concert Calendar My main menu would consist of the user choosing between: 1. Music type 2. Location (CA only) 3. Date Under each number I would have other menu's in which the user can choose from. *** Matthew Martin Bajda Pascal Walking Man and Computer I have an idea for my project using pascal in which I draw a picture of a man and a computer. The man will enter from one side and stop in front of the computer. The computer screen will begin to flash to signify that the computer is on. After a little while the computer screen will stop flashing and the man will leave the screen. *** Chikako Sakurai Kelly Sham Pascal We, Kelly Sham and Chikako Sakurai are economics major. We are planning to an inventory control program using Pascal consisting pf an inventory list by model number, product, quantity, price, and total amount. *** Dymphna Nagar Pascal Retail Price Project I thought of something,practical for my shopping habits... I want to find out how much the stores are empting my pockets everytime I go and buy something. So I want to make a program that simulates a store's cashier machine that can calculate the total price with sales tax, and the the retail price. *** Eleanor Vainshtok Pascal Basic Cookbook The idea I have for my project is to create a Pascal program that serves as a basic cookbook. The first menu will list selections such as Appetizers, Main Dishes, Desert, and Beverages. Following that menu will be even more menus that will help the user find whatever meal they would like to cook. *** Alexis B Croft Spreadsheet Instructor evaluation template *** Melanie Claire Goldberg Spreadsheet Record Organizer For my final project, I would like to design a program that will organize my music collection. I was thinking that I could include information such as format of the music (whether it is cd,album, or cassette), what genre of music it is, the record label, the date it was released, etc. Do you think this will work and if so, what do you think would be the best way to go about executing such a project? Thankyou very much for your time. Any comments and suggestions you have would be greatly appreciated. *** Everardo Rivera Pascal Unscramble Words Game The player would be given three to five chances on unscrambling the word...if he/she does, then the next level would appear with an even tougher scamble. This would go on for several levels. If the player fails to unscramble, then they would be asked if they wanted their game status(how they were rated by the game)...Well, if the player fails in whatever level or they finish, this game status prompt will appear to ask them so... I will gradually come up with more things as I am creating it....like add a passcode which will be given at the end of every level so if the player wishs to continue where they left off it can be so...This would avoid the frustration to start over every time they lose... just a thought... *** Paul Anthony Perez Lisette Diaz Pascal Random Story Generator What we propose to do is create a program in Pascal that randomly generates stories by taking random nouns, adjectives, adverbs and verbs and putting them into sentences. *** Lorraine yokota Spreadsheet Problem 2 *** Nasime Desiree Motamedi Eben E Wight Pascal Human Body Tutorial A program to answer questions about certain parts of the human body. In lecture there was an example from last year, the program on egyptian gods. *** Fabian Wolfgang Mills Pascal Poetry Composer I create a program that composes random poetry lines. What I would like for the program to do is to read from a list of words that I will create and randomly insert them into a sentence form. *** Carrie Frances Diaz Spreadsheet Business Management for Retail Store *** Laura Chavez Spreadsheet Weekly Industrial Report I'm taking a business strategies class and we work in industries and get weekly reports, so I thought maybe I could do a spreadsheet with one of these reports. Each report is about 12 pages long with 12 companies competing. *** Steve Michael Dragonette Pascal Address Book I'm proposing to compose an address book for my home computer using pascal. *** Monica Ruth Whalen Spreadsheet I am interested in working with a spread sheet as a platform for a census analysis of Logan heights and La Jolla. I want to plot the different percentages of the population which has an education, the family income, numbers of divorce, home owners, female headed house holds, numbers of families and age of the population in the last three census studies. By doing this project, it will allow me to understand how computers pertain toward my major which is Women's Studies and Politics. *** Linh Quoc Huynh Spreadsheet Supply and Demand Pascal Game *** David Barisic Spreadsheet Budgeting Template ... a budgeting template in Quattro Pro, because with three other housemates this could come in very handy. It would include an individual breakdown of the phone, PG&E, Water, Cable, and Waste management bills and charts to display graphically how much each person is to pay. *** Brooks Anthony Robertson Spreadsheet Either project 2 or 4 (decision pending) *** Thomas Angus Glover Wilson Pascal There is a mathematical/graphical method in geology for calculating the normal and shear stresses on a rock if the max. and min. stresses are given. These data can then be used to create a Mohr Diagram to illustate the rlationship. I propose to automate the calculations and graphics in Pascal. *** Jian-Hua Chen Spreadsheet Digital Filter Response My final project will be using the quattro pro /Excel to plot second order digital filter "step response" and "impulse response" with some values for the coefficients. *** From: Kristina Fitzgerald Wahlander Pascal Childs Game My project is to write a program like the childs game Madlibs. There is a story that the user does not get to see until after the user inputs nouns and verbs.... *** Mark Saalwaechter Kyle Petersen Victor ? (not sure of last name). Pascal Information on Punk Rock Using Turbo Pascal, we plan to provide a menu interface (similar to the "Legalize it" and the Greek Mythology projects shown in class) with information on punk rock. *** Khin Phong Spreadsheet Statistical analysis I'm doing a spreadsheet on people who are enrolled in UCSC as a SAA/EOP student. I have three references(statistics) for this year. *** Won Young Lee Pascal Project 3 Piano Player - Turbo Pascal *** davisgeo@cats.ucsc.edu (Geoffrey Scott Davis, Esquire) Pascal Dragon Graphics with Sound ... A program in Pascal Turbo that allows the user to fly a dragon around the screen and explore the countryside. It even has sound effects. *** Angela Rose Mohn Spreadsheet Financial Budgeting