Final Project
The climax of this course is its final project. The final project is your opportunity to take your newfound savvy with R for a spin and develop your very own package. We ask that you build something of interest to you, that you solve a substantive problem, that you positively impact others, or that you change the world. Strive to create something you’re proud of.
Since software development is rarely a one-person effort, you are allowed an opportunity to collaborate with one or two classmates for this final project. Needless to say, it is expected that every student in any such group contribute equally to the design and implementation of the project. Moreover, it is expected that the scope of a two- or three-person group’s project be, respectively, twice or thrice that of a typical one-person project. Although no more than three students may design and implement a given project, you are welcome to solicit advice from others, so long as you respect the course’s policy on academic honesty.
Ideas
The ideas for what you could build are endless, though to get your thinking started, a few others have attempted projects like the below!
- A package to speed up data analysis tasks you find yourself commonly repeating (à la the tidyverse or janitor packages)
- A package to create or analyze music files (à la the gm or tuneR packages)
- A package to do something whimsical, surprising, or fun (à la the fortunes or spongebob packages)
Components
- Proposal, due 2024-11-24T23:59:00-05:00.
- Status Report, due 2024-12-08T23:59:00-05:00.
- Implementation, due 2024-12-13T23:59:00-05:00.
Sample Project
If you’d find it helpful to see a sample project, consider exploring the staff’s own! The sample project is a package called ducksay
, which gives users access to functions like ducksay
, cowsay
, and fishsay
.
Download the sample project
Open RStudio per the linked steps and navigate to the R console:
>
Next execute
getwd()
to print your working directory. Ensure your current working directory is where you’d like to download this problem’s distribution code. If using RStudio through cs50.dev the recommended directory is /workspaces/NUMBER
where NUMBER
is a number unique to your codespace.
If you do not see the right working directory, use setwd
to change it! Try typing setwd("..")
if in the working directory of another problem, which will move you one directory higher.
Next execute
download.file("https://cdn.cs50.net/r/2024/x/project/ducksay.zip", "ducksay.zip")
in order to download a ZIP called ducksay.zip
into your codespace.
Then execute
unzip("ducksay.zip")
to create a folder called ducksay
. You no longer need the ZIP file, so you can execute
file.remove("ducksay.zip")
Now type
setwd("ducksay")
followed by Enter to move yourself into (i.e., open) that directory. Your working directory should now end with
ducksay/
If all was successful, you should execute
list.files()
and see the package’s contents. If not, retrace your steps and see if you can determine where you went wrong!