CSCI 6201 Final Project
Exploring and Analyzing a Dataset with Python
Due Friday, 12/11/2026
Announcements
The Final Project combines the main skills practiced in CSCI 6201 into one small computing project.
The goal is not to build an advanced machine-learning system. The goal is to practice completing a small computing project from beginning to end.
Lab 2 is designed as an early checkpoint so that your team can receive instructor feedback before completing the Final Project.
Goals
The project should give you practice with:
problem/question -> data -> Python analysis -> visualization -> basic model -> results -> communication
working with data in Python
basic exploratory data analysis
creating useful visualizations
using one basic machine-learning model
using GitHub to organize and share project work
working with a small team
writing a short technical report
explaining your code and results
These skills will help prepare you for more advanced graduate courses in areas such as machine learning, deep learning, cybersecurity, data science, and software development.
Grading
The Final Project is worth 25% of the course grade.
The project will be evaluated using the following major areas:
Python implementation and code quality
Data analysis and appropriate use of a basic model
Results and visualizations
GitHub organization and teamwork
Final written report and explanation
Project presentation and understanding
More advanced methods do not automatically receive a higher grade. A simple project that is correct, well explained, well organized, and understood by the team is better than a complicated project that the team cannot clearly explain.
1. Choose a Dataset
Teams of 2-3 students are required. An experienced student who wishes to complete an individual project may request instructor approval.
The recommended starting point is the scikit-learn Toy Datasets collection:
Examples include:
Breast Cancer Wisconsin dataset - classification
Iris dataset - classification
Wine dataset - classification
Digits dataset - classification
Diabetes dataset - regression
For Lab 2, you will begin with one of these datasets. After receiving feedback on Lab 2, a team may request instructor approval to change to another appropriate dataset.
If you want to use a different or more challenging dataset, discuss it with the instructor before making the change. The dataset should still be reasonably small and manageable for this course.
The purpose of the project is to practice the complete workflow, not to spend most of the project collecting or cleaning a very large dataset.
2. Define Your Research Question
Your project should have 1-3 clear research questions. The questions should be simple enough to investigate using the selected dataset.
Classification examples:
Can the available features be used to predict the target class?
Which features appear to be most related to the target?
How well does a simple classification model perform?
Regression examples:
Can the available features be used to predict a continuous target value?
Which variables appear most strongly related to the target?
How well does a simple regression model perform?
Your project does not need to make an original scientific discovery. The purpose is to practice asking a reasonable question and using data and Python to investigate it.
3. Load and Understand the Dataset
Your Python program or notebook should successfully load the dataset and explain its basic structure.
At minimum, identify:
number of observations/samples
number of features
feature names, when available
target variable
whether the problem is classification or regression
basic meaning of the dataset
Depending on the dataset, useful exploratory information may include:
shape
data types
minimum and maximum values
mean or median
class counts
missing values
other useful descriptive statistics
Do not simply print large amounts of output. Select information that helps you understand the dataset.
4. Exploratory Data Analysis
Perform basic exploratory data analysis related to your research questions.
Create at least 2 useful visualizations.
histogram
bar chart
scatter plot
box plot
correlation-related visualization
other appropriate plots
Every figure should have:
a clear title
labeled axes when appropriate
readable formatting
a short interpretation in your report
Do not include a graph only because you know how to create it. Explain what the graph helps you learn about the data.
5. Basic Machine-Learning Model
Your project should include at least one basic machine-learning model appropriate for the dataset.
For classification, possible examples include:
Logistic Regression
Decision Tree
k-Nearest Neighbors
For regression, a possible starting model is:
Linear Regression
Other models may be used if appropriate. The purpose is to demonstrate a basic end-to-end workflow. Advanced machine-learning techniques are not required.
At minimum, your project should:
identify the features X
identify the target y
create an appropriate training/testing process
train one model
generate predictions
report at least one appropriate evaluation result
Classification examples: accuracy or a confusion matrix.
Regression examples: mean squared error, mean absolute error, or R-squared (R²).
You should briefly explain what your evaluation result means.
Students with substantial prior experience may go beyond these minimum requirements, for example by comparing two models or performing additional analysis. This is encouraged but not required.
6. GitHub Repository
Each team must maintain a GitHub repository for the project.
The repository should include, at minimum:
README.md
Python source code and/or Jupyter notebook
figures or other project output, if appropriate
final project report
other supporting files, if needed
A reasonable example is:
csci6201-final-project/
README.md
analysis.py
or
analysis.ipynb
figures/
report.pdfYour README should briefly explain:
project title
team members
dataset
research question(s)
how to run or view the project
major files in the repository
Every team member must make meaningful contributions to the shared repository. The GitHub commit history should show contributions from each team member.
Do not have one student complete the entire project and upload it for the group.
Using branches and pull requests is encouraged, especially for students who already have Git/GitHub experience, but it is not required.
7. Final Project Report
Submit a short technical report of approximately 3-4 pages, excluding references.
The report is inspired by the structure of papers commonly used in computer science and AI conferences, but this is a simplified course project. You are not expected to produce publishable research.
Use the following structure:
Title and Authors
Abstract
Introduction
Explain the problem or topic.
Briefly explain why the dataset or question is interesting.
Clearly state your 1-3 research questions.
Related Work
Briefly describe relevant previous work or background.
Include at least 2 credible references.
At least one reference should be a scholarly paper or authoritative technical source.
Methods
dataset
important features and target
data processing
exploratory analysis
visualization methods
machine-learning model
evaluation method
Results
Present your main findings.
Include appropriate figures, tables, or numerical results.
Explain what each important result means.
Do not simply paste program output into the report.
Discussion and Conclusion
Return to your research questions.
Explain what you learned from the analysis.
Discuss at least one limitation of your project.
Briefly describe what could be improved or investigated next.
References
Google Scholar may be useful for finding papers:
You can also review examples of well-known AI publication venues here:
You do not need to conduct an extensive literature review. One or two short paragraphs of related work may be sufficient.
8. Code Quality and Understanding
Your code should be readable and reasonably organized.
use meaningful variable and function names
use comments for important sections
use functions when they improve organization
use clear file organization
use reasonable Python style
Avoid unnecessarily large blocks of copied code.
Every student is responsible for understanding the code and analysis submitted by the team.
The instructor may ask any team member to explain:
a section of the code
how the dataset was processed
why a visualization was created
how the model works at a basic level
what a reported result means
9. Use of Generative AI and Other Resources
Generative AI tools may be used as learning aids.
You may use them to help:
understand Python errors
learn how a library or function works
brainstorm approaches
improve explanations
review code
However, you are responsible for understanding all submitted work. Do not submit code, analysis, or writing that your team cannot explain.
If you use outside code, tutorials, papers, AI tools, or other resources, acknowledge important sources where appropriate.
The purpose of allowing modern tools is to support learning, not to replace it.
10. Short Project Presentation
Each team should be prepared to give a short in-class presentation or demonstration during the final project period.
A presentation will likely be approximately 5 minutes per team. Additional scheduling details will be announced in class.
At minimum, be prepared to explain:
research question
dataset
one important visualization
model used
main result
one thing the team learned
Every team member should participate.
11. Blackboard Submission
This is a team submission.
Each team should submit only once. Do not have multiple team members submit duplicate copies of the same project.
Submit the following through Blackboard:
Final project report as a PDF
GitHub repository URL
A plain-text (.txt) dataset information file
Any additional file specifically requested by the instructor
Blackboard file-size limit:
Each individual file uploaded to Blackboard must be no larger than 5 MB.
Do not upload the dataset itself to Blackboard.
Instead, submit a small plain-text (.txt) file describing the dataset. Include:
dataset name
source or organization providing the dataset
URL where the dataset can be accessed or downloaded
a short description of what the dataset contains
whether your project uses the original dataset or a modified/processed version
If your dataset is provided directly by a Python library such as scikit-learn, provide the relevant documentation URL and explain how the dataset is loaded in your code.
Large project files should be organized in the GitHub repository rather than uploaded separately to Blackboard.
Make sure the names of all team members are clearly listed in:
the report
the README
the Blackboard submission
12. Notes
Final Project is due Friday, 12/11/2026.
Only one Blackboard submission is needed per team.
Each Blackboard file must be 5 MB or smaller.
Do not upload your dataset to Blackboard.
Start early and use the Lab 2 feedback to improve your project.
Remember: every team member should understand and be able to explain the submitted work.