🐼📊🗄️🌐🐍📈⚖️
NareN
Score: 0 / 0 attempted
🐼PANDAS
🗄️SQL
🌐NETWORKS
⚖️SOCIETY
📊CHARTS
CBSE · CLASS XII · SESSION 2026–27

Informatics
Practices

SUBJECT CODE · 065
A complete interactive study guide — full syllabus, CBSE blueprint, detailed topic-wise notes on Pandas, Data Visualization, SQL, Networks & Societal Impacts, 1080 practice questions (8 types), the CBSE Sample Paper and practice papers with marking schemes.
📦 What's inside this guide
9 Chapters
Pandas Series & DataFrames, CSV, Matplotlib, SQL functions/aggregates/joins, Networks, Societal Impacts
Interactive Banks
MCQ · T/F · Fill · Assertion-Reason · Match · Output/Competency · Case-Based · Theory
10 Practice Papers
CBSE Sample Paper + marking scheme reproduced, plus full 37-question papers with answers
📌 Exam at a glance
ComponentMarksDetail
Theory (written)703-hour paper · 37 questions · Sections A–E
Practical30Pandas/Matplotlib programs, SQL queries, project, file & viva
Total100Subject code 065
Use the left menu to jump to any chapter. In each chapter, scroll to the Practice Question Bank and click the tabs (MCQ, Case-Based Study, etc.). Click Show Answer to reveal detailed solutions. Your MCQ score is tracked in the top bar.

🗺️ Complete Syllabus & Distribution of Marks

CBSE Informatics Practices (065), Class XII, Session 2026-27. The theory paper is 70 marks and the practical is 30 marks.

UnitUnit NameMarks
1Data Handling using Pandas and Data Visualization25
2Database Query using SQL25
3Introduction to Computer Networks10
4Societal Impacts10
Total Theory70
Practical30
Grand Total100

Unit 1 · Data Handling using Pandas and Data Visualization (25)

Data Handling using Pandas – I
  • Introduction to Python libraries — Pandas, Matplotlib.
  • Data structures in Pandas — Series and DataFrame.
  • Series: creation (from ndarray, dictionary, scalar); mathematical operations; head() & tail(); selection, indexing & slicing.
  • DataFrame: creation (from a 2-D dictionary, list of dictionaries/lists, etc.); operations on rows & columns (add, select, delete, rename); head() & tail(); indexing using labels (loc) & boolean indexing (iloc).
  • Importing/Exporting data between CSV files and DataFrames.
Data Visualization
  • Purpose of plotting; drawing and saving the following types of plots using Matplotlib — line plot, bar graph, histogram.
  • Customizing plots: adding label, title, and legend in plots.

Unit 2 · Database Query using SQL (25)

  • Revision of database concepts and SQL commands covered in Class XI.
  • Math functions: POWER(), ROUND(), MOD().
  • Text functions: UCASE()/UPPER(), LCASE()/LOWER(), MID()/SUBSTRING()/SUBSTR(), LENGTH(), LEFT(), RIGHT(), INSTR(), LTRIM(), RTRIM(), TRIM().
  • Date functions: NOW(), DATE(), MONTH(), MONTHNAME(), YEAR(), DAY(), DAYNAME().
  • Aggregate functions: MAX(), MIN(), AVG(), SUM(), COUNT(); using COUNT(*).
  • Querying and manipulating data using GROUP BY, HAVING, ORDER BY.
  • Working with two tables using equi-join.

Unit 3 · Introduction to Computer Networks (10)

  • Introduction to networks; types of network — PAN, LAN, MAN, WAN.
  • Network devices — modem, hub, switch, repeater, router, gateway.
  • Network topologies — Star, Bus, Tree, Mesh.
  • Introduction to Internet, URL, WWW and its applications — Web, Email, Chat, VoIP.
  • Website: web page, static vs dynamic web page, web server, web hosting.
  • Web Browsers: introduction, commonly used browsers; browser settings; add-ons and plug-ins; cookies.

Unit 4 · Societal Impacts (10)

  • Digital footprint; net and communication etiquettes; data protection.
  • Intellectual Property Rights (IPR), plagiarism, licensing and copyright.
  • Free and Open Source Software (FOSS).
  • Cybercrime and cyber laws — hacking, phishing, cyber bullying; overview of the Indian IT Act.
  • E-waste: hazards and management; awareness of health concerns related to the usage of technology.

Practical · Distribution of 30 Marks

S.NoComponentMarks
1Programs using Pandas and Matplotlib (Data Handling & Visualization)8
2SQL Queries7
3Project Work8
4Practical File (record)4
5Viva Voce3
Total30
Project Work: students take up one real-world problem and develop a solution using Python libraries (Pandas/Matplotlib) and/or SQL, individually or in groups of 2–3, and present a report.

📐 CBSE Sample Paper Blueprint

The 70-mark theory paper has 37 questions across five sections. This is the official CBSE design followed in the Sample Question Paper.

SectionNo. of QuestionsQ. No.Marks eachTotal
SECTION A211 – 21121
SECTION B0722 – 28214
SECTION C0329 – 31309
SECTION D0432 – 35416
SECTION E0236 – 37510
Total3770

Unit-wise weightage in the paper

UnitA (1)B (2)C (3)D (4)E (5)
Unit 1 · Pandas (Series, DataFrame, CSV)8Q22, Q24, Q28Q30Q33
Unit 1 · Data VisualizationQ34
Unit 2 · SQL (functions, aggregate, group by, join)7Q26Q31Q32, Q35Q37
Unit 3 · Computer Networks3Q25Q36
Unit 4 · Societal Impacts3Q23, Q27Q29
General pattern: Section A = 19 MCQ/Fill/True-False + 2 Assertion-Reason (Q20, Q21). Internal choices are given in some 2, 3, 4 and 5-mark questions. All programming answers in Python; for MCQ the text of the correct option must also be written.

🎯 How to Use This Guide

1. Learn the concept
Read the chapter notes — definitions, syntax, worked examples, diagrams and "common mistake" boxes.
2. Practise actively
Open the Practice Question Bank, try each tab (MCQ, Output, Case-Based, Theory…) and reveal detailed answers.
3. Attempt full papers
Solve the CBSE Sample Paper and the 10 practice papers under timed conditions, then check the marking scheme.
4. Revise smart
Use the Glossary and Exam Strategy before the exam; focus on SQL queries and Pandas output questions — they carry the most marks.
High-yield areas: Pandas Series/DataFrame output questions, SQL queries (functions + group by + join), and Societal Impacts 1-markers. Master these first.

🐼 Chapter 1 · Python Libraries & Pandas Series

A library is a collection of ready-made modules and functions. In Informatics Practices we mainly use NumPy (numerical arrays), Pandas (data handling) and Matplotlib (plotting). This chapter covers Pandas Series — a one-dimensional labelled array.

🎯 You will learn: importing libraries · what Pandas is · creating a Series (ndarray, dict, scalar) · indexes & slicing · head()/tail() · vector (mathematical) operations · common attributes.

1.1 Python Libraries

A library bundles related modules so we can reuse code. The three key data-science libraries:

LibraryUseTypical import
NumPyFast numerical arrays (ndarray)import numpy as np
PandasData handling — Series & DataFrameimport pandas as pd
MatplotlibCharts — line, bar, histogramimport matplotlib.pyplot as plt
Pandas (Panel Data) is an open-source Python library built on NumPy, used to store, clean, analyse and manipulate data using two structures — Series (1-D) and DataFrame (2-D).

1.2 What is a Series?

A Series is a one-dimensional labelled array that can hold data of any single type (int, float, string, etc.). It has two parts: the data (values) and the index (labels). If you don't give an index, Pandas uses default positions 0, 1, 2, …

index values 0 10 1 20 2 30 dtype: int64
Fig 1.1 A Series = index (labels) + values, with a single data type (dtype).

1.3 Creating a Series

EXAMPLE 1.1 · from a list / ndarray
import pandas as pd
import numpy as np
s = pd.Series([10, 20, 30])
print(s)
# 0    10
# 1    20
# 2    30
# dtype: int64
EXAMPLE 1.2 · with a custom index
s = pd.Series([85, 90, 78], index=['Maths','Sci','Eng'])
print(s['Sci'])      # 90
EXAMPLE 1.3 · from a dictionary & a scalar
d = pd.Series({'a':1, 'b':2, 'c':3})   # keys become the index
sc = pd.Series(5, index=[0,1,2])       # scalar repeated → 5,5,5
Remember: when a Series is created from a dictionary, the dictionary's keys become the index and the values become the data.

1.4 head(), tail(), Indexing & Slicing

OperationMeaningExample (s has 6 items)
s.head(3)first 3 elementstop of the Series
s.tail(2)last 2 elementsbottom of the Series
s[0]element by position/labelfirst value
s[1:4]slice (positional, stop excluded)elements 1,2,3
Did you know? head() and tail() default to 5 elements if you don't pass a number — s.head() shows the first five rows.

1.5 Vector (Mathematical) Operations

Operations apply element-wise and align by index. Arithmetic with a scalar affects every element.

EXAMPLE 1.4
s = pd.Series([10, 20, 30])
print(s + 5)        # 15, 25, 35
print(s * 2)        # 20, 40, 60
print(s > 15)       # False, True, True
Index alignment: when two Series are added, values are matched by index; labels present in only one Series give NaN.

1.6 Useful Series Attributes

AttributeReturns
s.valuesthe data as an ndarray
s.indexthe index labels
s.sizenumber of elements
s.dtypedata type of the values
s.emptyTrue if the Series has no elements
📝 Chapter 1 in one line: A Pandas Series is a 1-D labelled array (index + values, single dtype); create it from a list/ndarray, dictionary (keys→index) or scalar; use head()/tail(), indexing/slicing, vector maths, and attributes like values, index, size, dtype.
LibraryPandasSeriesindexdtypehead()/tail()vector operationNaN

📝 Practice Question Bank — Chapter 1

🧾 Chapter 2 · Pandas DataFrames

A DataFrame is a two-dimensional, size-mutable, labelled data structure with rows and columns — like a table or spreadsheet. Each column can hold a different data type, and both rows and columns have labels (the row index and the column headers).

🎯 You will learn: creating a DataFrame (dict of lists, list of dicts, dict of Series) · attributes · selecting/adding/deleting/renaming columns & rows · loc vs iloc · head()/tail() · boolean indexing.

2.1 Series vs DataFrame

FeatureSeriesDataFrame
Dimensions1-D2-D
Structureindex + valuesrows + columns
Data typesone dtypeeach column may differ
Analogya single columna whole table

2.2 Creating a DataFrame

EXAMPLE 2.1 · from a dictionary of lists
import pandas as pd
data = {'Name':['Asha','Ravi','Meera'], 'Marks':[85, 90, 78]}
df = pd.DataFrame(data)
print(df)
#     Name  Marks
# 0   Asha     85
# 1   Ravi     90
# 2  Meera     78

Each dictionary key becomes a column; the lists become the column data; the row index defaults to 0,1,2…

EXAMPLE 2.2 · from a list of dictionaries
rec = [{'Name':'Asha','Marks':85}, {'Name':'Ravi','Marks':90}]
df = pd.DataFrame(rec)   # each dict becomes a ROW
Key difference: a dictionary of lists → each key is a column; a list of dictionaries → each dict is a row. A missing key in a list of dicts becomes NaN.

2.3 Useful DataFrame Attributes

AttributeReturns
df.shape(rows, columns) tuple
df.sizetotal number of cells (rows × cols)
df.columnsthe column labels
df.indexthe row labels
df.dtypesdata type of each column
df.ndimnumber of dimensions (2)
df.emptyTrue if the DataFrame has no data
df.Ttranspose (rows ↔ columns)

2.4 Selecting Columns and Rows

EXAMPLE 2.3
df['Marks']              # one column (as a Series)
df[['Name','Marks']]     # two columns (as a DataFrame)
df[0:2]                  # first two ROWS by slicing
loc selects by label: df.loc[1, 'Marks']. iloc selects by integer position: df.iloc[1, 1]. With loc the stop label is included; with iloc the stop position is excluded.
StatementSelects
df.loc[2]row with label 2 (all columns)
df.loc[0:2,'Name']rows 0–2 (inclusive) of column Name
df.iloc[0:2]first 2 rows (positions 0,1)
df.iloc[0,1]cell at row 0, column 1

2.5 Adding, Deleting & Renaming

EXAMPLE 2.4
# add a new column
df['Grade'] = ['A','A','B']
# add/append a row
df.loc[3] = ['Sara', 88, 'A']
# delete a column
df = df.drop('Grade', axis=1)      # axis=1 → column
# delete a row
df = df.drop(2, axis=0)            # axis=0 → row
# rename a column
df = df.rename(columns={'Marks':'Score'})
axis matters: axis=0 means rows, axis=1 means columns. drop() needs the right axis or it errors / drops the wrong thing.

2.6 head(), tail() & Boolean Indexing

EXAMPLE 2.5
df.head(2)               # first 2 rows
df.tail(1)               # last row
df[df['Marks'] > 80]     # only rows where Marks > 80 (boolean indexing)
Did you know? Boolean indexing filters rows using a condition that returns True/False for each row — only the True rows are kept.
📝 Chapter 2 in one line: A DataFrame is a 2-D table (rows + columns, mixed dtypes). Create it from a dict of lists (keys→columns) or a list of dicts (each dict→row); use shape/size/columns; select with [ ], loc (labels, stop included) and iloc (positions, stop excluded); add/drop with the correct axis; filter with boolean indexing.
DataFramerows/columnsdict of listslist of dictslocilocaxisboolean indexingNaN

📝 Practice Question Bank — Chapter 2

🔁 Chapter 3 · Importing / Exporting Data (CSV)

A CSV (Comma-Separated Values) file stores tabular data as plain text, one row per line with values separated by commas. Pandas can import a CSV into a DataFrame and export a DataFrame to a CSV.

🎯 You will learn: what a CSV is · read_csv() and its key parameters · to_csv() and its key parameters · controlling headers and the index.

3.1 What is a CSV File?

A CSV file is a simple text file where each line is a record and fields are separated by a delimiter (usually a comma). It is widely used because almost every spreadsheet and database can read/write it.
Name,Marks,Grade
Asha,85,A
Ravi,90,A
Meera,78,B

