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.

  • Back to Course Index Page

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.pdf

Your 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:

  1. Title and Authors

  2. Abstract

  3. Introduction

    • Explain the problem or topic.

    • Briefly explain why the dataset or question is interesting.

    • Clearly state your 1-3 research questions.

  4. 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.

  5. Methods

    • dataset

    • important features and target

    • data processing

    • exploratory analysis

    • visualization methods

    • machine-learning model

    • evaluation method

  6. 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.

  7. 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.

  8. 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:

  1. Final project report as a PDF

  2. GitHub repository URL

  3. A plain-text (.txt) dataset information file

  4. 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.