BOARD OF CENTRAL SECONDARY EDUCATION (CBSE)
A SENIOR SECONDARY PROJECT REPORT ON INFORMATICS PRACTICES
(065)
OLYMPIC GAMES DATA ANALYSIS &
VISUALIZATION SYSTEM (1896 - 2020)
An Empirical Study of Athletic Trends, Gender Diversity, and National
Leaderboards using Python Pandas & Pyplot
SUBMITTED BY: UNDER THE GUIDANCE OF:
Name: [Your Full Name] [Teacher's Name]
Roll Number: [Your CBSE Roll No.] PGT - Computer Science / IP
Class: XII (Science / Commerce) [Your School Name Here]
ACADEMIC SESSION: 2026 - 2027
Class XII IP Project Report: Olympics Data Analysis 1
CERTIFICATE OF AUTHENTICITY
This is to certify that Master/Miss [Your Full Name], a student of class XII has successfully
completed the project work in Informatics Practices (Subject Code: 065) on the topic
"Olympic Games Data Analysis & Visualization System" under the guidance of [Teacher's
Name] during the academic year 2026 - 2027.
The project work submitted herewith is genuine, organic, and matches the benchmark
parameters laid down by the Central Board of Secondary Education (CBSE) curriculum
guidelines.
Internal Examiner External Examiner
Principal's Seal & Sign
Class XII IP Project Report: Olympics Data Analysis 2
ACKNOWLEDGMENT
I would like to express my deepest gratitude to our respected Principal, and my Informatics Practices
mentor [Teacher's Name], for providing me with the wonderful opportunity to conduct this research and
structural programming project. Their consistent guidance and technical feedback have been invaluable
in resolving operational bottlenecks during script design.
I am also thankful to my parents and peers who supported me during data parsing, collection, and
documentation phases. This project allowed me to extensively bridge the gap between classroom theory
and actionable data analytics.
[Your Full Name]
Class XII, IP
Class XII IP Project Report: Olympics Data Analysis 3
TABLE OF CONTENTS
S. No. Topic Description Page No.
1 Introduction & Project Context 5
2 System Configurations & Prerequisites 6
3 Dataset Structural Schema 6
4 Python Source Code Implementation 7
5 Data Insights & Key Functions Explained 9
6 Conclusion & References 10
Class XII IP Project Report: Olympics Data Analysis 4
1. Introduction & Project Context
Data is the foundational cornerstone of the 21st century. In sports analytics, historical tracking enables
federations, analysts, and fans to discover overarching trends that would otherwise remain hidden across
thousands of raw transaction logs. This Informatics Practices Project targets the historical data of the
**Olympic Games from 1896 up to the 2020 Tokyo Olympics**.
By leveraging Python's multi-functional ecosystem—specifically **Pandas** for systematic table
management, manipulation, and filtering, along with **Matplotlib/Seaborn** for mathematical plotting—
this program creates a flexible interface to extract valuable structural insights. Key metrics examined
include global leaderboard domination, gender inclusivity growth over a century of games, and athlete
age distributions.
Objectives of the System:
• To build a robust menu-driven terminal interface using procedural workflows.
• To extract top-performing nations using advanced categorical grouping logic.
• To map out chronological graphs capturing participation milestones.
• To handle missing data attributes seamlessly via clean data handling blocks.
Class XII IP Project Report: Olympics Data Analysis 5
2. System Configurations & Prerequisites
To safely install, initialize, and execute this environment, the minimum operational baselines include:
Hardware Specifications:
• CPU: Dual-Core Intel i3 / AMD Ryzen 3 or higher.
• RAM: 4 GB Base minimum (8 GB recommended for complex parsing).
• Storage Space: 100 MB free space for script logs and data indices.
Software Specifications:
• Runtime System: Python 3.8 to Python 3.11 Environment.
• Core Modules: pandas, matplotlib, seaborn.
• IDE: IDLE, VS Code, or Jupyter Notebook Environment.
3. Dataset Structural Schema
The program ingests an input file designated as olympics_2020.csv containing the following core
properties:
Column Label Data Feature Type Structural Context / Description
ID Integer Unique distinct token tracking an individual athlete.
Name String / Object Full biographical name of the athlete.
Sex Categorical (M/F) Gender identification attribute.
Age Numeric Float/Int Registered biological age of the competitor.
Team String / Object Name of the representing Nation or Consortium.
Year Temporal Integer The calendar year the competitive event transpired.
Sport String / Object Main athletic umbrella discipline (e.g., Aquatics, Athletics).
Medal Categorical Outcome achieved: Gold, Silver, Bronze, or Null.
Class XII IP Project Report: Olympics Data Analysis 6
4. Python Source Code Implementation
The operational implementation script is provided below. It features an infinite structural processing loop
with robust error fallbacks to guarantee uptime.
import pandas as pd
import [Link] as plt
import seaborn as sns
import sys
# -------------------------------------------------------------
# 1. LOAD DATA & INITIAL PREPROCESSING
# -------------------------------------------------------------
try:
df = pd.read_csv("olympics_2020.csv")
except FileNotFoundError:
print("[SYSTEM NOTICE] 'olympics_2020.csv' not found. Populating mockup data...")
mock_data = {
'ID': range(1, 11),
'Name': ['Athlete A', 'Athlete B', 'Athlete C', 'Athlete D', 'Athlete E',
'Athlete F', 'Athlete G', 'Athlete H', 'Athlete I', 'Athlete J'],
'Sex': ['M', 'F', 'M', 'F', 'F', 'M', 'F', 'M', 'F', 'M'],
'Age': [23, 19, 27, 31, 22, 25, 28, 24, 26, 30],
'Team': ['United States', 'China', 'India', 'United States', 'Great Britain',
'China', 'India', 'United States', 'Great Britain', 'China'],
'NOC': ['USA', 'CHN', 'IND', 'USA', 'GBR', 'CHN', 'IND', 'USA', 'GBR',
'CHN'],
'Year': [2012, 2012, 2016, 2016, 2020, 2020, 2020, 2020, 2020, 2020],
'Season': ['Summer']*10,
'Sport': ['Swimming', 'Gymnastics', 'Badminton', 'Athletics', 'Cycling',
'Table Tennis', 'Weightlifting', 'Swimming', 'Rowing', 'Gymnastics'],
'Medal': ['Gold', 'Gold', 'Bronze', 'Silver', 'Gold', 'Silver', 'Silver',
'Gold', 'Bronze', 'Bronze']
}
df = [Link](mock_data)
# -------------------------------------------------------------
# 2. CORE ANALYTICAL ROUTINES
# -------------------------------------------------------------
def show_dataset_info():
print("\n=== DATASET SUMMARY ===")
print([Link]())
print("\n=== FIRST 5 ROWS ===")
print([Link]())
def top_countries_medals():
print("\n=== TOP 5 COUNTRIES BY MEDALS ===")
medal_winners = df[df['Medal'].notna()]
top_teams = medal_winners['Team'].value_counts().head(5)
print(top_teams)
Class XII IP Project Report: Olympics Data Analysis 7
[Link](figsize=(7, 4))
[Link](x=top_teams.index, y=top_teams.values, palette="muted")
[Link]("Top 5 Medal Winning Countries (Up to 2020)")
[Link]("Country")
[Link]("Total Medals Won")
plt.tight_layout()
[Link]()
def gender_participation_trend():
print("\n=== GENDER PARTICIPATION THROUGH THE YEARS ===")
gender_counts = [Link](['Year', 'Sex']).size().unstack(fill_value=0)
print(gender_counts)
[Link](figsize=(7, 4))
[Link](gender_counts.index, gender_counts['M'], marker='s', label='Male',
color='#2b6cb0')
[Link](gender_counts.index, gender_counts['F'], marker='o', label='Female',
color='#e53e3e')
[Link]("Olympic Gender Participation Trends")
[Link]("Year")
[Link]("Athlete Registrations")
[Link]()
[Link](True, alpha=0.3)
plt.tight_layout()
[Link]()
def age_distribution():
print("\n=== MEDALIST AGE DISTRIBUTION ===")
medalists = df[df['Medal'].notna()].dropna(subset=['Age'])
print(medalists['Age'].describe())
[Link](figsize=(7, 4))
[Link](medalists['Age'], bins=12, kde=True, color='#2c5282')
[Link]("Age Distribution of Olympic Medalists")
[Link]("Age Parameters")
[Link]("Frequency")
plt.tight_layout()
[Link]()
Class XII IP Project Report: Olympics Data Analysis 8
# -------------------------------------------------------------
# 3. INTERACTIVE MAIN CONTROLLER
# -------------------------------------------------------------
def main_menu():
while True:
print("\n" + "="*50)
print(" OLYMPICS DATA ANALYSIS SYSTEM MENU ")
print("="*50)
print("1. View Framework Core Schema & Metadata")
print("2. Plot Top 5 Medalist Dominant Countries")
print("3. Map Chronological Gender Inclusivity Trends")
print("4. Distribute Competitor Age Layout Profiles")
print("5. Safely Terminate Application Execution")
print("="*50)
choice = input("Enter option index [1-5]: ").strip()
if choice == '1': show_dataset_info()
elif choice == '2': top_countries_medals()
elif choice == '3': gender_participation_trend()
elif choice == '4': age_distribution()
elif choice == '5':
print("System memory flushed. Terminal closed successfully.")
[Link]()
else:
print("Action bounds exceeded. Provide a valid input.")
if __name__ == "__main__":
main_menu()
5. Data Insights & Key Functions Explained
For theoretical validation and Viva examination readiness, the critical Pandas mechanisms are unpacked
below:
• Data Cleansing (df['Medal'].notna()): Eliminates entries where participants completed
events without securing top three ranks, protecting metric accuracy.
• Aggregation Metrics (value_counts()): Sorts categorical components by absolute volume,
executing immediate frequency tallies.
• Dimensional Shifting (unstack()): Transforms transactional relational rows into tabular
structures matching linear tracking criteria.
Class XII IP Project Report: Olympics Data Analysis 9
6. Conclusion & References
The execution of this Informatics Practices project demonstrates the power of programmatic analytics in
extracting meaningful athletic narratives. Through automated sorting, grouping, and matrix conversion
operations, we mapped high-level performance attributes across more than a century of Olympic events
ending with Tokyo 2020.
The visualizations generated clearly display the steady narrowing of the historical gender gap, the
traditional concentration of medal distributions among prominent world athletic teams, and the distinct
age clustering patterns standard among elite international competitors.
References & Resource Bibliography:
1. Central Board of Secondary Education (CBSE) Informatics Practices Curriculum Guide.
2. Pandas Official Documentation Suite ([Link]).
3. Matplotlib Visual Mapping Architecture Library Guidelines ([Link]).
4. Kaggle Public Historical Repository Sets (Historical Olympic Games 1896-2020).
Class XII IP Project Report: Olympics Data Analysis 10