CMPE003

Personal Computer Concepts: Software and Hardware

Spring 1996


Projects
Discussed during lecture on May 14, 1996

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.


Project Suggestions
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.


Student Projects
***
Michelle Mills 
Spreadsheet
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

Return to CMPE003 Home Page