0% found this document useful (0 votes)
21 views8 pages

Computer Science Project (Python & SQL)

The document outlines a Computer Science project titled 'Student Academic Management System based on NEP 2020,' developed by Brahmdutt Mishra, which utilizes Python and MySQL to manage student academic records. It includes acknowledgments, a certificate of completion, detailed introductions to Python and MySQL, coding examples, database structures, output screens, and future scope for enhancements. The project aims to provide an efficient digital solution for academic data management in line with the New Education Policy 2020.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views8 pages

Computer Science Project (Python & SQL)

The document outlines a Computer Science project titled 'Student Academic Management System based on NEP 2020,' developed by Brahmdutt Mishra, which utilizes Python and MySQL to manage student academic records. It includes acknowledgments, a certificate of completion, detailed introductions to Python and MySQL, coding examples, database structures, output screens, and future scope for enhancements. The project aims to provide an efficient digital solution for academic data management in line with the New Education Policy 2020.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

COMPUTER SCIENCE PROJECT

INDEX

S. No. Content

1 Acknowledgement

2 Certificate

3 Introduction about Topic

4 Introduction about Python

5 Introduction about MySQL

6 Hardware & Software Requirements

7 Coding

8 Database Tables

9 Output Screen

10 Future Scope

11 Bibliography

Topic: Student Academic Management System based on NEP 2020

1. Acknowledgement

I would like to express my sincere gratitude to my Computer Science teacher Mrs. Achi Sharma for her
valuable guidance, encouragement, and continuous support throughout the development of this project.
Her clear explanations and motivation helped me understand the concepts of Python programming and
database management using MySQL in a practical manner.

I am also thankful to the Principal and management of Blue Bells Public School, Jhansi, for providing the
necessary infrastructure, computer lab facilities, and academic environment required to successfully
complete this project. I would like to thank my parents for their constant moral support and
encouragement, which motivated me to complete this work on time.

Lastly, I thank my friends and classmates for their cooperation, suggestions, and help whenever required.
This project has helped me enhance my practical knowledge and confidence in Computer Science.

1
2. Certificate

This is to certify that Brahmdutt Mishra, a student of Class XII, Blue Bells Public School, Jhansi, has
successfully completed the Computer Science project titled "Student Academic Management System
based on NEP 2020" using Python and MySQL during the academic year 2025–26, under the guidance of
Mrs. Achi Sharma.

This project is an original piece of work carried out by the student and has not been copied from any
source. The project fulfills the practical requirements prescribed by the CBSE curriculum for Class XII
Computer Science. We wish him success in his future academic endeavors.

3. Introduction about Topic

The Student Academic Management System is a computer-based application developed to store, manage,
and process student academic records efficiently. With the increasing number of students and courses,
manual record-keeping becomes difficult and time-consuming. This project provides a digital solution to
manage academic data accurately and securely.

The project is based on the principles of the New Education Policy (NEP) 2020, which emphasizes
flexibility, skill-based education, multiple entry and exit options, and a credit-based system. Using this
system, students can earn credits for different courses, and their academic progress can be tracked through
the Academic Bank of Credits (ABC) concept.

Python is used as the front-end programming language to create a menu-driven interface, while MySQL is
used as the back-end database to store student details, course information, enrollment records, marks,
grades, and credits.

4. Introduction about Python

Python is a high-level, interpreted, and object-oriented programming language known for its simplicity and
readability. It is widely used in fields such as software development, data science, artificial intelligence, web
development, and database management.

One of the main advantages of Python is its easy syntax, which makes it suitable for beginners as well as
professionals. Python provides various libraries and modules that simplify complex tasks. In this project,
Python is used to connect with the MySQL database, accept user input, perform calculations, assign grades,
and display results.

Python also supports file handling, which is used in this project to export academic records into a CSV file.
Thus, Python plays a crucial role in implementing the logic of the Student Academic Management System.

2
5. Introduction about MySQL

MySQL is an open-source Relational Database Management System (RDBMS) that uses Structured Query
Language (SQL) to manage data. It stores data in the form of tables consisting of rows and columns,
making data storage systematic and efficient.

In this project, MySQL is used to create and manage the database college_nep, which stores student
information, course details, and enrollment records. Relationships between tables are established using
primary keys and foreign keys to maintain data integrity.

MySQL ensures fast data retrieval, security, and reliability. It is widely used in real-world applications such as
school management systems, banking systems, and e-commerce platforms.

6. Hardware & Software Requirements

Hardware Requirements: - Computer or Laptop - Minimum 4 GB RAM - Intel/AMD Processor - Keyboard


and Mouse - Internet Connection (optional)

Software Requirements: - Operating System: Windows / Linux - Python 3.x - MySQL Server - MySQL
Connector for Python - Python IDE (IDLE / VS Code)

These requirements ensure smooth execution of the Python program and proper database connectivity.

7. Coding

The project is developed using Python and SQL. Below is the complete SQL and Python code used in the
project.

SQL Code (Database Creation and Tables):

CREATE DATABASE college_nep;


USE college_nep;

