Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
🏆 Project और Revision  ·  Lesson 23

Project Based Learning (Sample Project)

Project-based learning क्या है?

Project-based learning में आप एक असली समस्या को शुरू से अंत तक हल करके सीखते हैं – data इकट्ठा करना, code लिखना, results का analysis और प्रस्तुति। इससे वे skills बनती हैं जो सिर्फ़ exams नहीं जाँच सकते: planning, teamwork और communication।

Project हल करने का तरीका

  1. 1समस्या और users पहचानें
  2. 2Plan: tasks, tools और समय-सीमा तय करें
  3. 3Data इकट्ठा करें (survey, Google Form, CSV, MySQL)
  4. 4pandas से data process और analyse करें
  5. 5Matplotlib से charts बनाकर समझें
  6. 6Test, document और result प्रस्तुत करें
Data project के छह चरण

Teamwork

🗣️
Communicationप्रगति और समस्याएँ खुलकर बताएँ।
🧩
काम बाँटेंहर सदस्य का एक हिस्सा – data, code, charts, report।
🤝
सम्मानविचार सुनें; मिलकर तय करें।
⏰
समय-सीमाShared checklist पर tasks track करें।
अच्छी team की आदतें

Project ideas

  • School result analysis (नीचे दिखाया)
  • Canteen की बिक्री और stock analysis
  • अपने शहर का मौसम या air-quality data
  • Library book issue analysis
  • छात्रों के screen time और नींद पर survey
  • Cricket / IPL खिलाड़ियों के आँकड़े

Sample project: Result Analysis

उद्देश्य: class के marks का analysis करके औसत, topper, grade distribution और section-wise प्रदर्शन निकालना। Tools: Python, pandas, Matplotlib, CSV।

class12_result.csvpandas: Total, %, GradeAnalysisChartsMenu program
Project flow

Step 1: Data इकट्ठा

Python
# Step 1 – create the data file (in a real project you collect this from a survey or form)
import pandas as pd
data = {'Roll': range(1, 13),
        'Name': ['Aarav', 'Bela', 'Chirag', 'Diya', 'Eshan', 'Farah', 'Gopal', 'Hina',
                 'Ishaan', 'Jiya', 'Kunal', 'Lata'],
        'Section': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'],
        'English': [78, 85, 62, 90, 71, 88, 55, 93, 67, 80, 74, 69],
        'Maths': [92, 74, 58, 81, 88, 67, 49, 95, 73, 61, 84, 77],
        'IP': [95, 89, 70, 92, 84, 79, 61, 98, 76, 83, 90, 72]}
pd.DataFrame(data).to_csv('class12_result.csv', index=False)
print('class12_result.csv created with', len(data['Roll']), 'students')
class12_result.csv created with 12 students

Step 2: Process

Python
# Step 2 – read, add Total, Percent and Grade
import pandas as pd
df = pd.read_csv('class12_result.csv')
df['Total'] = df[['English', 'Maths', 'IP']].sum(axis=1)
df['Percent'] = (df['Total'] / 3).round(1)
def grade(p):
    if p >= 90: return 'A1'
    if p >= 80: return 'A2'
    if p >= 70: return 'B1'
    if p >= 60: return 'B2'
    return 'C'
df['Grade'] = df['Percent'].apply(grade)
df.to_csv('class12_processed.csv', index=False)
print(df[['Name', 'Section', 'Total', 'Percent', 'Grade']])
Name Section Total Percent Grade 0 Aarav A 265 88.3 A2 1 Bela B 248 82.7 A2 2 Chirag A 190 63.3 B2 3 Diya B 263 87.7 A2 4 Eshan A 243 81.0 A2 5 Farah B 234 78.0 B1 6 Gopal A 165 55.0 C 7 Hina B 286 95.3 A1 8 Ishaan A 216 72.0 B1 9 Jiya B 224 74.7 B1 10 Kunal A 248 82.7 A2 11 Lata B 218 72.7 B1

Step 3: Analyse

