Skip to content
5 MIN LESSON · INFORMATICS PRACTICES

Class 12 Data Communication Project: Complete Concepts and Practice

Informatics Practices — Planning and carrying out the Class 12 IP project: choosing a problem, collecting data into a CSV file, cleaning it with Pandas (duplicates, missing values), analysing it (statistics, grouping, sorting), visualising it with Matplotlib, storing and querying it in MySQL, and presenting the findings in a report and viva, with a fully tested worked mini-project.

Big picture

The Informatics Practices practical exam includes a project: a small data-based application that brings together what you learnt in the course. A good project asks a clear question, collects real data, cleans and analyses it with Pandas, shows the results with Matplotlib charts, often stores the data in MySQL, and communicates the findings clearly.

This lesson gives a step-by-step plan, a worked mini-project with tested code, and tips for the report and viva. Follow your school's and CBSE's current guidelines for marks distribution and group size.

Learning goals

  • Choose a suitable, data-based project problem.

  • Collect data and store it in a CSV file.

  • Clean data with Pandas: remove duplicates and handle missing values.

  • Analyse data with statistics, grouping and sorting.

  • Visualise results with appropriate charts.

  • Store and query data in MySQL.

  • Present the project in a report and answer viva questions.

Core ideas

1. The project cycle

Stage

What you do

Tools

1. Define the problem

Write one or two clear questions the project will answer

2. Collect data

Survey, school records (with permission), or open government data; save as CSV

Spreadsheet, CSV

3. Clean data

Remove duplicates, handle missing values, fix data types and spelling

Pandas

4. Analyse

Calculate totals, averages, maximum and minimum; group and sort

Pandas

5. Visualise

Draw charts that answer the questions

Matplotlib

6. Store and query

Save the data in a database table and run SQL queries

MySQL

7. Communicate

Report findings, limitations and suggestions

Report, presentation

2. Choosing a good problem

Good project ideas: analysis of class results by subject and section; monthly electricity or water use of households; rainfall data of Indian states over years; sales of a local shop; library book issue records; sports performance statistics; pollution (AQI) data of cities.

A good problem is: specific ("Which section performed best in Maths and Science?"), answerable with data you can actually get, and small enough to finish.

3. Collecting data

  • Design a survey (Google Form or paper) with clear questions; record responses in a spreadsheet.

  • Use open data portals such as data.gov.in for government datasets.

  • Respect privacy: get permission, and don't include names or personal details unless needed; anonymise where possible.

  • Save the data as a CSV file so Pandas can read it with pd.read_csv().

4. Worked mini-project: section-wise performance

Question: which section has the higher average total in Maths and Science, and who is the top scorer?

Raw data (one record is accidentally repeated, and two marks are missing):

Name

Class

Maths

Science

Asha

12A

88

79

Ravi

12B

72

85

Neha

12A

missing

90

Arun

12B

65

70

Meera

12A

91

missing

Ravi

12B

72

85

Step 1: load and inspect.

import pandas as pd
df = pd.read_csv('marks.csv')
print(len(df))                    # 6 rows
print(df.duplicated().sum())      # 1 duplicate row

Step 2: clean.

df = df.drop_duplicates()                        # 5 rows remain
print(df.isnull().sum())                         # Maths 1, Science 1 missing
df['Maths'] = df['Maths'].fillna(df['Maths'].mean())        # mean 79.0
df['Science'] = df['Science'].fillna(df['Science'].mean())  # mean 81.0

The missing Maths mark (Neha) becomes 79 and the missing Science mark (Meera) becomes 81. Filling with the mean is one choice; you could also drop incomplete rows, or fill with 0 if the student was absent. State your choice and reason in the report.

Step 3: analyse.

df['Total'] = df['Maths'] + df['Science']
print(df.groupby('Class')['Total'].mean().round(2))   # 12A 169.33, 12B 146.0
print(df.sort_values('Total', ascending=False).iloc[0]['Name'])   # Meera

Name

Class

Total

Asha

12A

167

Ravi

12B

157

Neha

12A

169

Arun

12B

135

Meera

12A

172

Finding: Section 12A has the higher average total (169.33 versus 146.0), and Meera is the top scorer with 172.

Step 4: visualise.

import matplotlib.pyplot as plt
avg = df.groupby('Class')['Total'].mean()
plt.bar(avg.index, avg.values, color=['teal', 'orange'])
plt.title('Average Total by Section')
plt.xlabel('Section')
plt.ylabel('Average total (out of 200)')
plt.savefig('section_avg.png')
plt.show()

A bar chart suits a comparison of categories; a histogram of totals would show their distribution.

Step 5: store and query in MySQL.

CREATE TABLE result (Name VARCHAR(20), Class CHAR(3), Maths FLOAT, Science FLOAT);
SELECT Class, AVG(Maths + Science) FROM result GROUP BY Class;
SELECT Name FROM result ORDER BY Maths + Science DESC LIMIT 1;

5. Writing the project report

A typical report includes:

  1. Certificate and acknowledgement.

  2. Introduction: the problem and why it matters.

  3. Objectives: the questions answered.

  4. Data source and collection method, including privacy steps.

  5. Hardware and software used: Python, Pandas, Matplotlib, MySQL.

  6. Data cleaning steps, with reasons.

  7. Code, with comments, and sample outputs (tables and charts).

  8. Findings and conclusions.

  9. Limitations (small sample, missing data) and future scope.

  10. Bibliography / references.

6. Viva tips

Be ready to explain: why you chose each chart; how you handled missing values; what groupby(), fillna() and drop_duplicates() do; the difference between a Series and a DataFrame; how your SQL queries work; and one limitation of your project.

A reliable routine for your project

  1. Write a clear question first.

  2. Collect enough data responsibly and save it as CSV.

  3. Inspect it (head(), info(), isnull(), duplicated()) before analysing.

  4. Clean, then analyse, then visualise, then interpret.

  5. Document every step and every decision.

Connections that matter

  • Data handling with Pandas gives all the cleaning and analysis functions.

  • Data visualisation gives the plotting functions.

  • Advanced SQL queries gives the database queries.

  • Responsible data practice explains consent, privacy and fair use of data.

Common mistakes

  • Analysing data without cleaning it first, so duplicates and missing values distort results.

  • Choosing a chart that doesn't fit the question.

  • Copying a project or dataset without understanding it.

  • Including personal information without consent.

  • Writing findings that the data doesn't actually support.

Revision checklist

  • I can define a clear, data-based project question.

  • I can collect data responsibly and save it as CSV.

  • I can remove duplicates and handle missing values.

  • I can analyse with grouping, statistics and sorting.

  • I can choose and draw the right chart.

  • I can store and query data in MySQL and write a complete report.

Practise this topic →

Discussion

Sign in to join the discussion.

Sign in

No comments yet. Be the first to share your thoughts.