CREATE TABLE students (


student_id INT PRIMARY KEY,
name VARCHAR(50),
semester INT
);

CREATE TABLE courses (


course_id INT PRIMARY KEY,
course_name VARCHAR(50),
course_type VARCHAR(20),
credits INT

3
);

CREATE TABLE enrollment (


student_id INT,
course_id INT,
marks INT,
grade VARCHAR(2),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);

Python Code:

import [Link]
import csv

conn = [Link](
host="localhost",
user="root",
password="your_password",
database="college_nep"
)

cursor = [Link]()

def add_student():
sid = int(input("Student ID: "))
name = input("Name: ")
sem = int(input("Semester: "))
[Link]("INSERT INTO students VALUES (%s,%s,%s)", (sid, name, sem))
[Link]()

def add_course():
cid = int(input("Course ID: "))
cname = input("Course Name: ")
ctype = input("Type (Core/Skill/Elective): ")
credits = int(input("Credits: "))
[Link]("INSERT INTO courses VALUES (%s,%s,%s,%s)", (cid, cname,
ctype, credits))
[Link]()

def enroll_student():
sid = int(input("Student ID: "))
cid = int(input("Course ID: "))
marks = int(input("Marks: "))

4
if marks >= 90:
grade = 'A+'
elif marks >= 75:
grade = 'A'
elif marks >= 60:
grade = 'B'
elif marks >= 45:
grade = 'C'
else:
grade = 'F'

[Link]("INSERT INTO enrollment VALUES (%s,%s,%s,%s)", (sid, cid,


marks, grade))
[Link]()

