CMPE 003 Term Projects
Spring 1997

Due the last week of classes
25 points (30 with extra credit report)

NOTE: Before starting the Pascal projects, try this preliminary program.

Demo times were assigned in class on Tuesday, May 27. To see the current list of demo times for the class, click here. If you are doing a Pascal demo with a partner, both of you must be present for the demo. If you are enrolled in the Monday, Tuesday, or Wednesday lab section, you will do your demo on that day at the assigned time. If you are in the Friday lab section, you have been assigned a time on Tuesday or Wednesday; if this time creates a conflict for you, let the instructor know before Friday, May 30th. After Friday, May 30th, the demo times will not be changed; if you do not show up at your assigned time, you will not receive any credit for the demo portion of the project.

You may choose one of the four projects defined here, or you may devise a project of your own choosing. The project must use either Microsoft Excel or Turbo Pascal. By Friday, May 9, you must turn in (either on paper or via e-mail) your proposed project. If you want to do one of the projects defined here, just indicate which project you would like to do (if it is a 2-person project, include the names of both students on the paper/e-mail). If you have devised your own project, we will look over the proposal and determine if it meets the standards of the class; if not, you will have to do a different project. The proposal itself is worth 2 points of your project grade (thus if you do not turn in the proposal on time, you cannot receive more than 23 points on the project).

The details of project grading are available here.

Overall guidelines for all projects:

Projects are due the last week of classes, on the day of the demo (times for demos will be during lab sections on Monday, Tuesday, and Wednesday, June 2, 3, and 4, and will be arranged in class during the previous week). A report on the project is due at the time of the demo, if you wish to turn it in for extra credit. The report should include a description of the project topic, your implementation method, any remaining problems with the project and how they might be solved, and a discussion of what you learned by doing the project.

The Pascal projects, which are labeled "1- or 2-person project", can be done by one student or by a collaboration between two students. In either case, a single report will be turned in for the project, if extra credit is desired. If the project is a 2-person project, each student will be required to demonstrate part of the project during the demo. Both students will receive the same grade for the project. Programs will be graded on correctness (whether they perform the tasks described in the summaries below) as well as on style (use of procedures, use of appropriate variable names, etc.).

The Excel projects are both 1-person projects. Spreadsheets will be graded on correctness (whether they include the information specified in their descriptions) and on format (appropriate format of numbers, use of different fonts/styles for column headings, etc.).

1. Pascal program: Checkerboard (1- or 2-person project)

NOTE: Before starting the Pascal projects, try this preliminary program.

This program has been simplified from its original description.

In this program, you will draw a two-dimensional grid on the screen and draw circles inside some of the squares formed by the grid. The grid will initially be empty. Your program will allow a user to enter in the coordinates of a grid square in which to draw a circle, and then draw an open circle there. If the user enters coordinates for a grid square which already contains a circle, the program will draw a filled circle in that grid square. The program exits when the user inputs a special number (the ``quitting number''), such as 777.

The routines for drawing circles and lines will be explained in class before you begin work on the projects.

What to turn in:

2. Pascal program: Bouncing Ball (1- or 2-person project)

NOTE: Before starting the Pascal projects, try this preliminary program.

In this program, you will draw a circle (the ball) on the screen, give it a certain initial velocity, and have it bounce off the edges of the screen. A gravity-like force will be included so that the bouncing ball will eventually come to rest at the bottom of the screen. The program will draw an initial circle, calculate the circle's new position from its velocity and acceleration, then erase the initial circle and draw a new circle in the new position; when the circle comes to the edges of the screen, its velocity will be reversed so that it seems to "bounce" off the edges of the screen.

The equations for calculating the ball's position as a function of time from its velocity and acceleration will be described in class before you begin work on the projects. Routines for drawing circles will also be discussed.

What to turn in:

3. Excel: Car Loan Spreadsheet (1-person project)

You want to buy a new car. Construct a spreadsheet that includes ten different cars with different prices ranging from $10,000 to $45,000. You have a certain amount of money to use for a down payment on each car, and you need to get a loan to pay off the remaining cost. The spreadsheet will figure out the monthly payment on each car for a given loan interest rate and period.

First assume that you have a loan with an annual interest rate of 7.25% and can pay a down payment of $5,000, and answer the following questions using the spreadsheet:

  1. If you want to pay off each car in 5 years at 7.25%, how large would your monthly payments have to be in each case?
  2. If the monthly payments are $200/month in each case, how long would it take you to pay the remaining cost with the 7.25% loan?
  3. If you can provide a down payment of $8,000, what are the answers to questions (a) and (b)?
Now change the assumed loan rate to 5.25% and answer questions (1), (2), and (3) using the spreadsheet.

NOTE (5/30/97):

Question (2) above may require some tedious work which doesn't really teach you anything useful (that is, there is no predefined Excel function to do this). You can answer that question, or answer this new Question (2) instead:

  1. (as above)
  2. How much of the first month's payment in each case goes toward paying off the interest? (Hint: Use the IPMT function.)
  3. (as above)
Now change the assumed loan rate to 5.25% and answer questions (1), (2), and (3) using the spreadsheet.

Either the original or the new question (2), whichever you choose to do, will be accepted for your project.

What to turn in: 4. Excel: Financial Budget (1-person project)

You want to set up a spreadsheet to keep track of your personal finances and to ensure that you stay on your budget. You also want to save a certain amount of money each month from your income. The spreadsheet should keep track of five different categories of expenses and should also include income. Construct a spreadsheet which covers a six-month period and includes expenses and income for those six months (the amount you want to save each month can be classified as an expense or can be included in a separate location). You can either make up some reasonable numbers for expenses and income or use actual data.

Create a budget by setting upper limits for each of the expense categories. Indicate whether or not the budget was met for each category for each month (use a formula to do this and apply it to each category and month).

Construct a chart showing the amount of money spent on expenses for each month. Use appropriate axis labels, legend labels, and a title.

Set a goal of how much money should have been saved by the end of the six month period. Use a formula to determine whether that goal was met.

What to turn in:

Return to CMPE 003 syllabus or return to CMPE 003 home page