3.2 Importing — read_csv()

EXAMPLE 3.1
import pandas as pd
df = pd.read_csv('students.csv')      # first row used as header
print(df.head())
ParameterUse
filepathname/path of the CSV file
sep / delimiterfield separator (default ',')
headerrow to use as column names (header=None if no header)
namessupply your own column names
index_colcolumn to use as the row index
nrowsread only the first n rows

3.3 Exporting — to_csv()

EXAMPLE 3.2
df.to_csv('result.csv')               # writes the DataFrame to a CSV
df.to_csv('result.csv', index=False)  # do NOT write the row index
ParameterUse
filepathname of the output CSV file
indexwhether to write the row index (index=False to skip it)
headerwhether to write the column names
sepfield separator to use
Common mistake: forgetting index=False in to_csv() adds an extra unnamed column of 0,1,2… to the saved file. Use index=False when you don't want the row numbers saved.

3.4 CSV vs DataFrame

CSV fileDataFrame
Stored on disk (permanent)In memory (temporary, while program runs)
Plain textA Python/Pandas object
read_csv() → importto_csv() → export
📝 Chapter 3 in one line: A CSV stores tabular data as comma-separated text; pd.read_csv() imports it into a DataFrame (header/index_col/sep parameters) and df.to_csv() exports a DataFrame back to a CSV (use index=False to skip the row numbers).
CSVread_csv()to_csv()headerindex_colindex=Falsedelimiter

📝 Practice Question Bank — Chapter 3

📊 Chapter 4 · Data Visualization (Matplotlib)

Data visualization means presenting data as charts so trends and comparisons become easy to see. The pyplot module of Matplotlib draws line plots, bar graphs and histograms (the three required for the exam).

🎯 You will learn: why we plot · the pyplot import · line plot, bar graph, histogram · customising with title/xlabel/ylabel/legend · saving a plot with savefig() · showing it with show().

4.1 Why Visualize? The pyplot Module

Charts reveal patterns, trends and outliers faster than tables of numbers. We always start with:

import matplotlib.pyplot as plt

4.2 The Three Chart Types

ChartFunctionBest for
Line plotplt.plot(x, y)showing a trend over time / continuous change
Bar graphplt.bar(x, height)comparing categories
Histogramplt.hist(data, bins)showing the frequency distribution of values
Bar graph vs Histogram: a bar graph compares categories (separated bars); a histogram shows the frequency distribution of numeric data in ranges/bins (touching bars). This is a favourite 1-mark question.

4.3 Worked Examples

EXAMPLE 4.1 · Line plot
import matplotlib.pyplot as plt
days = [1,2,3,4,5]
temp = [30,32,31,29,33]
plt.plot(days, temp)
plt.title('Temperature over days')
plt.xlabel('Day'); plt.ylabel('Temp (°C)')
plt.show()
EXAMPLE 4.2 · Bar graph
subjects = ['Maths','Sci','Eng']
marks = [85, 90, 78]
plt.bar(subjects, marks, color='violet')
plt.title('Marks by subject')
plt.show()
EXAMPLE 4.3 · Histogram
scores = [45,55,55,60,65,65,65,70,80,90]
plt.hist(scores, bins=5)
plt.title('Score distribution')
plt.show()

4.4 Customising a Plot

FunctionAdds
plt.title('...')chart title
plt.xlabel('...') / plt.ylabel('...')axis labels
plt.legend()a legend (needs label= in plot)
color=, marker=, linestyle=, linewidth=style of the line/bars
plt.show()display the chart on screen
plt.savefig('chart.png')save the chart to an image file
EXAMPLE 4.4 · with a legend
plt.plot(days, temp, label='Temp', color='green', marker='o')
plt.legend()
plt.savefig('temp.png')      # save before show()
plt.show()
Exam tip: call savefig() before show() — once show() is called the figure may be cleared, so saving afterwards can give a blank image.
📝 Chapter 4 in one line: Import matplotlib.pyplot as plt; draw a line plot (plot), bar graph (bar) or histogram (hist, with bins); customise with title/xlabel/ylabel/legend and color/marker; savefig() to save and show() to display.
Matplotlibpyplotplot()bar()hist()binstitle/xlabel/ylabellegendsavefig()

📝 Practice Question Bank — Chapter 4

🔢 Chapter 5 · SQL Functions (Math / Text / Date)

SQL functions process values and return a result. Single-row functions return one value per row and fall into three groups: Math, Text (string) and Date. (Aggregate functions, which work on many rows, are in Chapter 6.)

🎯 You will learn: Math functions POWER, ROUND, MOD · Text functions UCASE/LCASE, MID/SUBSTR, LENGTH, LEFT, RIGHT, INSTR, TRIM · Date functions NOW, DATE, MONTH, MONTHNAME, YEAR, DAY, DAYNAME — with worked outputs.

5.1 Math Functions

FunctionReturnsExample → Output
POWER(x,y)x raised to power yPOWER(2,3) → 8
ROUND(n,d)n rounded to d decimal placesROUND(7.456,1) → 7.5
MOD(a,b)remainder of a ÷ bMOD(17,5) → 2
EXAMPLE 5.1
SELECT POWER(5,2), ROUND(123.456,2), MOD(10,3);
-- 25      123.46      1
ROUND tip: a negative d rounds to the left of the decimal — ROUND(123.4,-1) → 120.

5.2 Text (String) Functions

FunctionReturnsExample → Output
UCASE()/UPPER()upper caseUCASE('cat') → CAT
LCASE()/LOWER()lower caseLCASE('CAT') → cat
LENGTH()number of charactersLENGTH('India') → 5
LEFT(s,n)leftmost n charactersLEFT('India',3) → Ind
RIGHT(s,n)rightmost n charactersRIGHT('India',2) → ia
MID()/SUBSTR()/SUBSTRING()substring from a positionMID('India',2,3) → ndi
INSTR(s,sub)position of substring (0 if absent)INSTR('India','di') → 4
LTRIM()/RTRIM()/TRIM()remove leading/trailing/both spacesTRIM(' hi ') → 'hi'
EXAMPLE 5.2
SELECT UCASE('delhi'), LENGTH('Computer'), MID('Informatics',1,4);
-- DELHI     8     Info
1-based positions: in SQL, character positions start at 1 (not 0). So MID('India',2,3) starts at the 2nd character.

5.3 Date Functions

FunctionReturns
NOW()current date & time
DATE()the date part of a datetime
YEAR(d) / MONTH(d) / DAY(d)the year / month number / day number
MONTHNAME(d)full month name (e.g. 'January')
DAYNAME(d)weekday name (e.g. 'Monday')
EXAMPLE 5.3
SELECT YEAR('2026-06-29'), MONTHNAME('2026-06-29'), DAYNAME('2026-06-29');
-- 2026     June     Monday

5.4 DUAL & Using Functions on Columns

Functions can be applied to column values in a query:

EXAMPLE 5.4
SELECT name, UCASE(name), LENGTH(name) FROM student;
SELECT MOD(marks,10) FROM student WHERE marks > 50;
📝 Chapter 5 in one line: Single-row SQL functions return one value per row — Math (POWER, ROUND, MOD), Text (UCASE/LCASE, LENGTH, LEFT/RIGHT, MID/SUBSTR, INSTR, TRIM — positions start at 1) and Date (NOW, YEAR, MONTH, MONTHNAME, DAYNAME).
POWER/ROUND/MODUCASE/LCASELENGTHMID/SUBSTRLEFT/RIGHTINSTRTRIMNOW/YEAR/MONTHNAMEDAYNAME

📝 Practice Question Bank — Chapter 5

📦 Chapter 6 · Aggregate Functions & GROUP BY

Aggregate (multi-row) functions take many rows and return a single summary value. GROUP BY splits rows into groups so an aggregate is computed per group; HAVING filters those groups and ORDER BY sorts the result.

🎯 You will learn: MAX, MIN, AVG, SUM, COUNT · COUNT(*) vs COUNT(column) · GROUP BY · HAVING vs WHERE · ORDER BY (ASC/DESC).

6.1 The Five Aggregate Functions

FunctionReturns
MAX(col)highest value
MIN(col)lowest value
AVG(col)average of the values
SUM(col)total of the values
COUNT(col)number of non-NULL values
EXAMPLE 6.1
SELECT MAX(marks), MIN(marks), AVG(marks), SUM(marks) FROM student;

6.2 COUNT(*) vs COUNT(column)

Key difference: COUNT(*) counts all rows (including those with NULLs); COUNT(column) counts only rows where that column is NOT NULL. COUNT(DISTINCT col) counts unique non-NULL values.
EXAMPLE 6.2
SELECT COUNT(*) FROM student;          -- total rows
SELECT COUNT(email) FROM student;      -- rows where email is not NULL
SELECT COUNT(DISTINCT city) FROM student;  -- distinct cities
NULL & aggregates: all aggregate functions ignore NULL values except COUNT(*). So AVG ignores NULLs in its calculation.

6.3 GROUP BY

GROUP BY collects rows that share a value in a column into groups, then an aggregate is applied to each group.

EXAMPLE 6.3 · marks per city
SELECT city, AVG(marks)
FROM student
GROUP BY city;

One result row per city, showing that city's average marks.

Rule: any column in the SELECT that is not inside an aggregate function must appear in the GROUP BY clause.

6.4 HAVING vs WHERE

ClauseFiltersWorks with aggregates?
WHEREindividual rows (before grouping)No
HAVINGgroups (after GROUP BY)Yes
EXAMPLE 6.4
SELECT city, COUNT(*)
FROM student
WHERE marks >= 40          -- filter rows first
GROUP BY city
HAVING COUNT(*) > 2;       -- then filter groups

6.5 ORDER BY

ORDER BY sorts the final result — ASC (ascending, default) or DESC (descending).

EXAMPLE 6.5
SELECT name, marks FROM student ORDER BY marks DESC;
Clause order to remember: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY.
📝 Chapter 6 in one line: Aggregate functions (MAX, MIN, AVG, SUM, COUNT) summarise rows; COUNT(*) counts all rows while COUNT(col) skips NULLs; GROUP BY makes per-group summaries; WHERE filters rows and HAVING filters groups; ORDER BY sorts (ASC/DESC).
MAX/MIN/AVG/SUM/COUNTCOUNT(*)NULLGROUP BYHAVINGWHEREORDER BYDISTINCT

📝 Practice Question Bank — Chapter 6

🔗 Chapter 7 · Joining Two Tables (Equi-Join)

A join combines rows from two (or more) tables based on a related column. An equi-join matches rows where a common column has equal values — this is the most common way to query data spread across two tables.

🎯 You will learn: why we split data into tables · Cartesian product · equi-join condition · primary & foreign keys · table aliases · writing a two-table query.

7.1 Cartesian Product

If you select from two tables without a join condition, SQL returns every row of the first table paired with every row of the second — the Cartesian product (cross join). For m and n rows, the result has m × n rows (mostly meaningless).

EXAMPLE 7.1
SELECT * FROM emp, dept;     -- Cartesian product (no condition)

7.2 Equi-Join

An equi-join joins two tables on a condition that uses the equality (=) operator between a column of each table — usually a foreign key in one table matching a primary key in the other.
EXAMPLE 7.2 · two tables
-- emp(eid, name, deptno) and dept(deptno, dname)
SELECT name, dname
FROM emp, dept
WHERE emp.deptno = dept.deptno;

Only rows where the deptno matches in both tables are joined — each employee shown with their department name.

Always give the join condition (WHERE table1.col = table2.col) — without it you get the huge Cartesian product. The matching column is usually a primary key in one table and a foreign key in the other.

7.3 Table Aliases & Qualified Names

When both tables have a column of the same name, write table.column to remove ambiguity; aliases make queries shorter.

EXAMPLE 7.3
SELECT e.name, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno
ORDER BY e.name;

7.4 Keys Recap

KeyMeaning
Primary keyuniquely identifies each row in a table (no NULL, no duplicates)
Foreign keya column that refers to the primary key of another table (the link used in joins)
Candidate keyany column(s) that could serve as the primary key
📝 Chapter 7 in one line: A two-table query without a condition gives the Cartesian product (m×n rows); an equi-join adds WHERE t1.col = t2.col (foreign key = primary key) to combine only matching rows; use table.column or aliases to avoid ambiguity.
JoinCartesian productEqui-joinPrimary keyForeign keyaliasqualified name

📝 Practice Question Bank — Chapter 7

🌐 Chapter 8 · Introduction to Computer Networks

A computer network is a collection of computers and devices connected to share data and resources (files, printers, internet). This chapter covers network types, devices, topologies, the Internet and the web.

🎯 You will learn: PAN/LAN/MAN/WAN · devices (modem, hub, switch, repeater, router, gateway) · topologies (star, bus, tree, mesh) · Internet, URL, WWW, Web/Email/Chat/VoIP · web pages (static vs dynamic), web server, web hosting · browsers, cookies.

8.1 Types of Network (by area covered)

TypeFull formAreaExample
PANPersonal Area Networka few metresphone ↔ Bluetooth earbuds
LANLocal Area Networka building / campusa school computer lab
MANMetropolitan Area Networka citycable TV network
WANWide Area Networkcountry / worldthe Internet

8.2 Network Devices

DeviceJob
ModemModulates/demodulates — converts digital ↔ analog so data travels over phone/cable lines
HubConnects devices in a LAN; broadcasts data to all ports (not intelligent)
SwitchLike a hub but smart — sends data only to the intended device (uses MAC addresses)
RepeaterRegenerates/amplifies a weak signal to extend the network distance
RouterConnects different networks and finds the best path to route data (uses IP addresses)
GatewayConnects two dissimilar networks (different protocols); acts as an entry/exit point
Hub vs Switch: a hub sends data to all connected devices (less secure, more traffic); a switch sends it only to the target device (faster, secure). A common exam comparison.

8.3 Network Topologies

TopologyLayoutNote
Busall devices on one main cable (backbone)cheap; a cable break stops the whole network
Starall devices connect to a central hub/switcheasy to manage; hub failure stops the network
Treehierarchy of star networks (branches)scalable; root failure affects branches
Meshevery device connected to every othervery reliable but expensive (many cables)
Star Bus Mesh
Fig 8.1 Common network topologies.

