Project

CS3300/CS6375 Introduction to Python Programming for Data Analytics

Author

Yike Zhang

Published

January 5, 2026

Project Presentations

There will be three Python projects throughout the semester, and students are expected to present their work to the whole class via Zoom. Each presentation will be a live code demonstration, where you run your code in real time and explain how it works. You should demo sample inputs and outputs to show that your code works as expected. You should also explain the key design choices you made while writing the code, such as why you chose certain data structures and data types, how you structured your functions, and any challenges you may face during implementation. You should also be prepared to answer questions from your classmates and the instructor about your implementation details. For the presentations, the instructor encourages students to use AI tools ethically to assist with brainstorming, code writing, debugging, and presentation preparation. Here is a general guide on how to ethically use AI tools for your project presentations in this class:

  • Use AI tools as a learning assistant to help you understand concepts in Python and troubleshoot issues, rather than as a shortcut to complete the project without putting in any effort.
  • Always review and understand any AI-generated code before using it in your project. Make sure you can explain how it works and why it is appropriate to be used in your project.
  • If you use AI-generated code, be transparent about it in your presentation. You can mention that you used AI tools to assist with certain parts of the code, but make sure to explain the logic and design choices in your own words.
  • Use AI-generated content as a starting point and customize it to fit your own design while meeting the project requirements.
  • Be prepared to answer questions about the code you wrote (with and without AI assistance), and make sure you can explain how it works and why you chose to use it in your project. You should take ownership and responsibility for the code you present, regardless of whether it was generated by you or with the help of AI tools.
  • Lastly, remember that the goal of the project presentations is to demonstrate your understanding of Python programming concepts and your ability to apply them creatively. AI tools can be a helpful resource, but they should NOT replace your own learning and problem-solving efforts.

The goal of the project presentations is not only to demonstrate that your code works, but also to show that you understand your design decisions and can communicate your thinking clearly.

Presentation Format:

  • Time limit: 5 minutes per student
  • Mode: Live code walkthrough and execution (no slides required)

Each presentation should be treated as a mini technical interview. The goal is not only to show that your code works, but also to demonstrate that you understand your design decisions and can communicate your thinking clearly.

General Guidelines for Code Showcase and Explanation:

  • Start with the big picture
  • Briefly explain what problem your code is solving and what the program is supposed to do.
  • Explain your approach
  • Describe how you decided to solve the problem (e.g., why you used certain loops or functions).
  • Walk through key parts of the code
  • Focus on the most important sections rather than every single line.
  • Run the code live via Zoom
  • Show the program running and explain the output as it appears.
  • Discuss any limitations (if any) in your code. (Optional)
  • Mention what your code handles well and what could be improved. (Optional)

Notes:

  • Perfection is not expected, and clarity of thought and explanation matters more than flawless code.
  • Creativity and thoughtful design choices are encouraged.

The requirements and topic selections are detailed in the subsections below.

Presentation I

Please present your artwork from earlier assignments to the class. You may make improvements or modifications and explain your thought process when writing the code.

Presentation II

Available Topics for Selection for both undergraduate and graduate students. The topics will cover everything we’ve learned before the Project Presentation II day. Please feel free to use any library in python you like to make your project interesting and fun. You are also welcome to use synthetic data to complete your project tasks. If you have additional topic suggestions or project ideas, please do not hesitate to discuss them with me first so I can consider adding them to the list for other students to select as well. Make sure to notify me at least two days before the presentation, so I have enough time to review your proposals and make an annoucement for the class regarding any updates.

  • Mini Todo List Manager: Add, remove, and list tasks saved to a text file.

  • Favorite Movies Tracker: Store and filter movies by rating or genre.

  • Students Grade Analyzer: Read grades from an online Kaggle Dataset here and compute min, max, and average of all students’ GPA grades.

  • Grade Letter Converter: Convert numeric scores into letter grades using the online Kaggle Dataset here. Please refer the StMU grading policy here.

  • Shopping Cart Simulator: Add items to a list and save receipts to a file.

  • Weather Outfit Advisor: Recommend clothing based on temperature.

  • Restaurant Menu Filter: Filter food options by dietary needs.

  • Trivia Quiz Game: Continue asking questions until player quits.

  • Unit Converter Toolkit: Functions for length, weight, temperature.

  • Simple Banking System: Deposit, withdraw, and check balance via functions.

  • Mini File Analyzer: Functions to count lines, words, and characters.

Challenge Yourself

  • Tic-Tac-Toe Game: Create a classic Tic-Tac-Toe game that runs in the console.

  • Hangman Game: Implement a simple Hangman game where the player guesses letters to reveal a hidden word with maximum N attempts.

  • PacMan Game: Design a simple PacMan game where the player navigates a grid to collect points while avoiding ghosts.

  • Snake Game: Build a classic Snake game where the player controls a snake to eat food and grow longer while avoiding collisions.

  • Pong Game: Develop a Pong game where the players control paddles to hit a ball back and forth.

