Overview
Important dates
TODO
- Proposal due Wed, Mar 12th
- Exploration due Wed, Mar 26th
- Draft product due Wed, Apr 23rd
- Peer review due Fri, Apr 25th
- Presentation + slides due on Fri, May 2nd
- Final report + product + reproducibility due on Tue, May 6th
The details will be updated as the project date approaches.
Introduction
TL;DR: Create something related to data science.
This is intentionally vague – part of the challenge is to design a project that showcases best your interests and strengths.
One requirement is that your project should feature some element that you had to learn on your own. This could be a package you use that we didn’t teach in class (e.g., a package for building interactive web applications) or a workflow (e.g., making a package) or anything else.
If you’re not sure if your “new” thing counts, just ask!
Ideas
Identify a goal for your project that leverages the skills you develop in this class. Some possible ideas include:
- Develop educational content introducing and presenting a technical topic from statistics or mathematics (e.g. gradient descent, neural networks, decision trees) and publish as a Quarto website
- Create online tutorials for a specific R package or data science technique using Web Assembly and Quarto Live
- Build a Shiny web application for visualizing and exploring a complex dataset
- Create an R package that provides enhanced functionality for {ggplot2}
- Build an R package to provide a straightforward interface to an API
- Analyze a corpus of text data and use generative AI to assist with document labeling
- Develop a machine learning model and deploy it as an API using {plumber}
Most importantly, be prepared to brainstorm a bunch of ideas and discard them until you settle on a topic that everyone in the team is happy with and feels like a good choice for showcasing what you’ve learned in the class and how you can use that to learn something new and implement for your project.
The project is very open ended. Neatness, coherency, and clarity will count. All computation must be done using R, and all components of the project must be reproducible.
You will work on the project with your lab teams.
Deliverables
The four primary deliverables for the final project are
- A project proposal with three ideas.
- A reproducible product in a format based upon the type of project you propose (e.g. R package, interactive web application, custom-built API), with one required draft along the way.
- A final report that explains the process and results.
- A presentation with slides.
There will be additional submissions throughout the semester to facilitate completion of the project.
Teams
Projects will be completed in teams of 3-5 students. Every team member should be involved in all aspects of planning and executing the project. Each team member should make an equal contribution to all parts of the project. The scope of your project is based on the number of contributing team members on your project. If you have 4 contributing team members, we will expect a larger project than a team of 3 contributing team members.
Some lab section meetings will be devoted to work on the project, so all teams will be formed within each lab section (i.e. only students in your lab section can be your team members). The course staff will assign students to teams. To facilitate this process, we will provide a short survey identifying study and communication habits. Once teams are assigned, they cannot be changed.
Team conflicts
Conflict is a healthy part of any team relationship. If your team doesn’t have conflict, then your team members are likely not communicating their issues with each other. Use your team contract (written at the beginning of the project) to help keep your team dynamic healthy.
When you have conflict, you should follow this procedure:
Refer to the team contract and follow it to address the conflict.
If you resolve the conflict without issue, great! Otherwise, update the team contract and try to resolve the conflict yourselves.
If your team is unable to resolve your conflict, please contact soltoffbc@cornell.edu and explain your situation.
We’ll ask to meet with all the group members and figure out how we can work together to move forward.
Please do not avoid confrontation if you have conflict. If there’s a conflict, the best way to handle it is to bring it into the open and address it.
Project grade adjustments
Remember, do not do the work for a slacking team member. This only rewards their bad behavior. Simply leave their work unfinished. (We will not increase your grade during adjustments for doing more than your fair share.)
Your team will initially receive a final grade assuming that all team members contributed to your project. If you have a 5-person team, but only 3 persons contributed, your team will likely receive a lower grade initially because only 3 persons worth of effort exists for a 5-person project. About a week after the initial project grades are released, adjustments will be made to each individual team member’s group project grade.
We use your project’s Git history (to view the contributions of each team member) and the peer evaluations to adjust each team members’ grades. Both adjustments to increase or decrease your grade are possible based on each individual’s contributions.
For example, if you have a 4-person team, but only 3 contributing members, the 3 contributing members may have their grades increased to reflect the effort of only 3 contributing members. The non-contributing member will likely have their grade decreased significantly.
I am serious about every member of the team equitably contributing to the project. Students who fail to contribute equitably may receive up to a 100% deduction on their project grade.
Please be patient for the grade adjustments. The adjustments take time to do them fairly. Please know that the instructor handles this entire process himself, and I take it very seriously. If you think your initial group project grade is unfair, please wait for your grade adjustment before you contact us.
The slacking team member
Please do not cover for a slacking/freeloading team member. Please do not do their work for them! This only rewards their bad behavior. Simply leave their work unfinished. (We will not increase your grade during adjustments for doing more than your fair share.)
Remember, we have your Git history. We can see who contributes to the project and who doesn’t. If a team member rarely commits to Git and only makes very small commits, we can see that they did not contribute their fair share.
All students should make their project contributions through their own GitHub account. Do not commit changes to the repository from another team member’s GitHub account. Your Git history should reflect your individual contributions to the project.
Overall grading
The grade breakdown is as follows:
Total | 180 pts |
---|---|
Project proposal | 10 pts |
Exploration | 15 pts |
Draft | 10 pts |
Peer review | 5 pts |
Final report | 20 pts |
Final product(s) | 80 pts |
Slides + presentation | 15 pts |
Slides + presentation (peer) | 5 pts |
Reproducibility + organization | 20 pts |
Late work policy
There is no late work accepted on this project. Be sure to turn in your work early to avoid any technological mishaps.