8.4 Internet, WWW, URL & Applications

TermMeaning
Internetthe global network of networks (the infrastructure)
WWWWorld Wide Web — the collection of linked web pages accessed over the Internet
URLUniform Resource Locator — the address of a web resource (e.g. https://cbse.gov.in/index.html)
Web / Email / Chat / VoIPinternet applications — browsing, electronic mail, instant messaging, voice-over-internet calls

8.5 Websites, Web Servers & Browsers

TermMeaning
Web pagea single document on the web; static = same for everyone, dynamic = changes per user/request
Websitea collection of related web pages
Web servera computer that stores a website and serves its pages to browsers
Web hostingrenting space on a web server to publish a website
Web browsersoftware to view web pages (Chrome, Firefox, Edge); has settings, add-ons/plug-ins
Cookiessmall text files a website stores in the browser to remember the user (login, preferences)
📝 Chapter 8 in one line: Networks by size = PAN/LAN/MAN/WAN; devices = modem, hub, switch, repeater, router, gateway (switch is smart, hub broadcasts); topologies = bus/star/tree/mesh; the Internet is the network and the WWW is the linked pages on it, reached by a URL; web servers host sites that browsers view (using cookies).
PAN/LAN/MAN/WANmodem/router/gatewayhub vs switchstar/bus/tree/meshInternet/WWW/URLVoIPweb servercookies

📝 Practice Question Bank — Chapter 8

⚖️ Chapter 9 · Societal Impacts

Technology brings benefits and responsibilities. This chapter covers how to behave ethically and stay safe online, protect creative work, and handle the environmental and health effects of technology.

🎯 You will learn: digital footprint · net/communication etiquette · data protection · IPR, plagiarism, licensing & copyright · FOSS · cybercrime (hacking, phishing, cyber bullying) & the IT Act · e-waste & health concerns.

9.1 Digital Footprint

A digital footprint is the trail of data you leave online. Active footprint = data you share deliberately (posts, emails). Passive footprint = data collected automatically (cookies, IP address, browsing history). It is permanent, so think before posting.

9.2 Net & Communication Etiquette

A responsible internet user (netizen) follows netiquette: be respectful, no spamming/trolling, credit others' work, don't type in ALL CAPS (shouting), and protect others' privacy. Communication etiquette also covers polite, clear and honest online messages.

9.3 Data Protection & IPR

TermMeaning
Data protectionsafeguarding personal data from misuse/unauthorised access (privacy settings, encryption, laws)
Copyrightprotects creative works — books, music, software, films
Patentprotects inventions (a device or process)
Trademarkprotects brand identity — names, logos, slogans
Plagiarismpresenting someone else's work as your own without credit
Licensingthe legal terms under which software/content may be used (GPL, Apache, Creative Commons)
FOSS (Free and Open Source Software): software that is free to use, study, modify and redistribute (e.g. Linux, Python, LibreOffice). 'Free' means freedom, not only zero cost.

9.4 Cybercrime & Cyber Safety

CybercrimeWhat it is
Hackingunauthorised access to a computer/network
Phishingfake emails/sites to steal passwords or bank details
Cyber bullyingharassing or humiliating someone online
Identity theftusing someone's identity for fraud

Stay safe: use strong passwords + two-factor authentication, browse on HTTPS, don't click unknown links, never share OTPs, and keep software updated.

IT Act (2000, amended 2008): India's cyber law. It gives legal recognition to electronic records and digital signatures and defines cyber offences and their penalties.

9.5 E-waste & Health Concerns

E-waste is discarded electronic devices (phones, computers, batteries) containing toxic materials. Manage it with the 3 R's — Reduce, Reuse, Recycle — through authorised recyclers, never in normal bins.

Health concerns from technology overuse include eye strain, back/neck pain, repetitive stress injury, and reduced physical activity. Remedies: correct posture, regular breaks (20-20-20 rule), good lighting and limited screen time.

📝 Chapter 9 in one line: Your digital footprint (active/passive) is permanent; follow netiquette; protect data and respect IPR (copyright/patent/trademark, avoid plagiarism); use FOSS responsibly; guard against cybercrime (hacking, phishing, cyber bullying) under the IT Act; and manage e-waste with the 3 R's while staying healthy.
digital footprintnetiquettedata protectioncopyright/patent/trademarkplagiarismFOSSphishing/hackingIT Acte-waste

📝 Practice Question Bank — Chapter 9

⌨️ Practical & Project Guide

The practical exam is 30 marks: Pandas/Matplotlib programs (8) + SQL queries (7) + Project (8) + Practical file (4) + Viva (3). Below are ready-to-use programs and project guidance.

A · Pandas / Matplotlib Programs

PROGRAM 1 · Series from a dictionary & analysis
import pandas as pd
marks = pd.Series({'Maths':85,'Science':90,'English':78})
print(marks)                 # full Series
print("Top:", marks.max())   # highest
print("Avg:", marks.mean())  # average
print(marks[marks > 80])     # subjects above 80
PROGRAM 2 · DataFrame: create, filter, add, save
import pandas as pd
data = {'Name':['Asha','Ravi','Meera'], 'Marks':[85,90,78]}
df = pd.DataFrame(data)
print(df[df['Marks'] > 80])          # toppers
df['Result'] = ['Pass','Pass','Pass'] # add column
df.to_csv('result.csv', index=False)  # export
PROGRAM 3 · Read a CSV & describe
import pandas as pd
df = pd.read_csv('students.csv')
print(df.head())            # first 5 rows
print(df.shape)             # (rows, columns)
print(df['Marks'].mean())   # average marks
PROGRAM 4 · Line plot
import matplotlib.pyplot as plt
days = [1,2,3,4,5]; temp = [30,32,31,29,33]
plt.plot(days, temp, marker='o', label='Temp')
plt.title('Temperature'); plt.xlabel('Day'); plt.ylabel('°C')
plt.legend(); plt.savefig('temp.png'); plt.show()
PROGRAM 5 · Bar graph & Histogram
import matplotlib.pyplot as plt
# Bar graph
plt.bar(['M','S','E'], [85,90,78], color='violet')
plt.title('Marks'); plt.show()
# Histogram
scores = [45,55,55,60,65,65,70,80,90]
plt.hist(scores, bins=5)
plt.title('Distribution'); plt.show()

B · SQL Query Practice

TaskQuery
Names in upper caseSELECT UCASE(name) FROM student;
Round price to 2 dpSELECT ROUND(price,2) FROM product;
Year of joiningSELECT YEAR(doj) FROM emp;
Average marksSELECT AVG(marks) FROM student;
Count per citySELECT city, COUNT(*) FROM student GROUP BY city;
Cities with > 5 studentsSELECT city, COUNT(*) FROM student GROUP BY city HAVING COUNT(*)>5;
Sort by marks (desc)SELECT name, marks FROM student ORDER BY marks DESC;
Equi-join two tablesSELECT s.name, c.cname FROM student s, class c WHERE s.classid=c.classid;

C · Project Work (8 marks)

Take up one real-world problem and build a solution using Pandas/Matplotlib and/or SQL, individually or in a group of 2–3, with a written report.

Suggested project ideas:
  • School Result Analyser — read marks from a CSV into a DataFrame, compute toppers/averages/pass-%, and plot subject-wise bar graphs.
  • Sales Dashboard — monthly sales CSV → line plot of trend + bar graph by product; highlight the best month.
  • Library Management (SQL) — tables for Books, Members, Issue; queries for overdue books, most-issued titles, member counts.
  • Weather Data Visualizer — temperature/rainfall data → line plot and histogram, with title, labels and a saved image.
  • Survey Analysis — responses CSV → group-by counts, averages, and a bar graph of results.

Report should include: problem statement, data source, tools used, code, output/charts, and conclusion.

Viva tips: be ready to explain your code line by line, the difference between a Series and a DataFrame, what your SQL queries do, and which chart you used and why.

📋 CBSE Sample Question Paper + Marking Scheme

The official CBSE Sample Question Paper for Informatics Practices (065), Class XII, Session 2025-26, reproduced with its marking scheme. Click Show Answer & Marking under any question.

Informatics Practices (065) · Sample Question Paper · Class XII (2025-26)

Time: 3 HoursMax. Marks: 70
All questions compulsory · 5 Sections A–E · internal choices in some questions · all programming in Python · for MCQ write the option text too.

SECTION A21 × 1 = 21

Q1. True/False: The drop() method can be used to remove rows or columns from a Pandas DataFrame.1
True (drop(axis=0) removes rows, drop(axis=1) removes columns). 1
Q2. Result of SELECT MOD(5,6); — (A) 3 (B) 5 (C) 6 (D) 01
(B) 5 — 5 divided by 6 gives remainder 5. 1
Q3. An email with a link to a fake site to capture login credentials is which cybercrime? (A) Cyber Bullying (B) IPR Violation (C) Hacking (D) Phishing1
(D) Phishing. 1
Q4. Which statement writes a DataFrame df to a CSV file? (A) df.to_csv() (B) df.write_csv() (C) df.to_table() (D) df.export_csv()1
(A) df.to_csv(). 1
Q5. Device that converts digital signals to analog for transmission over a phone line: (A) Modem (B) Switch (C) Repeater (D) Router1
(A) Modem. 1
Q6. Purpose of ROUND(num,0) in SQL? (A) Rounds to nearest integer (B) Always up (C) Unchanged (D) Always down1
(A) Rounds the number to the nearest integer. 1
Q7. Aarushi wrote a novel and wants to protect her literary work. Which IPR? (A) Patent (B) Copyright (C) Trademark (D) Both Copyright & Trademark1
(B) Copyright. 1
Q8. The default index of a Pandas Series (if none given) is: (A) Strings from 'a' (B) Integers from 1 (C) Random integers (D) Consecutive integers from 01
(D) Consecutive integers starting from 0. 1
Q9. A table has one primary key and three alternate keys. How many candidate keys? (A) 1 (B) 2 (C) 3 (D) 41
(D) 4 — candidate keys = primary key + alternate keys = 1 + 3. 1
Q10. Which is an application of VoIP? (A) Email (B) Chat (C) Internet Telephony (D) Web Browsing1
(C) Internet Telephony. 1
Q11. Which SQL function counts non-NULL values in column_name? (A) COUNT(*) (B) COUNT(column_name) (C) SUM(column_name) (D) AVG(column_name)1
(B) COUNT(column_name). 1
Q12. Adding two Pandas Series with different indices gives: (A) Error (B) indices ignored, added in order (C) all indices, missing filled as NaN (D) only common indices retained1
(C) The result has all indices, with missing values filled as NaN. 1
Q13. India's primary law dealing with e-commerce and cybercrime: (A) Cybercrime Prevention Act 2000 (B) Digital Security Act 2000 (C) Information Technology Act 2000 (D) E-Commerce Regulation Act 20081
(C) Information Technology Act, 2000. 1
Q14. Which SQL command sorts rows ascending/descending on a column? (A) ORDER BY (B) SORT BY (C) GROUP BY (D) SORT ON1
(A) ORDER BY. 1
Q15. Which selects the first 3 rows of df (integer index from 0)? (A) df.loc[:3] (B) df.loc[:2] (C) df.loc[0:4] (D) df.loc[1:4]1
(B) df.loc[:2] — loc includes the stop label, so rows 0,1,2. 1
Q16. In which topology is every node directly connected to every other node? (A) Star (B) Tree (C) Mesh (D) Bus1
(C) Mesh. 1
Q17. Use of the INSTR() function in SQL? (A) replace characters (B) find length (C) find position of a substring (D) extract characters1
(C) To find the position of a substring in a string. 1
Q18. Which creates an empty Pandas DataFrame? (A) pd.DataFrame(None) (B) pd.DataFrame() (C) pd.DataFrame([]) (D) pd.DataFrame.empty()1
(B) pd.DataFrame(). 1
Q19. Which is NOT an aggregate function? (A) MIN() (B) SUM() (C) UPPER() (D) AVG()1
(C) UPPER() — it is a text function, not an aggregate. 1
Q20. Assertion(A): print(df) and print(df.loc[:]) give the same output. Reason(R): df.loc[:] displays all rows and columns of df.1
  1. Both A,R true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(A) Both A and R are True, and R correctly explains A. 1
Q21. Assertion(A): INSERT INTO is a DML command. Reason(R): DML commands insert, update or delete data in a database.1
  1. Both A,R true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(A) Both A and R are True, and R correctly explains A. 1

SECTION B7 × 2 = 14

Q22. (A) What is a DataFrame in Pandas? Mention any one property.  OR  (B) Two differences between Series and DataFrame.2
(A) A DataFrame is a 2-dimensional labelled data structure with rows and columns. Property: size-mutable — rows/columns can be added or deleted after creation.
(B) Series is 1-D, DataFrame is 2-D; Series is size-immutable, DataFrame is size-mutable. 1 + 1
Q23. What is e-waste? Mention one impact of e-waste on the environment.2
E-waste is discarded electronic equipment (old phones, computers, batteries). Impact: its toxic chemicals (lead, mercury) pollute soil and water and harm health if dumped carelessly. 1 + 1
Q24. Complete the code to create a Series (January 31, February 28, March 31). ser_data is a dictionary.2
import pandas as pd
ser_data = {'January':31, 'February':28, 'March':31}
s = pd.Series(ser_data)
print(s)
½ × 4 blanks
Q25. (A) Explain the role of a web server and web hosting in publishing a website.  OR  (B) Explain VoIP and one benefit.2
(A) A web server stores the website's files and serves its pages to browsers on request; web hosting is renting space on a web server so the site is reachable on the internet.
(B) VoIP (Voice over Internet Protocol) carries voice calls over the internet; benefit: much cheaper than traditional phone calls. 1 + 1
Q26. Write SQL: (I) the day name for '2026-01-01'. (II) the position of "India" in "Incredible India".2
(I) SELECT DAYNAME('2026-01-01'); → Thursday.
(II) SELECT INSTR('Incredible India','India'); → 12. 1 + 1
Q27. Define digital footprints. Differentiate active and passive digital footprints.2
Digital footprint = the trail of data a person leaves online. Active: data shared deliberately (posts, emails). Passive: data collected automatically (cookies, IP, browsing history). 1 + 1
Q28. (A) Output after df.rename(columns={'Name':'StuName','Marks':'Score'}, inplace=True).  OR  (B) Output after df.drop(index=1, inplace=True).2
(A)
  StuName  Score
0   Abhay     85
1  Ananya     92
2   Javed     88
(B)
         State    Capital
0  Maharashtra     Mumbai
2       Kerala  Thiruvananthapuram
2

SECTION C4 × 3 = 12

Q29. Rahul invented a solar water-purification system. (I) Explain IP & IPR. (II) Which IPR category covers his invention? (III) Importance of IPR.3
(I) Intellectual Property = creations of the mind (inventions, works, designs); IPR = the legal rights that protect them.
(II) A Patent (it is an invention).
(III) IPR rewards and protects innovators, prevents illegal copying, and encourages further innovation. 1 × 3
Q30. (A) Program to create a Series (subjects as index, marks as values) using an ndarray.  OR  (B) Create the DataFrame (Course, Duration) using a list of dictionaries.3
(A)
import pandas as pd, numpy as np
data = np.array([85,90,78,88])
s = pd.Series(data, index=['Mathematics','Science','English','History'])
print(s)
(B)
import pandas as pd
rec = [{'Course':'Data Science','Duration':12},
       {'Course':'Artificial Intelligence','Duration':18},
       {'Course':'Web Development','Duration':6}]
df = pd.DataFrame(rec)
print(df)
3
Q31. (I) CREATE TABLE EMPLOYEES (EmployeeID Numeric PK, EmpName Varchar(25), HireDate Date, Salary_in_Lacs Float(4,2)). (II) INSERT 101, Ravi Kumar, 2015-06-01, 1.70.3
CREATE TABLE EMPLOYEES(
  EmployeeID INT PRIMARY KEY,
  EmpName VARCHAR(25),
  HireDate DATE,
  Salary_in_Lacs FLOAT(4,2));

INSERT INTO EMPLOYEES VALUES
 (101,'Ravi Kumar','2015-06-01',1.70);
2 + 1
Q32. (A) STUDENT & MARKS tables: (I) names in Class 12 sorted ascending; (II) subjects in uppercase where score > 80; (III) names with subject and score.  OR  (B) EMPLOYEE table queries.3
(I) SELECT Name FROM STUDENT WHERE Class=12 ORDER BY Name;
(II) SELECT UCASE(Subject) FROM MARKS WHERE Score>80;
(III) SELECT S.Name, M.Subject, M.Score FROM STUDENT S, MARKS M WHERE S.StudentID=M.StudentID; 1 × 3

SECTION D2 × 4 = 8

Q33. Complete the Matplotlib line-graph program (monthly revenue). Statement-1 import; Statement-2 plot with legend label; Statement-3 title; Statement-4 save as monthly_revenue.png.4
import matplotlib.pyplot as plt          #Statement-1
Months = ['January','February','March','April','May']
Revenue = [50,65,75,80,95]
plt.plot(Months, Revenue, label='Revenue')  #Statement-2
plt.xlabel('Months'); plt.ylabel('Revenue')
plt.title('Monthly Revenue')            #Statement-3
plt.savefig('monthly_revenue.png')      #Statement-4
plt.legend(); plt.show()
1 × 4
Q34. (A) Student table — write SQL: (I) Name & City in uppercase sorted by Name; (II) StudentID with admission month name; (III) average marks; (IV) cities with number of students.  OR  (B) write the output of given queries.4
(I) SELECT UCASE(Name), UCASE(City) FROM Student ORDER BY Name;
(II) SELECT StudentID, MONTHNAME(Admission_Date) FROM Student;
(III) SELECT AVG(Marks) FROM Student;
(IV) SELECT City, COUNT(*) FROM Student GROUP BY City; 1 × 4

SECTION E3 × 5 = 15

Q35. ABC Pvt Ltd. has its Head Office in Mumbai (4 departments: Administration-120 PCs, Sales-40, Development-70, Support-25) and a Regional Office in Jaipur (50 PCs), 1400 km away. (I) Best department to install the server & why. (II) Draw a suitable cable layout between the Mumbai departments. (III) Hardware device to connect all computers within a department. (IV) Most appropriate network type (LAN/MAN/WAN) between Mumbai and Jaipur. (V) Device to fix signal-strength loss between Administration and Support.5
(I) The Administration department — it has the most computers (120), so traffic is least over the network.
(II) Cable layout: a star/bus layout connecting Administration–Sales–Development–Support with the shortest cable lengths (e.g. Admin as the hub). (A neat labelled diagram of the four departments connected by cables.)
(III) A Switch (or Hub).
(IV) WAN (Wide Area Network) — the offices are in different cities (1400 km apart).
(V) A Repeater — it regenerates the weakening signal. 1 × 5
Q36. DataFrame df has columns Name, Department, Salary (5 rows: Rohan/IT/75000, Meera/HR/68000, Aarav/Finance/85000, Nisha/Marketing/72000, Aditya/IT/80000). Write Python statements: (I) print the last 3 rows. (II) add column "Experience" = [5,8,10,6,7]. (III) delete column "Salary". (IV) rename "Department" to "Dept". (V) display only the "Name" and "Salary" columns.5
I.   print(df.tail(3))
II.  df['Experience'] = [5, 8, 10, 6, 7]
III. df.drop(columns=['Salary'], inplace=True)
IV.  df.rename(columns={'Department':'Dept'}, inplace=True)
V.   print(df[["Name", "Salary"]])
1 × 5
Q37. (A) Write SQL: (I) first 5 characters of product_code in Products. (II) total number of orders from Order_Id in Orders. (III) year of order_date in Orders. (IV) Address from Customers with leading/trailing spaces removed. (V) the current date.  OR  (B) (I) total characters in 'DatabaseSystems'. (II) position of first 'a' in Product_Name. (III) square of Tran_Amount. (IV) average of Salaries. (V) total sum of Salary.5
(A)
I.   SELECT LEFT(product_code, 5) FROM Products;
II.  SELECT COUNT(Order_Id) FROM Orders;
III. SELECT YEAR(order_date) FROM Orders;
IV.  SELECT TRIM(Address) FROM Customers;
V.   SELECT DATE(NOW());
(B)
I.   SELECT LENGTH('DatabaseSystems');
II.  SELECT INSTR(Product_Name, 'a') FROM Products;
III. SELECT POWER(Tran_Amount, 2) FROM Transactions;
IV.  SELECT AVG(Salaries) FROM Employees;
V.   SELECT SUM(Salary) FROM Employees;
1 × 5

📝 Practice Papers + Marking Schemes

Full 37-question papers on the CBSE blueprint (Sections A–E, 70 marks), each with a complete marking scheme. Click Show Answer & Marking under any question.

Practice Paper 1

Informatics Practices (065) · Practice Paper 1 · Class XII

Time: 3 HoursMax. Marks: 70
All questions compulsory · Sections A–E · all programming in Python · for MCQ write the option text too.

SECTION A21 × 1 = 21

Q1. A Pandas Series is a ______ dimensional structure.1
One (1-D). 1
Q2. Output of SELECT MOD(19,4); (A)3 (B)4 (C)5 (D)01
(A) 3. 1
Q3. Which method imports a CSV into a DataFrame? (A) read_csv() (B) to_csv() (C) open_csv() (D) load_csv()1
(A) read_csv(). 1
Q4. Which device sends data only to the intended device? (A) Hub (B) Switch (C) Repeater (D) Modem1
(B) Switch. 1
Q5. Unauthorised access to a computer system is called ______.1
Hacking. 1
Q6. POWER(3,3) returns: (A)9 (B)27 (C)6 (D)331
(B) 27. 1
Q7. Which IPR protects a brand logo? (A) Patent (B) Copyright (C) Trademark (D) FOSS1
(C) Trademark. 1
Q8. df.shape returns: (A) only rows (B) (rows,columns) (C) total cells (D) columns1
(B) (rows, columns). 1
Q9. COUNT(*) counts: (A) non-NULL only (B) all rows incl. NULLs (C) columns (D) distinct values1
(B) all rows including NULLs. 1
Q10. Which Matplotlib function draws a histogram? (A) plot() (B) bar() (C) hist() (D) pie()1
(C) hist(). 1
Q11. To skip the row index while exporting, use to_csv(______).1
index=False. 1
Q12. A network spanning a city is a: (A) PAN (B) LAN (C) MAN (D) WAN1
(C) MAN. 1
Q13. UCASE('cbse') returns ______.1
CBSE. 1
Q14. Which clause filters groups after GROUP BY? (A) WHERE (B) HAVING (C) ORDER BY (D) LIMIT1
(B) HAVING. 1
Q15. Data collected automatically (cookies, IP) forms a ______ footprint.1
Passive. 1
Q16. In which topology do all devices connect to a central hub? (A) Bus (B) Star (C) Mesh (D) Tree1
(B) Star. 1
Q17. MID('Practices',1,4) returns ______.1
Prac. 1
Q18. Which selects by integer position? (A) loc (B) iloc (C) at (D) get1
(B) iloc. 1
Q19. Which is NOT an aggregate function? (A) AVG (B) SUM (C) LENGTH (D) MAX1
(C) LENGTH (a text function). 1
Q20. Assertion(A): COUNT(*) and COUNT(col) may differ. Reason(R): COUNT(col) ignores NULLs.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1
Q21. Assertion(A): A list can be a DataFrame column. Reason(R): Each dict in a list of dicts becomes a row.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(b) Both true but R is not the explanation (R is about list of dicts; A is about columns). 1

SECTION B7 × 2 = 14

Q22. Differentiate a Series and a DataFrame (any two points).2
Series is 1-D, DataFrame is 2-D; Series has one dtype, a DataFrame's columns may differ; a Series is like one column of a DataFrame. 1 + 1
Q23. What is e-waste? State one method to manage it.2
Discarded electronic devices containing toxic materials; manage via the 3 R's (Reduce, Reuse, Recycle) through authorised recyclers. 1 + 1
Q24. Complete the code to create a Series of three city populations from a dictionary.2
import pandas as pd
d = {'Delhi':30, 'Mumbai':20, 'Chennai':10}
s = pd.Series(d)
print(s)
2
Q25. Differentiate a hub and a switch.2
A hub broadcasts data to all connected devices (less secure); a switch sends data only to the intended device using MAC addresses (faster, secure). 1 + 1
Q26. Write SQL: (I) round 78.456 to 1 decimal; (II) length of 'Computer'.2
(I) SELECT ROUND(78.456,1); → 78.5.
(II) SELECT LENGTH('Computer'); → 8. 1 + 1
Q27. What is plagiarism? How can it be avoided?2
Presenting someone else's work as your own without credit. Avoid it by citing sources, quoting/paraphrasing with credit, and creating original work. 1 + 1
Q28. Write the output: s=pd.Series([10,20,30]); print(s[s>15])2
1    20
2    30
dtype: int64
(boolean indexing keeps elements > 15) 2

SECTION C3 × 3 = 9

Q29. (Case-based, IPR) A coder writes original software. (I) Which IPR protects it? (II) What is plagiarism? (III) What is FOSS?3
(I) Copyright.
(II) Using another's work as your own without credit.
(III) Free and Open Source Software — free to use, study, modify and share (e.g. Linux, Python). 1 × 3
Q30. Write a Python program to create a DataFrame of 3 students (Name, Marks) and print rows with Marks > 80.3
import pandas as pd
d = {'Name':['Asha','Ravi','Meera'], 'Marks':[85,90,78]}
df = pd.DataFrame(d)
print(df[df['Marks'] > 80])
3
Q31. (I) Create table BOOK(BID int PK, Title varchar(30), Price float). (II) Insert one row.3
CREATE TABLE BOOK(
  BID INT PRIMARY KEY,
  Title VARCHAR(30),
  Price FLOAT);
INSERT INTO BOOK VALUES (1,'Informatics',350);
2 + 1

SECTION D4 × 4 = 16

Q32. Table EMP(name,dept,salary). Write SQL: (I) total salary per dept; (II) max salary; (III) names sorted by salary desc; (IV) count of employees per dept.4
(I) SELECT dept, SUM(salary) FROM emp GROUP BY dept;
(II) SELECT MAX(salary) FROM emp;
(III) SELECT name FROM emp ORDER BY salary DESC;
(IV) SELECT dept, COUNT(*) FROM emp GROUP BY dept; 1 × 4
Q33. Complete a Matplotlib bar-graph program for subject marks with title, labels and save.4
import matplotlib.pyplot as plt
sub = ['Maths','Sci','Eng']; marks = [85,90,78]
plt.bar(sub, marks, color='violet')
plt.title('Marks'); plt.xlabel('Subject'); plt.ylabel('Marks')
plt.savefig('marks.png')
plt.show()
1 × 4
Q34. Two tables STUDENT(sid,name,classid) & CLASS(classid,cname). Write an equi-join showing student name with class name, and explain the join column.4
SELECT s.name, c.cname FROM STUDENT s, CLASS c WHERE s.classid = c.classid;
The join column classid is a foreign key in STUDENT referencing the primary key of CLASS; the equi-join keeps only matching rows. 3 + 1

SECTION E2 × 5 = 10

Q35. (Case-based, Pandas) df has columns Name, Dept, Salary. (i) Code to show employees in 'IT'. (ii) Code to add a column 'Bonus' = 10% of Salary. (iii) Code for average salary. (iv) Code to delete the Dept column. (v) Code for df.shape.5
(i) df[df['Dept']=='IT']
(ii) df['Bonus']=df['Salary']*0.1
(iii) df['Salary'].mean()
(iv) df.drop('Dept', axis=1)
(v) df.shape 1 × 5
Q36. (Case-based, Networks) A college sets up a network across one campus and connects to the internet. (i) Network type? (ii) Device for internet path? (iii) Topology with a central switch? (iv) Difference hub vs switch? (v) What is a URL?5
(i) LAN.
(ii) Router (with a modem).
(iii) Star.
(iv) Hub broadcasts to all; switch sends only to the target device.
(v) Uniform Resource Locator — the address of a web resource. 1 × 5
Practice Paper 2

Informatics Practices (065) · Practice Paper 2 · Class XII

Time: 3 HoursMax. Marks: 70

SECTION A21 × 1 = 21

Q1. The attribute that gives the data type of a Series is ______.1
s.dtype. 1
Q2. SELECT ROUND(146,-1); gives (A)146 (B)150 (C)140 (D)1001
(B) 150. 1
Q3. Which function exports a DataFrame to a CSV file?1
to_csv(). 1
Q4. Which device connects two dissimilar networks? (A)Hub (B)Switch (C)Gateway (D)Repeater1
(C) Gateway. 1
Q5. Fake messages to steal data/passwords are called ______.1
Phishing. 1
Q6. MID('Database',5,2) returns (A)ba (B)as (C)ab (D)se1
(A) ba — 2 chars from position 5 (D-a-t-a-b-a-s-e). 1
Q7. FOSS stands for ______.1
Free and Open Source Software. 1
Q8. df.iloc[0:2] returns how many rows? (A)1 (B)2 (C)3 (D)01
(B) 2 — iloc excludes the stop position. 1
Q9. Which counts unique non-NULL values? (A)COUNT(*) (B)COUNT(col) (C)COUNT(DISTINCT col) (D)SUM(col)1
(C) COUNT(DISTINCT col). 1
Q10. Which chart shows the frequency distribution of data? (A)line (B)bar (C)histogram (D)pie1
(C) histogram. 1
Q11. NOW() returns ______.1
The current date and time. 1
Q12. The largest network (worldwide) is a ______.1
WAN. 1
Q13. A primary key cannot be ______.1
NULL (or duplicate). 1
Q14. Which clause groups rows for aggregation? (A)ORDER BY (B)GROUP BY (C)WHERE (D)HAVING1
(B) GROUP BY. 1
Q15. Posting a photo online creates a ______ footprint.1
Active. 1
Q16. A cable break stops the whole network in which topology? (A)Star (B)Bus (C)Mesh (D)Tree1
(B) Bus. 1
Q17. LENGTH(' IP ') returns ______.1
6 (spaces are counted). 1
Q18. df[df['Marks']>80] is an example of ______.1
Boolean indexing. 1
Q19. AVG, SUM, MAX, MIN, COUNT are ______ functions.1
Aggregate. 1
Q20. Assertion(A): strings cannot be added to a Series of ints meaningfully. Reason(R): A Series holds a single dtype.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1
Q21. Assertion(A): HAVING can use aggregate functions. Reason(R): HAVING filters groups after GROUP BY.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1

SECTION B7 × 2 = 14

Q22. Differentiate loc and iloc.2
loc selects by label (stop included); iloc selects by integer position (stop excluded). 1 + 1
Q23. What is a digital footprint? Name its two types.2
The trail of data left online; types: active (shared) and passive (auto-collected). 1 + 1
Q24. Write code to read 'data.csv' into df and print its shape.2
import pandas as pd
df = pd.read_csv('data.csv')
print(df.shape)
2
Q25. Differentiate the Internet and the WWW.2
The Internet is the global network of networks (infrastructure); the WWW is the collection of linked web pages accessed over it. 1 + 1
Q26. Write SQL: (I) name in upper case; (II) month name of column 'doj'.2
(I) SELECT UCASE(name) FROM emp;
(II) SELECT MONTHNAME(doj) FROM emp; 1 + 1
Q27. What is FOSS? Give one example.2
Free and Open Source Software — free to use, study, modify, share; e.g. Linux/Python. 1 + 1
Q28. Output: s=pd.Series([4,8,12]); print(s/4)2
1.0, 2.0, 3.0 (element-wise division → floats). 2

SECTION C3 × 3 = 9

Q29. (Case, Societal) (i) What is hacking? (ii) What is phishing? (iii) Name India's cyber law.3
(i) Unauthorised access to a system. (ii) Fake messages/sites to steal data. (iii) The IT Act, 2000. 1 × 3
Q30. Write a program to create a Series of 4 subject marks (subjects as index) and print marks ≥ 80.3
import pandas as pd
s = pd.Series([85,70,90,60], index=['M','S','E','H'])
print(s[s >= 80])
3
Q31. Write SQL to (I) create table CLUB(id int PK, name varchar(20), fee int); (II) insert a row.3
CREATE TABLE CLUB(id INT PRIMARY KEY, name VARCHAR(20), fee INT);
INSERT INTO CLUB VALUES (1,'Chess',500);
2 + 1

SECTION D4 × 4 = 16

Q32. Table STUDENT(name,city,marks). SQL: (I) average marks; (II) count per city; (III) names sorted by marks desc; (IV) max marks city-wise.4
(I) SELECT AVG(marks) FROM student;
(II) SELECT city,COUNT(*) FROM student GROUP BY city;
(III) SELECT name FROM student ORDER BY marks DESC;
(IV) SELECT city,MAX(marks) FROM student GROUP BY city; 1 × 4
Q33. Complete a Matplotlib histogram program for a list of scores with title, labels and 5 bins.4
import matplotlib.pyplot as plt
scores = [45,55,55,65,70,80,90]
plt.hist(scores, bins=5)
plt.title('Scores'); plt.xlabel('Range'); plt.ylabel('Frequency')
plt.show()
1 × 4
Q34. Two tables EMP(eid,name,deptno) & DEPT(deptno,dname). Equi-join to show name with department name; explain Cartesian product.4
SELECT e.name, d.dname FROM EMP e, DEPT d WHERE e.deptno=d.deptno;
Without the condition you get the Cartesian product — every EMP row paired with every DEPT row (m×n). 3 + 1

SECTION E2 × 5 = 10

Q35. (Case, Pandas) df(Name,Marks,City). (i) rows with Marks>90; (ii) add 'Grade'; (iii) count students; (iv) average marks; (v) save to result.csv without index.5
(i) df[df['Marks']>90]
(ii) df['Grade']=['A','B','A']
(iii) len(df) / df.shape[0]
(iv) df['Marks'].mean()
(v) df.to_csv('result.csv', index=False) 1 × 5
Q36. (Case, SQL) Table SALES(spid,region,amt). (i) total per region; (ii) regions with total>50000; (iii) highest sale; (iv) count of sales; (v) average sale.5
(i) SELECT region,SUM(amt) FROM SALES GROUP BY region;
(ii) ...GROUP BY region HAVING SUM(amt)>50000;
(iii) SELECT MAX(amt) FROM SALES;
(iv) SELECT COUNT(*) FROM SALES;
(v) SELECT AVG(amt) FROM SALES; 1 × 5
Practice Paper 3

Informatics Practices (065) · Practice Paper 3 · Class XII

Time: 3 HoursMax. Marks: 70

SECTION A21 × 1 = 21

Q1. pd.Series([10,20,30]).size returns ______.1
3. 1
Q2. SELECT POWER(2,5); gives (A)10 (B)25 (C)32 (D)71
(C) 32. 1
Q3. In read_csv, which makes a column the row index? (A)header (B)index_col (C)names (D)nrows1
(B) index_col. 1
Q4. Which finds the best path between networks using IP? (A)Hub (B)Switch (C)Router (D)Repeater1
(C) Router. 1
Q5. The 3 R's of e-waste are Reduce, Reuse and ______.1
Recycle. 1
Q6. DAYNAME('2026-06-29') (Monday) returns ______.1
Monday. 1
Q7. Which IPR protects an invention? (A)Copyright (B)Patent (C)Trademark (D)Licence1
(B) Patent. 1
Q8. In a dict of lists for a DataFrame, each key becomes a ______.1
Column. 1
Q9. SELECT COUNT(*) with 10 rows (2 NULL emails) returns ______.1
10 (COUNT(*) counts all rows). 1
Q10. Which function adds a title to a Matplotlib chart?1
plt.title(). 1
Q11. INSTR('Incredible India','India') returns ______.1
12. 1
Q12. A network within a single building is a ______.1
LAN. 1
Q13. A foreign key links to the ______ key of another table.1
Primary. 1
Q14. Which clause filters individual rows before grouping? (A)HAVING (B)WHERE (C)GROUP BY (D)ORDER BY1
(B) WHERE. 1
Q15. Using another's work as your own without credit is ______.1
Plagiarism. 1
Q16. The topology connecting every node to every other node is ______.1
Mesh. 1
Q17. UCASE('delhi') returns ______.1
DELHI. 1
Q18. df.head() returns the first ______ rows by default.1
5. 1
Q19. Small text files a website stores in your browser are ______.1
Cookies. 1
Q20. Assertion(A): to_csv('f.csv', index=False) omits row numbers. Reason(R): index=False stops the index being written.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1
Q21. Assertion(A): A switch is more secure than a hub. Reason(R): A hub broadcasts data to all devices.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1

SECTION B7 × 2 = 14

Q22. Differentiate a dict of lists and a list of dicts for creating a DataFrame.2
Dict of lists → each key is a column; list of dicts → each dict is a row (missing keys → NaN). 1 + 1
Q23. State two cyber-safety measures.2
Strong passwords + 2FA; avoid suspicious links / use HTTPS (any two). 1 + 1
Q24. Write code to add a column 'Total' to df as the sum of columns 'T1' and 'T2'.2
df['Total'] = df['T1'] + df['T2'] 2
Q25. Differentiate a static and a dynamic web page.2
A static page shows the same content to everyone; a dynamic page changes per user/request (often using a database). 1 + 1
Q26. Write SQL: (I) remainder of marks/10; (II) first 3 letters of 'code'.2
(I) SELECT MOD(marks,10) FROM t;
(II) SELECT LEFT(code,3) FROM t; 1 + 1
Q27. Differentiate copyright and trademark.2
Copyright protects creative works (books, music, software); trademark protects brand identity (names, logos). 1 + 1
Q28. Output: df=pd.DataFrame({'A':[1,2,3]}); print(df['A'].sum())2
6 (1+2+3). 2

SECTION C3 × 3 = 9

Q29. (Case, Networks) (i) Which device extends a network's range? (ii) Which broadcasts to all? (iii) Which connects dissimilar networks?3
(i) Repeater. (ii) Hub. (iii) Gateway. 1 × 3
Q30. Write a program to create a DataFrame from a list of dictionaries (Course, Fee) and print it.3
import pandas as pd
rec = [{'Course':'IP','Fee':500},{'Course':'CS','Fee':600}]
df = pd.DataFrame(rec)
print(df)
3
Q31. SQL: (I) display distinct cities; (II) count of students per class.3
(I) SELECT DISTINCT city FROM student;
(II) SELECT class, COUNT(*) FROM student GROUP BY class; 1 + 2

SECTION D4 × 4 = 16

Q32. Table BOOK(title,author,price). SQL: (I) titles in uppercase; (II) average price; (III) books costlier than 300 sorted by price; (IV) count of books per author.4
(I) SELECT UCASE(title) FROM book;
(II) SELECT AVG(price) FROM book;
(III) SELECT * FROM book WHERE price>300 ORDER BY price;
(IV) SELECT author,COUNT(*) FROM book GROUP BY author; 1 × 4
Q33. Complete a Matplotlib line plot of months vs revenue with title, labels, legend and save.4
import matplotlib.pyplot as plt
m=['Jan','Feb','Mar']; r=[50,65,75]
plt.plot(m, r, label='Revenue')
plt.title('Revenue'); plt.xlabel('Month'); plt.ylabel('Lakhs')
plt.legend(); plt.savefig('rev.png'); plt.show()
1 × 4
Q34. Tables ITEM(icode,iname,sid) & SUPPLIER(sid,sname). Equi-join to show item name with supplier name; state the foreign key.4
SELECT i.iname, s.sname FROM ITEM i, SUPPLIER s WHERE i.sid=s.sid;
The foreign key is sid in ITEM, referencing SUPPLIER's primary key. 3 + 1

SECTION E2 × 5 = 10

Q35. (Case, Pandas) df(Item,Qty,Price). (i) add 'Amount'=Qty*Price; (ii) rows where Amount>1000; (iii) total amount; (iv) max price; (v) df.shape.5
(i) df['Amount']=df['Qty']*df['Price']
(ii) df[df['Amount']>1000]
(iii) df['Amount'].sum()
(iv) df['Price'].max()
(v) df.shape 1 × 5
Q36. (Case, Societal) A firm goes digital. (i) What is a digital footprint? (ii) Active vs passive? (iii) One IPR for its software? (iv) One cyber-safety step? (v) How to handle old PCs?5
(i) The trail of online data. (ii) Active = shared; passive = auto-collected. (iii) Copyright. (iv) Strong passwords/2FA. (v) As e-waste via authorised recyclers (3 R's). 1 × 5
Practice Paper 4

Informatics Practices (065) · Practice Paper 4 · Class XII

Time: 3 HoursMax. Marks: 70

SECTION A21 × 1 = 21

Q1. The missing-value marker in Pandas is ______.1
NaN. 1
Q2. SELECT MOD(25,7); gives (A)3 (B)4 (C)2 (D)51
(B) 4. 1
Q3. CSV stands for ______.1
Comma-Separated Values. 1
Q4. PAN, LAN, MAN, WAN are classified by ______.1
The geographical area they cover. 1
Q5. Harassing someone repeatedly online is ______.1
Cyber bullying. 1
Q6. RIGHT('Network',3) returns (A)Net (B)ork (C)two (D)wor1
(B) ork. 1
Q7. Software free to use, study and modify is ______.1
FOSS (open source). 1
Q8. df.loc[1,'Name'] selects by ______.1
Label. 1
Q9. Which gives the average of a column? (A)SUM (B)AVG (C)MAX (D)COUNT1
(B) AVG. 1
Q10. plt.bar() draws a ______.1
Bar graph. 1
Q11. YEAR('2026-06-29') returns ______.1
2026. 1
Q12. The device converting digital↔analog signals is a ______.1
Modem. 1
Q13. A column that uniquely identifies each row is the ______ key.1
Primary. 1
Q14. ORDER BY sorts ______ by default.1
Ascending (ASC). 1
Q15. The IT Act was enacted in the year ______.1
2000. 1
Q16. The topology using one backbone cable is ______.1
Bus. 1
Q17. TRIM(' IP ') returns ______.1
'IP'. 1
Q18. df['col'] returns a ______.1
Series. 1
Q19. COUNT(column) ignores ______ values.1
NULL. 1
Q20. Assertion(A): A histogram's bars touch. Reason(R): A histogram shows continuous data in bins.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1
Q21. Assertion(A): A foreign key may repeat. Reason(R): A foreign key references a primary key of another table.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(b) Both true but R is not the explanation. 1

SECTION B7 × 2 = 14

Q22. Differentiate head() and tail().2
head(n) returns the first n rows; tail(n) the last n rows (default 5). 1 + 1
Q23. Mention two health concerns of overusing technology and one remedy.2
Eye strain and back/neck pain; remedy: regular breaks (20-20-20 rule) and correct posture. 1 + 1
Q24. Write code to save df to 'out.csv' without the row index.2
df.to_csv('out.csv', index=False) 2
Q25. What is web hosting?2
Renting space on a web server so a website is stored online and reachable by browsers on the internet. 2
Q26. Write SQL: (I) length of 'name'; (II) names where city='Delhi'.2
(I) SELECT LENGTH(name) FROM t;
(II) SELECT name FROM t WHERE city='Delhi'; 1 + 1
Q27. Define net etiquette. Give one example.2
The good manners of a netizen online; e.g. be respectful, no spamming, credit others' work. 1 + 1
Q28. Output: s=pd.Series([10,20,30]); print(s.sum(), s.max())2
60 30. 2

SECTION C3 × 3 = 9

Q29. (Case, IPR) (i) What is a patent? (ii) What is copyright? (iii) What is a trademark?3
(i) Protects inventions. (ii) Protects creative works. (iii) Protects brand names/logos. 1 × 3
Q30. Write a program to read 'marks.csv' and print rows where Marks > 50.3
import pandas as pd
df = pd.read_csv('marks.csv')
print(df[df['Marks'] > 50])
3
Q31. SQL: (I) employees sorted by salary desc; (II) total salary.3
(I) SELECT * FROM emp ORDER BY salary DESC;
(II) SELECT SUM(salary) FROM emp; 2 + 1

SECTION D4 × 4 = 16

Q32. Table EMP(name,dept,salary). SQL: (I) max salary per dept; (II) depts with avg salary>40000; (III) names in dept 'IT'; (IV) count of employees.4
(I) SELECT dept,MAX(salary) FROM emp GROUP BY dept;
(II) SELECT dept FROM emp GROUP BY dept HAVING AVG(salary)>40000;
(III) SELECT name FROM emp WHERE dept='IT';
(IV) SELECT COUNT(*) FROM emp; 1 × 4
Q33. Complete a Matplotlib bar graph of cities vs population with title, labels and save.4
import matplotlib.pyplot as plt
city=['Delhi','Mumbai']; pop=[30,20]
plt.bar(city, pop)
plt.title('Population'); plt.xlabel('City'); plt.ylabel('Millions')
plt.savefig('pop.png'); plt.show()
1 × 4
Q34. Tables STUDENT(rno,name) & MARKS(rno,subject,score). Equi-join showing name, subject, score; state the join column.4
SELECT s.name, m.subject, m.score FROM STUDENT s, MARKS m WHERE s.rno=m.rno;
Join column rno (foreign key in MARKS → primary key in STUDENT). 3 + 1

SECTION E2 × 5 = 10

Q35. (Case, Pandas) df(Name,M1,M2). (i) add 'Total'=M1+M2; (ii) add 'Avg'=Total/2; (iii) rows where Total>150; (iv) max Total; (v) save to res.csv.5
(i) df['Total']=df['M1']+df['M2']
(ii) df['Avg']=df['Total']/2
(iii) df[df['Total']>150]
(iv) df['Total'].max()
(v) df.to_csv('res.csv', index=False) 1 × 5
Q36. (Case, Networks) A bank links branches across the country. (i) Network type? (ii) Topology connecting all-to-all? (iii) Device for dissimilar networks? (iv) What is VoIP? (v) What is a cookie?5
(i) WAN. (ii) Mesh. (iii) Gateway. (iv) Voice calls over the internet. (v) A small file stored in the browser to remember the user. 1 × 5
Practice Paper 5

Informatics Practices (065) · Practice Paper 5 · Class XII

Time: 3 HoursMax. Marks: 70

SECTION A21 × 1 = 21

Q1. s.values of a Series returns a/an ______.1
ndarray (NumPy array). 1
Q2. SELECT LENGTH('India'); gives (A)4 (B)5 (C)6 (D)31
(B) 5. 1
Q3. read_csv() returns a ______.1
DataFrame. 1
Q4. Which device regenerates a weak signal? (A)Hub (B)Repeater (C)Switch (D)Gateway1
(B) Repeater. 1
Q5. Free and Open Source Software is abbreviated ______.1
FOSS. 1
Q6. ROUND(3.14159,2) gives (A)3.1 (B)3.14 (C)3.142 (D)31
(B) 3.14. 1
Q7. Presenting another's work as your own is ______.1
Plagiarism. 1
Q8. df.size returns ______.1
Total number of cells (rows × columns). 1
Q9. SELECT MAX(marks) returns the ______ marks.1
Highest. 1
Q10. plt.hist() needs which parameter for the number of bars? (A)bars (B)bins (C)n (D)width1
(B) bins. 1
Q11. MONTHNAME('2026-12-25') returns ______.1
December. 1
Q12. A personal network of a few metres is a ______.1
PAN. 1
Q13. The link column between two tables in a join is a ______ key.1
Foreign. 1
Q14. To remove duplicate values in a query, use ______.1
DISTINCT. 1
Q15. A trail of data left online is a ______.1
Digital footprint. 1
Q16. Star, Bus, Mesh, Tree are types of ______.1
Network topology. 1
Q17. LEFT('Computer',4) returns ______.1
Comp. 1
Q18. To add a column 'X' to df, write df[______]=values.1
'X'. 1
Q19. GROUP BY is used with ______ functions.1
Aggregate. 1
Q20. Assertion(A): get() prevents a KeyError-style crash. Reason(R): It returns a default for a missing dictionary key. (context: Series/dict access)1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1
Q21. Assertion(A): AVG ignores NULL values. Reason(R): NULL has no numeric value to include.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1

SECTION B7 × 2 = 14

Q22. Differentiate a CSV file and a DataFrame.2
A CSV is plain text stored on disk (permanent); a DataFrame is a Pandas object in memory (temporary). 1 + 1
Q23. What is data protection?2
Safeguarding personal data from misuse/unauthorised access using privacy settings, encryption and laws. 2
Q24. Write code to create a DataFrame from {'A':[1,2],'B':[3,4]} and print its shape.2
import pandas as pd
df = pd.DataFrame({'A':[1,2],'B':[3,4]})
print(df.shape)   # (2, 2)
2
Q25. What is VoIP? State one benefit.2
Voice over Internet Protocol — voice calls over the internet; benefit: cheaper than normal phone calls. 1 + 1
Q26. Write SQL: (I) day name of '2026-08-15'; (II) marks rounded to whole number.2
(I) SELECT DAYNAME('2026-08-15');
(II) SELECT ROUND(marks,0) FROM t; 1 + 1
Q27. Differentiate active and passive digital footprints.2
Active = data you share deliberately; passive = data collected automatically (cookies, IP). 1 + 1
Q28. Output: s=pd.Series([2,4,6]); print(s*3)2
6, 12, 18 (element-wise). 2

SECTION C3 × 3 = 9

Q29. (Case, Networks) (i) Expand WWW & URL. (ii) What is a web server? (iii) Static vs dynamic page?3
(i) World Wide Web; Uniform Resource Locator. (ii) A computer that stores a website and serves its pages. (iii) Static = same for all; dynamic = changes per user. 1 × 3
Q30. Write a program to create a Series from a list and print elements greater than 50.3
import pandas as pd
s = pd.Series([30,80,45,90])
print(s[s > 50])
3
Q31. SQL: (I) average salary; (II) employees with salary > average is hard in WHERE — instead show count of employees and max salary.3
(I) SELECT AVG(salary) FROM emp;
(II) SELECT COUNT(*), MAX(salary) FROM emp; 1 + 2

SECTION D4 × 4 = 16

Q32. Table PRODUCT(pname,category,price). SQL: (I) avg price per category; (II) categories with avg price>500; (III) products sorted by price desc; (IV) count per category.4
(I) SELECT category,AVG(price) FROM product GROUP BY category;
(II) ...GROUP BY category HAVING AVG(price)>500;
(III) SELECT * FROM product ORDER BY price DESC;
(IV) SELECT category,COUNT(*) FROM product GROUP BY category; 1 × 4
Q33. Complete a Matplotlib line plot of two series (sales, target) with a legend and save.4
import matplotlib.pyplot as plt
m=['Jan','Feb','Mar']
plt.plot(m,[40,55,60],label='Sales')
plt.plot(m,[50,50,60],label='Target')
plt.legend(); plt.title('Sales vs Target')
plt.savefig('st.png'); plt.show()
1 × 4
Q34. Tables ORDERS(oid,cid,amt) & CUSTOMER(cid,cname). Equi-join to show order id with customer name; explain why a join is needed.4
SELECT o.oid, c.cname FROM ORDERS o, CUSTOMER c WHERE o.cid=c.cid;
A join is needed because the data is split across two tables (to avoid redundancy); the equi-join combines matching rows. 3 + 1

SECTION E2 × 5 = 10

Q35. (Case, Pandas) df(Name,Marks). (i) topper's marks; (ii) average; (iii) count; (iv) rows where Marks<33 (fail); (v) sort by Marks desc.5
(i) df['Marks'].max()
(ii) df['Marks'].mean()
(iii) len(df)
(iv) df[df['Marks']<33]
(v) df.sort_values('Marks', ascending=False) 1 × 5
Q36. (Case, SQL+Society) Table USER(uid,uname,city). (i) names in uppercase; (ii) count per city; (iii) a cyber-safety tip for users; (iv) what is phishing; (v) which law governs cyber offences.5
(i) SELECT UCASE(uname) FROM USER;
(ii) SELECT city,COUNT(*) FROM USER GROUP BY city;
(iii) Use strong passwords + 2FA. (iv) Fake messages to steal data. (v) The IT Act, 2000. 1 × 5
Practice Paper 6

Informatics Practices (065) · Practice Paper 6 · Class XII

Time: 3 HoursMax. Marks: 70

SECTION A21 × 1 = 21

Q1. A DataFrame is a ______ dimensional structure.1
Two (2-D). 1
Q2. SELECT MOD(30,7); gives (A)2 (B)3 (C)4 (D)51
(A) 2. 1
Q3. index=False is used with ______.1
to_csv(). 1
Q4. A switch uses ______ addresses to send data to the right device.1
MAC. 1
Q5. A small file storing website preferences in your browser is a ______.1
Cookie. 1
Q6. UCASE('ip') returns ______.1
IP. 1
Q7. The IPR that protects a slogan/logo is ______.1
Trademark. 1
Q8. df.tail(2) returns the ______ 2 rows.1
Last. 1
Q9. SELECT SUM(salary) returns the ______ of salaries.1
Total. 1
Q10. A line plot is best for showing ______.1
A trend over time. 1
Q11. DAY('2026-06-29') returns ______.1
29. 1
Q12. A network across two cities of a state is closest to a ______.1
WAN (or MAN if within one metro). 1
Q13. A candidate key that is chosen to identify rows becomes the ______ key.1
Primary. 1
Q14. HAVING filters ______ (rows/groups).1
Groups. 1
Q15. Cookies and IP logging create a ______ footprint.1
Passive. 1
Q16. A central hub failure stops a ______ topology.1
Star. 1
Q17. SUBSTR('Computer',1,4) returns ______.1
Comp. 1
Q18. df[['A','B']] returns a ______.1
DataFrame. 1
Q19. COUNT(*) counts ______.1
All rows (including NULLs). 1
Q20. Assertion(A): Tuples make good dictionary keys. Reason(R): Dictionary keys must be immutable. (general SQL/Python concept)1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1
Q21. Assertion(A): savefig() should run before show(). Reason(R): show() may clear the figure.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1

SECTION B7 × 2 = 14

Q22. Differentiate append and a new column assignment in a DataFrame (adding data).2
df['new']=values adds a column; df.loc[label]=row adds a row. 1 + 1
Q23. What is the IT Act? State one thing it does.2
India's cyber law (2000); it gives legal recognition to e-records and defines cyber offences/penalties. 2
Q24. Write code to display the columns and shape of a DataFrame df.2
print(df.columns); print(df.shape) 2
Q25. Differentiate a web server and a web browser.2
A web server stores and serves website pages; a web browser is software that requests and displays those pages. 1 + 1
Q26. Write SQL: (I) year of column 'doj'; (II) names in lowercase.2
(I) SELECT YEAR(doj) FROM emp;
(II) SELECT LCASE(name) FROM emp; 1 + 1
Q27. What is a netizen? State one net etiquette.2
A responsible citizen of the internet; etiquette: be respectful / no spamming / credit others' work. 1 + 1
Q28. Output: df=pd.DataFrame({'M':[40,90,70]}); print(df[df['M']>60])2
Rows with M=90 and M=70 (the rows where M > 60). 2

SECTION C3 × 3 = 9

Q29. (Case, Networks) (i) What is the Internet? (ii) Expand VoIP. (iii) Difference between Internet & WWW?3
(i) The global network of networks. (ii) Voice over Internet Protocol. (iii) Internet = infrastructure; WWW = linked pages on it. 1 × 3
Q30. Write a program to create a DataFrame of 3 products (Name, Price) and print the average price.3
import pandas as pd
df = pd.DataFrame({'Name':['A','B','C'],'Price':[100,200,300]})
print(df['Price'].mean())   # 200.0
3
Q31. SQL: (I) display books with price between 200 and 500; (II) count of books.3
(I) SELECT * FROM book WHERE price BETWEEN 200 AND 500;
(II) SELECT COUNT(*) FROM book; 2 + 1

SECTION D4 × 4 = 16

Q32. Table SALE(item,region,amt). SQL: (I) total per region; (II) regions with total>10000; (III) items sorted by amt desc; (IV) average amt.4
(I) SELECT region,SUM(amt) FROM sale GROUP BY region;
(II) ...GROUP BY region HAVING SUM(amt)>10000;
(III) SELECT item FROM sale ORDER BY amt DESC;
(IV) SELECT AVG(amt) FROM sale; 1 × 4
Q33. Complete a Matplotlib histogram of exam scores (bins=6) with title and labels.4
import matplotlib.pyplot as plt
scores=[35,40,55,60,65,70,85,90]
plt.hist(scores, bins=6)
plt.title('Scores'); plt.xlabel('Marks'); plt.ylabel('Frequency')
plt.show()
1 × 4
Q34. Tables DOCTOR(did,dname,dept) & PATIENT(pid,pname,did). Equi-join to show patient name with doctor name; state the join column.4
SELECT p.pname, d.dname FROM PATIENT p, DOCTOR d WHERE p.did=d.did;
Join column did (foreign key in PATIENT → primary key in DOCTOR). 3 + 1

SECTION E2 × 5 = 10

Q35. (Case, Pandas) df(Name,Sub,Marks). (i) rows of subject 'IP'; (ii) average marks; (iii) topper's marks; (iv) add 'Result' (Pass if≥33); (v) save without index.5
(i) df[df['Sub']=='IP']
(ii) df['Marks'].mean()
(iii) df['Marks'].max()
(iv) df['Result']=['Pass' if m>=33 else 'Fail' for m in df['Marks']]
(v) df.to_csv('r.csv', index=False) 1 × 5
Q36. (Case, Networks) A hospital networks its departments and goes online. (i) Network type within campus? (ii) Device for internet routing? (iii) Topology with central switch? (iv) What is web hosting? (v) Hub vs switch?5
(i) LAN. (ii) Router. (iii) Star. (iv) Renting space on a web server to publish a site. (v) Hub broadcasts; switch targets the device. 1 × 5
Practice Paper 7

Informatics Practices (065) · Practice Paper 7 · Class XII

Time: 3 HoursMax. Marks: 70

SECTION A21 × 1 = 21

Q1. Pandas is built on top of the ______ library.1
NumPy. 1
Q2. SELECT ROUND(56.78,1); gives (A)56.7 (B)56.8 (C)57 (D)561
(B) 56.8. 1
Q3. header=None in read_csv means ______.1
The file has no header row. 1
Q4. The device that connects networks with different protocols is a ______.1
Gateway. 1
Q5. Malware that demands money to unlock data is ______.1
Ransomware. 1
Q6. POWER(5,2) returns ______.1
25. 1
Q7. Copyright protects ______ works.1
Creative (books, music, software). 1
Q8. df.iloc[0,0] selects a ______.1
Single cell (row 0, column 0). 1
Q9. MIN(marks) returns the ______ marks.1
Lowest. 1
Q10. plt.legend() needs a ______ in plot() to show names.1
label. 1
Q11. NOW() returns date and ______.1
Time. 1
Q12. Bluetooth earbuds connected to a phone form a ______.1
PAN. 1
Q13. A query with two tables and no condition returns the ______.1
Cartesian product. 1
Q14. WHERE filters ______ (rows/groups).1
Rows. 1
Q15. Designing tech usable by all abilities reflects ______ technology.1
Inclusive. 1
Q16. Tree topology is a hierarchy of ______ networks.1
Star. 1
Q17. INSTR('hello','l') returns ______.1
3. 1
Q18. df.drop('X', axis=1) deletes a ______.1
Column. 1
Q19. GROUP BY makes one result row per ______.1
Group. 1
Q20. Assertion(A): loc includes the stop label. Reason(R): loc is label-based slicing.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1
Q21. Assertion(A): An equi-join uses the = operator. Reason(R): It matches equal values of a common column.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1

SECTION B7 × 2 = 14

Q22. Differentiate a Series and a list.2
A list is accessed by position only; a Series has a labelled index, a single dtype, and vectorised operations/functions. 1 + 1
Q23. What is e-waste? Give one way to reduce it.2
Discarded electronics; reduce it by reusing/donating working devices and buying less. 1 + 1
Q24. Write code to read 'a.csv' (no header) giving columns ['X','Y'].2
pd.read_csv('a.csv', header=None, names=['X','Y']) 2
Q25. Differentiate a router and a switch.2
A switch connects devices within one LAN; a router connects different networks and routes data between them using IP. 1 + 1
Q26. Write SQL: (I) position of 'a' in 'data'; (II) first 2 letters of 'name'.2
(I) SELECT INSTR('data','a'); → 2.
(II) SELECT LEFT(name,2) FROM t; 1 + 1
Q27. Differentiate proprietary and open-source software.2
Proprietary restricts copying/modification (closed code); open-source (FOSS) is free to use, study, modify and share. 1 + 1
Q28. Output: s=pd.Series([1,2,3],index=['a','b','c']); print(s['b'])2
2. 2

SECTION C3 × 3 = 9

Q29. (Case, Society) (i) What is plagiarism? (ii) What is licensing? (iii) Name one FOSS licence.3
(i) Using others' work as your own without credit. (ii) Legal terms for using software/content. (iii) GPL / Apache / Creative Commons. 1 × 3
Q30. Write a program to create a Series from a dictionary of 3 items and print it.3
import pandas as pd
s = pd.Series({'pen':10,'book':50,'bag':300})
print(s)
3
Q31. SQL: (I) insert a row into CLUB(id,name,fee); (II) update fee to 600 where id=1.3
(I) INSERT INTO CLUB VALUES (2,'Music',400);
(II) UPDATE CLUB SET fee=600 WHERE id=1; 1 + 2

SECTION D4 × 4 = 16

Q32. Table STUDENT(name,class,marks). SQL: (I) class-wise average; (II) classes with avg>60; (III) toppers (marks=max) — show max; (IV) count per class.4
(I) SELECT class,AVG(marks) FROM student GROUP BY class;
(II) ...GROUP BY class HAVING AVG(marks)>60;
(III) SELECT MAX(marks) FROM student;
(IV) SELECT class,COUNT(*) FROM student GROUP BY class; 1 × 4
Q33. Complete a Matplotlib line plot (years vs users) with title, axis labels, marker and save.4
import matplotlib.pyplot as plt
yr=[2022,2023,2024]; users=[10,25,40]
plt.plot(yr, users, marker='o')
plt.title('Users'); plt.xlabel('Year'); plt.ylabel('Users (lakh)')
plt.savefig('users.png'); plt.show()
1 × 4
Q34. Tables COURSE(cid,cname) & STUDENT(sid,sname,cid). Equi-join showing student with course name; how many rows if STUDENT has no condition match (Cartesian)?4
SELECT s.sname, c.cname FROM STUDENT s, COURSE c WHERE s.cid=c.cid;
Without the condition, rows = (STUDENT rows) × (COURSE rows) — the Cartesian product. 3 + 1

SECTION E2 × 5 = 10

Q35. (Case, Pandas+Viz) df(Month,Sales). (i) total sales; (ii) month with max sales; (iii) average; (iv) code to draw a bar graph of Month vs Sales; (v) save the chart.5
(i) df['Sales'].sum()
(ii) df.loc[df['Sales'].idxmax(),'Month']
(iii) df['Sales'].mean()
(iv) plt.bar(df['Month'], df['Sales'])
(v) plt.savefig('sales.png') 1 × 5
Q36. (Case, SQL) Table EMP(name,dept,salary). (i) department-wise total salary; (ii) highest paid employee's salary; (iii) count of employees; (iv) average salary; (v) departments with more than 3 employees.5
(i) SELECT dept,SUM(salary) FROM EMP GROUP BY dept;
(ii) SELECT MAX(salary) FROM EMP;
(iii) SELECT COUNT(*) FROM EMP;
(iv) SELECT AVG(salary) FROM EMP;
(v) SELECT dept FROM EMP GROUP BY dept HAVING COUNT(*)>3; 1 × 5
Practice Paper 8

Informatics Practices (065) · Practice Paper 8 · Class XII

Time: 3 HoursMax. Marks: 70

SECTION A21 × 1 = 21

Q1. s.head() returns the first ______ rows by default.1
5. 1
Q2. SELECT MOD(40,9); gives (A)3 (B)4 (C)5 (D)61
(B) 4. 1
Q3. A DataFrame column selected as df['c'] is a ______.1
Series. 1
Q4. The largest WAN in the world is the ______.1
Internet. 1
Q5. Unauthorised online harassment is ______.1
Cyber bullying. 1
Q6. LCASE('DELHI') returns ______.1
delhi. 1
Q7. A patent protects a/an ______.1
Invention. 1
Q8. df.loc[0:2] returns ______ rows.1
3 (loc includes the stop label). 1
Q9. COUNT(DISTINCT city) counts ______ cities.1
Unique. 1
Q10. plt.savefig() ______ a chart.1
Saves (to an image file). 1
Q11. MONTH('2026-03-10') returns ______.1
3. 1
Q12. A LAN typically covers a ______.1
Building/campus. 1
Q13. INSERT INTO is a ______ command (DDL/DML).1
DML. 1
Q14. ORDER BY marks DESC sorts ______.1
High to low (descending). 1
Q15. Sharing a post deliberately creates a/an ______ footprint.1
Active. 1
Q16. The most reliable but costliest topology is ______.1
Mesh. 1
Q17. RIGHT('Science',3) returns ______.1
nce. 1
Q18. To filter rows by a condition we use ______ indexing.1
Boolean. 1
Q19. AVG ignores ______ values.1
NULL. 1
Q20. Assertion(A): A DataFrame's columns may have different dtypes. Reason(R): Each column is stored independently.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1
Q21. Assertion(A): COUNT(*) ignores NULLs. Reason(R): It counts rows, not column values.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(d) A false (COUNT(*) counts all rows incl. NULLs), R true. 1

SECTION B7 × 2 = 14

Q22. Differentiate df.size and df.shape.2
shape gives (rows, columns); size gives the total number of cells (rows × columns). 1 + 1
Q23. Name two safe-browsing practices.2
Use HTTPS sites; avoid suspicious links; strong passwords; never share OTPs (any two). 1 + 1
Q24. Write code to delete the row with label 2 from df.2
df = df.drop(2, axis=0) 2
Q25. Differentiate PAN and LAN.2
PAN spans a few metres (personal devices); LAN spans a building/campus (many computers). 1 + 1
Q26. Write SQL: (I) remainder of 27/4; (II) upper-case of 'name'.2
(I) SELECT MOD(27,4); → 3.
(II) SELECT UCASE(name) FROM t; 1 + 1
Q27. What is intellectual property? Name one IPR.2
Creations of the mind (inventions, works, designs); one IPR: copyright / patent / trademark. 1 + 1
Q28. Output: s=pd.Series([10,20,30]); print(s.head(2))2
0 10, 1 20 (first two elements, with dtype line). 2

SECTION C3 × 3 = 9

Q29. (Case, SQL functions) (i) Function to round a number. (ii) Function for substring. (iii) Function for weekday name.3
(i) ROUND(). (ii) MID()/SUBSTR(). (iii) DAYNAME(). 1 × 3
Q30. Write a program to create a DataFrame (Name, Age) and print rows where Age > 18.3
import pandas as pd
df = pd.DataFrame({'Name':['A','B'],'Age':[20,16]})
print(df[df['Age'] > 18])
3
Q31. SQL: (I) names where marks>80; (II) delete rows where marks<33.3
(I) SELECT name FROM student WHERE marks>80;
(II) DELETE FROM student WHERE marks<33; 1 + 2

SECTION D4 × 4 = 16

Q32. Table MOVIE(title,genre,rating). SQL: (I) avg rating per genre; (II) genres with avg rating>4; (III) titles sorted by rating desc; (IV) count per genre.4
(I) SELECT genre,AVG(rating) FROM movie GROUP BY genre;
(II) ...GROUP BY genre HAVING AVG(rating)>4;
(III) SELECT title FROM movie ORDER BY rating DESC;
(IV) SELECT genre,COUNT(*) FROM movie GROUP BY genre; 1 × 4
Q33. Complete a Matplotlib bar graph of teams vs scores with title, labels, colour and save.4
import matplotlib.pyplot as plt
team=['A','B','C']; score=[12,18,9]
plt.bar(team, score, color='teal')
plt.title('Scores'); plt.xlabel('Team'); plt.ylabel('Score')
plt.savefig('score.png'); plt.show()
1 × 4
Q34. Tables CUST(cid,cname,city) & ORD(oid,cid,amt). Equi-join to show customer name with order amount; state the foreign key.4
SELECT c.cname, o.amt FROM CUST c, ORD o WHERE c.cid=o.cid;
Foreign key: cid in ORD referencing CUST's primary key. 3 + 1

SECTION E2 × 5 = 10

Q35. (Case, Pandas) df(City,Pop). (i) total population; (ii) city with max pop; (iii) average; (iv) cities with pop>10; (v) bar graph code.5
(i) df['Pop'].sum()
(ii) df.loc[df['Pop'].idxmax(),'City']
(iii) df['Pop'].mean()
(iv) df[df['Pop']>10]
(v) plt.bar(df['City'], df['Pop']) 1 × 5
Q36. (Case, Society) A school promotes safe computing. (i) Define digital footprint. (ii) One cybercrime. (iii) One cyber-safety step. (iv) What is e-waste? (v) Name the IT Act year.5
(i) The trail of online data. (ii) Phishing/hacking. (iii) Strong passwords + 2FA. (iv) Discarded electronics (toxic). (v) 2000. 1 × 5
Practice Paper 9

Informatics Practices (065) · Practice Paper 9 · Class XII

Time: 3 HoursMax. Marks: 70

SECTION A21 × 1 = 21

Q1. The default index of a Series starts at ______.1
0. 1
Q2. SELECT POWER(10,2); gives ______.1
100. 1
Q3. To read only the first 20 rows of a CSV use ______.1
nrows=20. 1
Q4. A modem converts ______ signals.1
Digital ↔ analog. 1
Q5. Fake messages to steal data are ______.1
Phishing. 1
Q6. LENGTH('Network') returns ______.1
7. 1
Q7. Free and Open Source Software lets you ______ the code.1
Study/modify (and use, share). 1
Q8. df.iloc[2] selects the row at ______ 2.1
Position. 1
Q9. SELECT AVG(marks) gives the ______.1
Average marks. 1
Q10. The chart for comparing categories is a ______.1
Bar graph. 1
Q11. YEAR('2026-12-31') returns ______.1
2026. 1
Q12. A web ______ stores a website and serves its pages.1
Server. 1
Q13. A foreign key in one table refers to the ______ key of another.1
Primary. 1
Q14. To compute one summary per group, combine an aggregate with ______.1
GROUP BY. 1
Q15. Copying another's work as your own is ______.1
Plagiarism. 1
Q16. A bus topology uses a single ______ cable.1
Backbone. 1
Q17. MID('Practices',6,4) returns ______.1
ices. 1
Q18. df['New']=values ______ a column.1
Adds. 1
Q19. HAVING can use ______ functions.1
Aggregate. 1
Q20. Assertion(A): index=False prevents writing row numbers to CSV. Reason(R): It is a to_csv parameter.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1
Q21. Assertion(A): A histogram compares categories. Reason(R): It shows frequency distribution.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(d) A false (a histogram shows distribution, not category comparison), R true. 1

SECTION B7 × 2 = 14

Q22. Differentiate a Series and a DataFrame.2
Series is 1-D (one column, single dtype); DataFrame is 2-D (rows + columns, mixed dtypes). 1 + 1
Q23. Mention two impacts of e-waste.2
Toxic chemicals pollute soil/water; harm to human health (any two). 1 + 1
Q24. Write code to create a DataFrame from a list of dictionaries [{'A':1},{'A':2}].2
pd.DataFrame([{'A':1},{'A':2}]) — each dict is a row. 2
Q25. Differentiate the Internet and the WWW.2
Internet = global network infrastructure; WWW = the linked web pages accessed over it. 1 + 1
Q26. Write SQL: (I) average salary; (II) count of employees.2
(I) SELECT AVG(salary) FROM emp;
(II) SELECT COUNT(*) FROM emp; 1 + 1
Q27. Define cyber bullying. State one safety step.2
Harassing/humiliating someone online; safety: don't respond, save evidence, block and report. 1 + 1
Q28. Output: s=pd.Series([5,10,15]); print(s.sum())2
30. 2

SECTION C3 × 3 = 9

Q29. (Case, IPR) (i) IPR for a song. (ii) IPR for a logo. (iii) IPR for an invention.3
(i) Copyright. (ii) Trademark. (iii) Patent. 1 × 3
Q30. Write a program to read 'emp.csv' and print the average of column 'Salary'.3
import pandas as pd
df = pd.read_csv('emp.csv')
print(df['Salary'].mean())
3
Q31. SQL: (I) distinct departments; (II) employees per department.3
(I) SELECT DISTINCT dept FROM emp;
(II) SELECT dept,COUNT(*) FROM emp GROUP BY dept; 1 + 2

SECTION D4 × 4 = 16

Q32. Table ORDERS(cust,city,amt). SQL: (I) total per city; (II) cities with total>20000; (III) orders sorted by amt desc; (IV) max amt.4
(I) SELECT city,SUM(amt) FROM orders GROUP BY city;
(II) ...GROUP BY city HAVING SUM(amt)>20000;
(III) SELECT * FROM orders ORDER BY amt DESC;
(IV) SELECT MAX(amt) FROM orders; 1 × 4
Q33. Complete a Matplotlib histogram of ages (bins=4) with title and axis labels.4
import matplotlib.pyplot as plt
ages=[12,15,18,18,22,25,30]
plt.hist(ages, bins=4)
plt.title('Ages'); plt.xlabel('Age'); plt.ylabel('Count')
plt.show()
1 × 4
Q34. Tables TEACHER(tid,tname) & SUBJECT(sid,sname,tid). Equi-join to show subject with teacher name; explain the join column.4
SELECT s.sname, t.tname FROM SUBJECT s, TEACHER t WHERE s.tid=t.tid;
Join column tid (foreign key in SUBJECT → primary key in TEACHER) links the two tables. 3 + 1

SECTION E2 × 5 = 10

Q35. (Case, Pandas) df(Product,Sold). (i) total sold; (ii) best-selling product; (iii) average; (iv) products with Sold>50; (v) save to s.csv without index.5
(i) df['Sold'].sum()
(ii) df.loc[df['Sold'].idxmax(),'Product']
(iii) df['Sold'].mean()
(iv) df[df['Sold']>50]
(v) df.to_csv('s.csv', index=False) 1 × 5
Q36. (Case, Networks) A startup sets up office IT. (i) Network type? (ii) Topology with central switch? (iii) Device to reach the internet? (iv) What are cookies? (v) Static vs dynamic page?5
(i) LAN. (ii) Star. (iii) Router (with modem). (iv) Small files storing user info in the browser. (v) Static = same for all; dynamic = changes per user. 1 × 5
Practice Paper 10

Informatics Practices (065) · Practice Paper 10 · Class XII

Time: 3 HoursMax. Marks: 70

SECTION A21 × 1 = 21

Q1. A Pandas Series stores a single ______ (data type).1
dtype. 1
Q2. SELECT ROUND(9.6,0); gives (A)9 (B)10 (C)9.6 (D)9.01
(B) 10. 1
Q3. read_csv() loads data into a ______.1
DataFrame. 1
Q4. A repeater is used to ______ a signal.1
Regenerate/amplify (extend range). 1
Q5. GPL and Apache are types of ______ licences.1
Open-source. 1
Q6. MOD(50,8) returns ______.1
2. 1
Q7. Plagiarism violates ______ rights.1
Copyright (intellectual property). 1
Q8. df['col'].mean() returns the ______.1
Average of that column. 1
Q9. MAX() and MIN() can work on ______ and numeric columns.1
Text (alphabetical). 1
Q10. plt.plot() draws a ______.1
Line plot. 1
Q11. DAYNAME() returns the ______ name.1
Weekday. 1
Q12. URL stands for ______.1
Uniform Resource Locator. 1
Q13. A table can have only one ______ key.1
Primary. 1
Q14. SELECT ... ORDER BY name; sorts ______ by default.1
Ascending. 1
Q15. India's cyber law is the ______ Act.1
IT (2000). 1
Q16. The topology with a central connecting device is ______.1
Star. 1
Q17. LEFT('Database',4) returns ______.1
Data. 1
Q18. df.drop(1, axis=0) deletes a ______.1
Row. 1
Q19. The clause that sorts the final result is ______.1
ORDER BY. 1
Q20. Assertion(A): A switch is intelligent. Reason(R): It forwards data using MAC addresses.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(a) Both true and R explains A. 1
Q21. Assertion(A): WHERE can filter with AVG(). Reason(R): WHERE runs before grouping/aggregation.1
  1. Both true; R explains A
  2. Both true; R not explanation
  3. A true, R false
  4. A false, R true
(d) A false (WHERE cannot use aggregates), R true. 1

SECTION B7 × 2 = 14

Q22. Differentiate loc and iloc with an example.2
loc by label (df.loc[1,'Name']); iloc by position (df.iloc[1,0]); loc includes the stop label, iloc excludes it. 1 + 1
Q23. What are net etiquettes? Give two.2
Online manners: be respectful; no spamming/trolling; credit others' work; protect privacy (any two). 1 + 1
Q24. Write code to read 'd.csv' and display its first 5 rows.2
df = pd.read_csv('d.csv'); print(df.head()) 2
Q25. Differentiate a hub and a gateway.2
A hub connects devices in one LAN (broadcasts); a gateway connects two dissimilar networks (different protocols). 1 + 1
Q26. Write SQL: (I) length of 'city'; (II) round 'price' to 2 decimals.2
(I) SELECT LENGTH(city) FROM t;
(II) SELECT ROUND(price,2) FROM t; 1 + 1
Q27. What is a digital footprint? Why be careful?2
The trail of data left online; be careful because it is permanent and may be seen by others/employers. 1 + 1
Q28. Output: df=pd.DataFrame({'A':[1,2],'B':[3,4]}); print(df.shape)2
(2, 2). 2

SECTION C3 × 3 = 9

Q29. (Case, Networks) (i) Device that routes between networks. (ii) Device that extends range. (iii) Topology that is most reliable.3
(i) Router. (ii) Repeater. (iii) Mesh. 1 × 3
Q30. Write a program to create a DataFrame (Name, Marks) and save it to 'result.csv' without the index.3
import pandas as pd
df = pd.DataFrame({'Name':['A','B'],'Marks':[85,90]})
df.to_csv('result.csv', index=False)
3
Q31. SQL: (I) display employees in dept 'IT' sorted by salary desc; (II) total salary of dept 'IT'.3
(I) SELECT * FROM emp WHERE dept='IT' ORDER BY salary DESC;
(II) SELECT SUM(salary) FROM emp WHERE dept='IT'; 2 + 1

SECTION D4 × 4 = 16

Q32. Table GAME(player,team,score). SQL: (I) team-wise total score; (II) teams with total>100; (III) players sorted by score desc; (IV) highest score.4
(I) SELECT team,SUM(score) FROM game GROUP BY team;
(II) ...GROUP BY team HAVING SUM(score)>100;
(III) SELECT player FROM game ORDER BY score DESC;
(IV) SELECT MAX(score) FROM game; 1 × 4
Q33. Complete a Matplotlib line plot (week vs steps) with title, labels, legend and save.4
import matplotlib.pyplot as plt
wk=[1,2,3]; steps=[5000,7000,6500]
plt.plot(wk, steps, label='Steps')
plt.title('Activity'); plt.xlabel('Week'); plt.ylabel('Steps')
plt.legend(); plt.savefig('act.png'); plt.show()
1 × 4
Q34. Tables AUTHOR(aid,aname) & BOOK(bid,title,aid). Equi-join to show book title with author name; how is the Cartesian product different?4
SELECT b.title, a.aname FROM BOOK b, AUTHOR a WHERE b.aid=a.aid;
The Cartesian product (no condition) pairs every book with every author (m×n); the equi-join keeps only matching aid rows. 3 + 1

SECTION E2 × 5 = 10

Q35. (Case, Pandas+Viz) df(Subject,Marks). (i) average marks; (ii) subject with max marks; (iii) rows where Marks<40; (iv) code for a bar graph; (v) code to save it.5
(i) df['Marks'].mean()
(ii) df.loc[df['Marks'].idxmax(),'Subject']
(iii) df[df['Marks']<40]
(iv) plt.bar(df['Subject'], df['Marks'])
(v) plt.savefig('marks.png') 1 × 5
Q36. (Case, SQL+Society) Table MEMBER(mid,name,city). (i) names in uppercase; (ii) count per city; (iii) define plagiarism; (iv) name one FOSS example; (v) one e-waste management step.5
(i) SELECT UCASE(name) FROM MEMBER;
(ii) SELECT city,COUNT(*) FROM MEMBER GROUP BY city;
(iii) Using others' work as your own without credit. (iv) Linux/Python. (v) Recycle via authorised recyclers. 1 × 5
✅ All 10 practice papers complete (plus the CBSE Sample Paper in the CBSE Sample Paper + MS menu). Each follows the official CBSE blueprint — Sections A–E, 37 questions, 70 marks — with full marking schemes. Every chapter's question bank also gives 15 questions × 8 types for unlimited extra practice.

🏆 Exam Strategy

Time plan (3 hours): Section A ~25 min, B ~25 min, C ~20 min, D ~50 min, E ~30 min, revision ~20 min.
For MCQs, always write the text of the correct option, not just the letter. For SQL, end queries with a semicolon and use the exact function names. For Pandas output questions, write the output exactly as Python prints it (including the dtype line for a Series).

📚 Glossary (A–Z)

Key Informatics Practices (065) terms for quick revision.

Aggregate function — SQL function on many rows returning one value (MAX, MIN, AVG, SUM, COUNT).
Active footprint — online data you share deliberately (posts, emails).
Bar graph — chart comparing categories (separated bars); plt.bar().
Boolean indexing — filtering DataFrame rows by a True/False condition.
Cartesian product — joining two tables with no condition → m × n rows.
Cookie — small text file a website stores in the browser to remember the user.
Copyright — IPR protecting creative works (books, music, software).
COUNT(*) — counts all rows incl. NULLs; COUNT(col) skips NULLs.
CSV — Comma-Separated Values; plain-text tabular file.
DataFrame — 2-D labelled Pandas structure (rows + columns).
Digital footprint — the trail of data left online (active + passive).
dtype — the data type of a Series/column.
Equi-join — join of two tables on equal values of a common column (=).
E-waste — discarded electronics; manage with Reduce, Reuse, Recycle.
Foreign key — column referring to another table's primary key (link for joins).
FOSS — Free and Open Source Software (free to use, study, modify, share).
Gateway — connects two dissimilar networks (different protocols).
GROUP BY — groups rows so an aggregate is computed per group.
HAVING — filters groups after GROUP BY (can use aggregates).
head()/tail() — first/last n rows (default 5).
Histogram — chart of frequency distribution in bins (touching bars); plt.hist().
Hub — broadcasts data to all devices; Switch — sends to the intended device.
iloc — select by integer position (stop excluded); loc — by label (stop included).
Index — the labels of a Series/DataFrame.
Internet — global network of networks; WWW — linked web pages on it.
IPR — Intellectual Property Rights (copyright, patent, trademark).
IT Act — India's cyber law (2000) defining cyber offences.
LAN / MAN / WAN / PAN — networks by area (building / city / country / personal).
Matplotlib — Python plotting library (pyplot).
Modem — converts digital ↔ analog signals.
NaN — Not a Number; a missing value in Pandas.
Pandas — Python data-handling library (Series & DataFrame).
Patent — IPR protecting an invention.
Passive footprint — data collected automatically (cookies, IP).
Phishing — fake messages/sites to steal data.
Plagiarism — using another's work as your own without credit.
Primary key — uniquely identifies each row (no NULL/duplicate).
read_csv() / to_csv() — import a CSV into / export a DataFrame to a CSV.
Repeater — regenerates a weak signal to extend range.
Router — connects networks and routes data using IP.
Series — 1-D labelled Pandas array (index + values).
Single-row function — SQL function returning one value per row (UCASE, ROUND, MID).
Topology — network layout: Star, Bus, Tree, Mesh.
Trademark — IPR protecting brand names/logos.
URL — Uniform Resource Locator; the address of a web resource.
VoIP — Voice over Internet Protocol (calls over the internet).
Web server / hosting — computer that serves a website / renting space on it.