def calculate_credits():
sid = int(input("Student ID: "))
[Link]("SELECT SUM([Link]) FROM enrollment e JOIN courses c ON
e.course_id=c.course_id WHERE e.student_id=%s AND [Link]!='F'", (sid,))
total = [Link]()[0]
print("Total Credits Earned:", total)

def export_record():
[Link]("SELECT s.student_id, [Link], c.course_name, [Link], [Link]
FROM students s JOIN enrollment e ON s.student_id=e.student_id JOIN courses c ON
e.course_id=c.course_id")
rows = [Link]()
with open("academic_record.csv", "w", newline="") as f:
writer = [Link](f)
[Link](["ID","Name","Course","Marks","Grade"])
[Link](rows)

while True:
print("[Link] Student [Link] Course [Link] Student [Link] Credits
[Link] Record [Link]")
ch = input("Enter Choice: ")
if ch == '1': add_student()
elif ch == '2': add_course()
elif ch == '3': enroll_student()
elif ch == '4': calculate_credits()
elif ch == '5': export_record()
elif ch == '6': break

[Link]()

5
8. Database Tables

The project uses three main database tables. The structure and sample output of each table are shown
below.

1. Students Table Output:

+------------+--------------+----------+
| student_id | name | semester |
+------------+--------------+----------+
| 101 | Rahul Sharma | 1 |
| 102 | Ankit Verma | 2 |
+------------+--------------+----------+

2. Courses Table Output:

+-----------+----------------+-------------+---------+
| course_id | course_name | course_type | credits |
+-----------+----------------+-------------+---------+
| 201 | Python | Core | 4 |
| 202 | Data Analysis | Skill | 3 |
+-----------+----------------+-------------+---------+

3. Enrollment Table Output:

+------------+-----------+-------+-------+
| student_id | course_id | marks | grade |
+------------+-----------+-------+-------+
| 101 | 201 | 85 | A |
| 102 | 202 | 72 | B |
+------------+-----------+-------+-------+

These tables are connected using foreign keys and follow the NEP 2020 credit-based system.

9. Output Screen

The following are sample outputs generated after executing the Python program.

Output 1: Main Menu Display

6
[Link] Student
[Link] Course
[Link] Student
[Link] Credits
[Link] Record
[Link]

Output 2: Adding a Student

Student ID: 101


Name: Rahul Sharma
Semester: 1
Student Added Successfully

Output 3: Adding a Course

Course ID: 201


Course Name: Python
Type: Core
Credits: 4
Course Added Successfully

Output 4: Credit Calculation (ABC Concept)

Student ID: 101


Total Credits Earned: 4

Output 5: Export Academic Record

Academic Record Exported


File saved as academic_record.csv

These outputs confirm the correct working of the program functions.

7
10. Future Scope

This project can be enhanced by: - Adding a graphical user interface (GUI) - Including login authentication -
Generating report cards automatically - Integrating with web applications - Implementing full Academic
Bank of Credits (ABC) system

11. Bibliography

• NCERT Computer Science Textbook (Class XII)


• [Link]
• [Link]
• CBSE Academic Curriculum

Submitted by:
Name: Brahmdutt Mishra
Class: XII
School: Blue Bells Public School, Jhansi

Common questions

Powered by AI

Python and MySQL serve complementary roles in data handling and functionality within the Student Academic Management System. Python, being a high-level, interpreted programming language, manages user interactions and logical operations such as adding students, courses, and enrollment details, calculating grades, and exporting data . Its ease of syntax and robust libraries enable effective implementation of the system's business logic. MySQL, on the other hand, operates as the relational database management system, structuring data into tables with defined relationships through primary and foreign keys, ensuring efficient data retrieval, integrity, and security . Together, they create a cohesive system that combines an easy-to-use interface with a reliable data management backend. In terms of functionality, Python handles the dynamic aspects like modifying and presenting data, while MySQL focuses on the static organization and storage of data .

The Student Academic Management System is aligned with the principles of NEP 2020 by providing a flexible and skill-based educational framework that incorporates multiple entry and exit points and a credit-based system. This alignment is achieved through the Academic Bank of Credits (ABC) concept, allowing students to earn and manage credits for various courses . Python serves as the front-end platform in the system, providing a straightforward, menu-driven interface that accepts user inputs, performs calculations, assigns grades, and exports academic records to CSV files . MySQL functions as the back-end database, efficiently storing student details, course information, enrollment records, marks, grades, and credits. It ensures data integrity with the use of primary and foreign keys .

In the Student Academic Management System, the calculation of credits is achieved by using Python to execute SQL joins between tables, specifically summing up the credits for courses that a student has passed (i.e., where the grade is not 'F'). Exporting academic records utilizes Python's file handling capabilities to fetch records from the database and write them into a CSV file . These features provide systematic tracking of student progress and allow for easy documentation and sharing of academic records .

The hardware requirements for the Student Academic Management System include a computer or laptop with at least 4 GB RAM, an Intel/AMD processor, keyboard and mouse, and an optional internet connection. Software requirements consist of any Windows or Linux operating system, Python 3.x, MySQL Server, MySQL Connector for Python, and a Python IDE such as IDLE or VS Code . These requirements ensure smooth execution of the Python program and efficient database connectivity. The significance lies in providing an adequate environment for developing and running the program without performance issues, ensuring compatibility and reliability in data processing tasks .

In the Student Academic Management System's database, primary keys uniquely identify each record in a table, while foreign keys are used to link tables together and ensure referential integrity. For example, ‘student_id’ serves as a primary key in the 'students' table and as a foreign key in the 'enrollment' table, linking students to their courses. Similarly, 'course_id' is a primary key in the 'courses' table and a foreign key in the 'enrollment' table. This structured setup ensures that no records in the 'enrollment' table can exist without a corresponding valid entry in the 'students' or 'courses' tables, thus maintaining data integrity and preventing anomalies such as orphaned records .

The database of the Student Academic Management System is comprised of three main tables: 'students', 'courses', and 'enrollment'. The 'students' table includes columns for 'student_id', 'name', and 'semester', establishing a unique identifier for each student . The 'courses' table contains 'course_id', 'course_name', 'course_type', and 'credits', defining the attributes for each course offered. The 'enrollment' table, which links students to their respective courses, includes 'student_id', 'course_id', 'marks', and 'grade', using 'student_id' and 'course_id' as foreign keys to maintain relational integrity and prevent orphan records . This structure facilitates data integrity by ensuring that all data entries are properly related through primary and foreign key constraints, and usability is enhanced by making data retrieval and manipulation straightforward through well-defined relationships .

The Student Academic Management System can be enhanced by adding a graphical user interface (GUI) for better user interaction, including login authentication for secure access, generating report cards automatically for seamless evaluation, integrating with web applications for wider accessibility, and fully implementing the Academic Bank of Credits (ABC) system to align more closely with NEP 2020. These enhancements would improve both the functionality and user experience of the system .

Implementing the Student Academic Management System within a school under NEP 2020 guidelines has profound educational implications. The system aligns with NEP 2020's emphasis on flexibility, skill-based education, and the multiple entry and exit options through the use of the Academic Bank of Credits (ABC) where students accumulate credits across different subjects . By digitizing academic records management, the system reduces administrative burden and enhances accuracy and security of data storage. It facilitates personalized learning paths, allowing educational institutions to cater more effectively to students' individual needs and pace of learning, thereby improving educational outcomes and adhering to the broader goals of NEP 2020 .

The Python script for the Student Academic Management System demonstrates maintainability and readability through the use of clear function definitions, logical segmentation of tasks, and consistent naming conventions. Each functionality, such as adding students or courses and enrolling students, is encapsulated within specific functions, which improves readability and makes the script more organized . Additionally, user input and database operations are handled separately, which aids in troubleshooting and debugging. These practices are important as they make the code easier to understand, extend, and modify, enhancing collaboration and facilitating future development or integration with other systems .

NEP 2020 influences the design and functionality of the Student Academic Management System by emphasizing a flexible, credit-based approach to education. The system incorporates the Academic Bank of Credits (ABC), which allows students to earn, manage, and transfer credits across various courses, reflecting the principles of NEP 2020 . This flexibility supports personalized learning pathways and promotes skill-based education, empowering students to choose courses that align with their interests and career goals. The potential impact on students' academic experiences includes increased adaptability in their educational journey, an emphasis on interdisciplinary learning, and enhanced preparedness for diverse career opportunities, fostering a more holistic and relevant educational experience .

You might also like