The topics above serve as general guidelines and represent the minimum expectations set by the instructor. Please do not limit your imagination when selecting the topic from the list and adding creativity and fun elements to your mini project.

Final Presentation

The final project presentation requirements will differ for undergraduate and graduate students. Please feel free to use any library in python you like to make your project interesting and fun. You are also welcome to use synthetic data to complete your project tasks. If you have additional topic suggestions or project ideas, please do not hesitate to discuss them with me first so I can consider adding them to the list for other students to select as well. Make sure to notify me at least two days before the presentation, so I have enough time to review your proposals and make an annoucement for the class regarding any updates.

Undergraduate-level Projects

Please select a topic from the following list. You are also welcome to challenge yourself as an undergraduate and select a topic from the Graduate-level projects bucket.

  • Student Gradebook System: Create a gradebook that uses a dictionary to map student names (or IDs) to numeric grades. Your program should allow users to add, update, and view student records. You should include a sorting feature that orders students by grade or name. During the presentation, explain why a dictionary is appropriate and how sorting is applied. Focus on clarity, correctness, and readable code.

  • Contact Book Application: Build a simple contact manager using a dictionary to store names and phone numbers or emails. Users should be able to add new contacts, search for existing ones, and display all contacts in sorted order. This project should demonstrate dictionary access, conditional checks, and list-based sorting. During the demo, explain how user input is validated and how sorting improves usability.

  • Word Frequency Analyzer: Write a program that reads a text file and counts how often each word appears using a dictionary. After counting, sort the words by frequency or alphabetically and display the results. This project demonstrates file I/O, dictionaries, and sorting logic. Be prepared to explain how your program handles punctuation or capitalization. Discuss what improvements you could make for larger files.

  • Simple Inventory Manager: Develop an inventory system where item names map to quantities using a dictionary. The program should allow adding items, updating stock, and displaying items sorted by quantity or name. This project tests dictionary updates, conditionals, and sorting. Explain how your program handles low stock or invalid inputs. Focus on logical flow and correctness.

  • High-Score Game Board: Design a game leaderboard that records player names and scores. The leaderboard should be sortable so that top scores appear first. This project demonstrates dictionary usage and sorting logic. Explain how new scores are inserted and ranked. Discuss how this system could scale.

  • Alphabetical Word Sorter: Write a program that reads words from a file or user input and sorts them alphabetically. You may use built-in sorting or implement a simple algorithm. Explain how strings are compared during sorting. During the presentation, demonstrate sorting with different inputs. Focus on clear logic.

  • Recursive Menu Navigation: Create a menu system where the menu function calls itself until the user exits. This project demonstrates recursion in control flow. Explain how the base case corresponds to exiting the program. During the demo, show multiple menu selections. Focus on logic clarity.

  • Grade Distribution Analyzer: Analyze a set of grades and group them into categories using a dictionary. Sort categories by frequency or grade range. This project demonstrates data grouping and sorting. Explain how categories are determined. Emphasize clear output.

  • Simple Recommendation Tool: Build a recommendation tool that suggests items based on user preferences stored in a dictionary. The program should use conditions to select appropriate recommendations. Explain how data is structured and accessed. During the demo, show different user cases. Focus on logic and clarity.

  • Library Book Organizer: Create a system to store books using dictionaries with attributes such as title and author. Allow sorting by title or author. Explain how records are stored and retrieved. During the presentation, demonstrate sorting options. Emphasize organization and readability.

  • IT Help Desk Ticket Tracker: Build a lightweight help desk where ticket IDs map to issue details (user, problem, priority, status) in a dictionary. Allow staff to add, resolve, and list tickets sorted by priority. Explain how your dictionary structure keeps lookups fast. During the demo, walk through a day in the life of a help desk agent.

  • Personal Expense Tracker: Read a list of transactions from a text file and group them by category using a dictionary. Compute totals, average spend, and sort categories from biggest spender to smallest. Explain how grouping with dictionaries beats scanning the list repeatedly. Show the user a friendly monthly summary.

  • Tax Bracket Calculator: Store tax brackets in a dictionary (or list of tuples) and compute what a user would owe on a given income. Print a clear breakdown showing how much was taxed in each bracket. Explain your lookup logic during the demo. Bonus fun: compare two incomes side by side.

  • Stock Price Mood Ring: Read a list of daily closing prices from a file and compute min, max, average, and day-over-day change. Label each day as “Bullish,” “Bearish,” or “Chill” based on the change. Explain how your conditions assign moods. Demo the output as a little text-based trend report.

  • DNA Sequence Analyzer: Take a DNA string and count each nucleotide (A, T, C, G) using a dictionary. Compute the GC content and flag any unusual sequences. Explain how dictionaries make counting easy. During the demo, test with a couple of short sequences and interpret the results like a real bioinformatician.

  • Crime Scene Evidence Logger: Store evidence items (type, location, collected_by, timestamp) as a list of dictionaries. Support filtering by evidence type and sorting by timestamp. Explain how your structure could scale to a full case file. Demo with a fictional crime scene and play detective.

  • Projectile Motion Calculator: Write functions that take an initial velocity and launch angle and return the flight time, max height, and range. Print a small table of the trajectory at fixed time steps. Explain the physics formulas you used. Demo with a few launch angles and compare which angle sends the ball the farthest.

  • Suspect Profile Matcher: Store suspect profiles (height range, hair color, build, and other attributes) in dictionaries and match them against a witness description using a simple scoring function. Rank suspects by match score. Explain your scoring choices. Demo with a fictional lineup and reveal your prime suspect.