Python
# Step 3 – analysis
import pandas as pd
df = pd.read_csv('class12_processed.csv')
print('Class average %   :', round(df['Percent'].mean(), 2))
print('Subject averages  :'); print(df[['English', 'Maths', 'IP']].mean().round(1))
print('Topper            :', df.loc[df['Total'].idxmax(), 'Name'])
print('Section-wise mean :'); print(df.groupby('Section')['Percent'].mean().round(2))
print('Grade count       :'); print(df['Grade'].value_counts().sort_index())
Class average % : 77.78 Subject averages : English 76.0 Maths 74.9 IP 82.4 dtype: float64 Topper : Hina Section-wise mean : Section A 73.72 B 81.85 Name: Percent, dtype: float64 Grade count : Grade A1 1 A2 5 B1 4 B2 1 C 1 Name: count, dtype: int64

Step 4: Charts

Python
# Step 4 – charts
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('class12_processed.csv')
avg = df[['English', 'Maths', 'IP']].mean()
plt.bar(avg.index, avg.values, color=['#2563eb', '#f97316', '#16a34a'])
plt.title('Subject-wise Class Average'); plt.ylabel('Average marks'); plt.ylim(0, 100)
plt.savefig('project_subject_avg.png')
plt.figure()
plt.hist(df['Percent'], bins=[50, 60, 70, 80, 90, 100], edgecolor='black', color='#a78bfa')
plt.title('Distribution of Percentage'); plt.xlabel('Percent'); plt.ylabel('Students')
plt.savefig('project_hist.png')
plt.figure()
gc = df['Grade'].value_counts().sort_index()
plt.pie(gc.values, labels=gc.index, autopct='%1.0f%%')
plt.title('Grade Share')
plt.savefig('project_pie.png')
print('3 charts saved')
3 charts saved
Subject-wise class average का bar chart
Subject averages
प्रतिशत का histogram
प्रतिशत का वितरण
Grade share का pie chart
Grade share

Step 5: Menu program

Python
# Step 5 – menu-driven program that ties everything together
import pandas as pd
df = pd.read_csv('class12_processed.csv')
while True:
    print('1.Show all 2.Search by name 3.Students above % 4.Exit')
    ch = input('Choice: ')
    if ch == '1':
        print(df[['Roll', 'Name', 'Percent', 'Grade']].to_string(index=False))
    elif ch == '2':
        n = input('Name: ')
        r = df[df['Name'].str.lower() == n.lower()]
        print(r[['Name', 'English', 'Maths', 'IP', 'Percent']].to_string(index=False) if len(r) else 'Not found')
    elif ch == '3':
        p = float(input('Minimum %: '))
        print(df[df['Percent'] >= p]['Name'].tolist())
    else:
        print('Thank you'); break
1.Show all 2.Search by name 3.Students above % 4.Exit Choice: 2 Name: hina Name English Maths IP Percent Hina 93 95 98 95.3 1.Show all 2.Search by name 3.Students above % 4.Exit Choice: 3 Minimum %: 85 ['Aarav', 'Diya', 'Hina'] 1.Show all 2.Search by name 3.Students above % 4.Exit Choice: 4 Thank you

⬇ Download project code (class-12-ip-programs-sql)

Project report लिखना

  1. Certificate और acknowledgement
  2. परिचय और उद्देश्य
  3. इस्तेमाल किया hardware और software
  4. Data का विवरण (columns और स्रोत)
  5. Comments के साथ source code
  6. Output screenshots और charts
  7. निष्कर्ष और आगे की संभावनाएँ
  8. Bibliography (इस्तेमाल की websites और किताबें)

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Class 12 IP project में क्या होना चाहिए?
असल ज़िंदगी की समस्या, CSV या MySQL में data, processing और analysis का pandas code, Matplotlib charts, menu या report, और documentation – उद्देश्य, tools, code, output screenshots और निष्कर्ष।
क्या project group में कर सकते हैं?
हाँ, आमतौर पर 2–3 छात्रों के group में। काम बाँटें – data collection, code, charts और report – और नियमित मिलें।
← Class 12 Informatics Practices
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

अगला topicज़रूरी Programs और Queries आपकी प्रगति: 23 / 25 (92%) · Lesson 24 / 25 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें