CPSC120
Fundamentals of Computer Science

Project

You have learned a lot over this semester, so it is time for you to show everyone how much. For the project, you will create a mobile app or a video game. You can make any app or game you want!


Details

The project is open-ended, but there are a few restrictions:

  • The program must be interactive. It must get input from the user and respond differently depending on the user's input.

  • The program must use the graphics module. It doesn't have to include animation. It should look like a program that an average person would be comfortable using. It should not use the input and print functions, for input or output.

  • The program must be novel, complex, and interesting. A novel program is not derivative of any of the programs created for in-class activities. I will determine whether a proposed project is complex and interesting. Please talk with me if you are unsure if your idea is sufficiently complex and interesting.

In the real world, programming is a collaborative effort. For this project, you are encouraged but not required to work with a partner. When working with a partner, both members should be present and actively contributing to every written line of code. So, be sure to choose a partner that you get along with, is available to work simultaneously, and wants to devote the same amount of time to the project.


Presentation

On Monday, November 16th, we will have a showcase event during our class period. We will share brief demonstrations of projects with the rest of the class. You should be prepared to answer questions about how your code works.


Grade

The project will be graded according to the following criteria and percentages:

  • Interactive - 20%
  • Uses Graphics Module - 20%
  • Novel - 20%
  • Complex - 20%
  • Interesting - 20%

You have learned a lot over this semester, so it is time for you to show everyone how much. For the project, you will create a program to create a robotic challenge and a program to solve a challenge. The challenge can be anything you want!


Details

The project consists of two programs, the challenge, and the solution. The challenge program is open-ended, but there area few restrictions:

  • The challenge program must be functionalized. All code must be in functions, and it must initialize the challenge with a single function call from the main function.

  • The challenge program must separable from the solution code. That means that the code should not use the wait function or run anything once finished initializing.

  • The challenge should have a numerically quantifiable goal. It should be possible to score two different solution programs to compare their performance.

  • The challenge must be novel and interesting. A novel program is not derivative of any of the challenges you solved for in-class activities. I will determine whether a proposed challenge is interesting. Please talk with me if you are unsure if your idea is sufficiently interesting.

In the real world, programming is a collaborative effort. For this project, you are encouraged but not required to work with a partner. When working with a partner, both members should be present and actively contributing to every written line of code. So, be sure to choose a partner that you get along with, is available to work simultaneously, and wants to devote the same amount of time to the project.


Demonstrations

On Wednesday, November 11th, we will share our challenges during our class period. We will share brief demonstrations of our challenge programs with the rest of the class.

On Monday, November 16th, we will share our solutions to challenges. You can solve any challenge you want, your own or somebody else’s.

For both of these presentations, you should be prepared to answer questions about how your code works.


Grade

The project will be graded according to the following criteria and percentages:

  • Functionalized Challenge - 10%
  • Separable Challenge - 10%
  • Quantifiable Challenge Goal - 10%
  • Novel and Interesting Challenge - 30%
  • Solution - 40%

You have learned a lot over this semester, so it is time for you to show everyone how much. For the project, you will write a program to analyze, visualize, and answer a question using a dataset. The dataset and question can be anything you want!


Details

Creating intriguing questions about a dataset requires a certain level of familiarity with your dataset. You will need to know what each of the variables is and how they relate to each other. Pick a dataset that is interesting to you and large enough to create compelling questions.

Simple questions ask about the correlation between two variables in the dataset. The two variables can be two columns of your dataset. More interesting questions will require deriving new variables from multiple columns.

The presentation should include the following elements:

  • Dataset - Your audience will need to know specific details about the dataset to understand the question you are answering about your dataset. Describe the dataset, including information such as where the data comes from and how it was collected. Also, describe each of the variables used in your analysis and how they are related to each other.

  • Question - In addition to the questions itself, describe why the question is interesting and how the answer is useful. Also, include your hypothesized answer to the question, including the basis for why. It is okay if the actual answer is different than your hypothesis. It is good to have the data support logical reasoning and have data subvert expectations so that assumptions are reevaluated.

  • Plot - Run a program that you create, which displays a plot that illustrates your result.

  • Analysis - Explain how the plot can be used to answer your question. This is your opportunity to tell a story, to make the data come alive for your audience, to convince them of something interesting, or surprising, or actionable. Describe why the plot looks the way it does and relate this to your hypothesis. Be sure to also include why the question's answer matters.

In the real world, programming is a collaborative effort. For this project, you are encouraged but not required to work with a partner. When working with a partner, both members should be present and actively contributing to every written line of code. So, be sure to choose a partner that you get along with, is available to work simultaneously, and wants to devote the same amount of time to the project.


Presentation

On Monday, November 16th, we will present our results during our class period. We will share our analyses, including code and plots, with the rest of the class. You should be prepared to answer questions about how your code works.


Grade

The project will be graded according to the following criteria and percentages:

  • Dataset - 20%
  • Question - 20%
  • Plot - 30%
  • Analysis - 30%