The undergraduate-level project topics serve as general guidelines and represent the minimum expectations set by the instructor. Please do not limit your imagination when selecting the topic from the list and adding creativity and fun elements to your mini project.

Graduate-level Projects

Please select a topic from the following list only.

  • Nested Dictionary Configuration System: You just joined a SaaS startup and the CTO hands you a tangled config file that no one on the team can read. Build a configuration manager using nested dictionaries that lets teammates query and update deeply nested settings dynamically. Explain why nested dictionaries fit this shape better than flat ones and discuss extensibility. Show the demo at the end by updating a few settings and showing the before-and-after state.

  • Symbol Table Simulator: Welcome to your side project, a toy programming language called “Rattlesnake” that desperately needs a brain to remember its variables. Simulate a compiler-style symbol table using dictionaries that stores variable names, types, and values, and supports scope-aware lookup. Explain how dictionaries give you fast access and how scope is handled. During the demo, declare and resolve a few variables live.

  • Multi-Key Record Manager: You just landed a dream gig as the new data engineer at a streaming service, and the product team wants shows ranked by rating, then by release year, then alphabetically by title. Build records as dictionaries with multiple attributes and implement stable multi-key sorting. Explain sort stability and discuss the design tradeoffs you made. During the demo, show several different ranking orders on the same dataset.

  • Recommendation Engine (Rule-Based): Friday night, your movie-night group chat is melting down because nobody can agree on what to watch. Design a rule-based recommendation bot using dictionaries that maps user preferences to suggestions. Explain how your rules trigger recommendations and discuss limitations and extensions. During the demo, walk through two wildly different user profiles and the picks each one gets.

  • Recursive Simulated Directory Tree Traversal: Your system admin manager just dropped a Slack message: before lunch, she wants a full report of every file buried inside a suspicious folder tree. Represent a directory tree using nested dictionaries and recursively traverse it to display contents. Explain your base cases and the recursive flow. During the demo, walk a fictional project folder and point out the deepest file you find.

  • Recursive Expression Evaluator: Meet your newest client, a math tutoring startup whose founder swears the deal is off unless the calculator app handles parentheses properly. Implement a recursive evaluator for arithmetic expressions that breaks them into smaller components. Explain your parsing logic, base cases, and the limitations of your approach. During the demo, run a few tricky nested examples.

  • Recursive Simplified JSON File Parser: You cracked open an API response from a mystery web service, and the nesting is unpredictable while the docs are nowhere to be found. Recursively traverse a nested dictionary or list structure and extract key information at any depth. Explain how recursion handles arbitrary depth and discuss real-world relevance. During the demo, pull specific fields out of a messy payload.

  • Backtracking Puzzle Solver: It is 2 a.m. during finals week and you are staring down a Sudoku puzzle that absolutely refuses to solve itself. Write a solver that uses recursive backtracking on a small grid, explaining how choices are explored, undone, and pruned. Discuss your base cases and when pruning kicks in. During the demo, crack a small grid step by step and narrate the backtracks.

  • Recursive Maze Solver: You are the level designer on an indie game who needs to prove every generated maze actually has a path from start to finish. Represent a maze and recursively find a route through it. Explain your decision points and performance considerations. During the demo, run two mazes including at least one dead-end trap.

  • Custom Sorting Framework: Congratulations, you just inherited the backend of a growing online bookstore where every category page demands a different sort order (price, rating, “recently added,” most reviewed, and so on). Design a framework that lets users plug in their own sorting rules via comparison functions. Explain your abstraction, flexibility, and tradeoffs. During the demo, show at least three different sort modes on the same book list.

  • Multi-Level Data Organizer: Grade week is here, and as the TA you need a tool that organizes students by school, then department, then course, then grade, without losing anyone along the way. Use recursion and sorting to organize and display this hierarchical data. Explain your structure and design choices. During the demo, show a cleanly formatted printout for a small sample.

The graduate-level project topics serve as general guidelines and represent the minimum expectations set by the instructor. Please do not limit your imagination when selecting the topic from the list and adding creativity and fun elements to your mini project.