Register Number
Sri Sai Ranganathan Engineering College
(An Autonomous Institution)
Approved by AICTE, New Delhi and Affiliated to Anna University,
Chennai
Zakirnaickenpalayam Village, Coimbatore- 641109
MODEL EXAMINATION - I
II year (Third Semester)
B.E. / [Link]. – Computer Science and Engineering/Information Technology/
Artificial Intelligence and Machine Learning/Cyber Security
CS3352 – FOUNDATIONS OF DATA SCIENCE
(Regulations 2024)
Duration : 3 Hours
Maximum Marks: 100
Date & Time : 24.10.2025 & 1.30 PM to 04.30 PM
Answer ALL Questions
Part A – (10 X 2 = 20 Marks)
CO
Q. No. Question M KL
#
1. What is Structured data? 2 CO KL
Structured data is data that is organized in a fixed schema, usually in rows 1 1
and columns, making it easy to store, query, and analyze.
Examples:
Relational databases (tables)
CSV files
Excel spreadsheets
2. Compare Data Mining and Data Warehousing. 2 CO KL
Aspect Data Warehousing Data Mining 1 3
Purpose Storage of data Knowledge discovery
Nature Historical, integrated data Pattern extraction
Output Organized data Rules, trends, predictions
Techniques ETL, OLAP Classification, clustering
Example Sales database Predict customer churn
3. What is a Percentile rank? Give an example. 2 CO KL
2 1
Percentile rank indicates the percentage of scores below a given value.
Formula:
Example:
If a student scored higher than 75 out of 100 students:
4. List the differences between a Discrete variable and a continuous 2 CO KL
variable with an example. 2 2
Page 1 of 18
Discrete Variable Continuous Variable
Countable Measurable
Whole values only Any value in a range
Example: Number of students Example: Height
5. Define Multiple Regression. 2 CO KL
Multiple regression models the relationship between one dependent variable 3 1
and two or more independent variables.
6. What is the use of scatter plot? 2 CO KL
Shows relationship between two variables 3 1
Identifies correlation (positive/negative/none)
Detects outliers
7. What are the key properties of Pearson correlation coefficient? 2 CO KL
Ranges from –1 to +1 4 1
Measures linear relationship
+1 → perfect positive correlation
–1 → perfect negative correlation
0 → no correlation
8. Outline the two types of Numpy arrays. 2 CO KL
1-Dimensional Array – Vector 4 3
Multi-Dimensional Array – Matrix, Tensor
9. How [Link] function differs from [Link] function? 2 CO KL
[Link]() [Link]() 5 2
Displays points Draws lines
Best for correlation Best for trends
No automatic connection Points connected
10. Showcase 3-Dimensional drawing in Matplotlib with corresponding 2 CO KL
Python code. 5 5
import [Link] as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
x = [Link](0, 10)
y = [Link](0, 10)
z=x+y
fig = [Link]()
ax = fig.add_subplot(111, projection='3d')
[Link](x, y, z)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
[Link]()
Part B – (5 X 16 = 80 Marks)
1 a What is Data warehouse? Outline the architecture of a data 1 CO KL
Page 2 of 18
1 ) warehouse with a diagram. 6 1 3
A data warehouse (DW) is a central, integrated repository storing
historical and current data from diverse sources, optimized for analysis,
reporting, and business intelligence (BI) to support data-driven
decisions. Its architecture typically involves layers: Source Systems,
Data Staging Area (ETL/ELT processes), the Data Warehouse itself
(often dimensional models like star/snowflake schemas), and Access
Tools (BI, reporting, data mining). A common architectural pattern is the
Hub-and-Spoke, with a central DW feeding subject-specific data marts.
Data Warehouse Definition:
Central Repository: Consolidates data from operational databases,
flat files, SaaS platforms, etc., into one place.
Subject-Oriented: Organized around key business subjects (e.g.,
sales, customers) rather than daily operations.
Time-Variant: Stores historical data, allowing trend analysis over
time.
Integrated: Cleanses and harmonizes data from different sources into
a consistent format.
Non-Volatile: Data is loaded and rarely updated, providing a stable
historical record.
Data Warehouse Architecture (Hub-and-Spoke Model):
This layered approach describes the flow and processing of data.
1. Source Systems Layer:
Description: The origin of data, including transactional
databases (OLTP), CRM, ERP, flat files, logs, and external
data.
Role: Provides raw operational data.
2. Staging Area (ETL/ELT Layer):
Description: An intermediate storage area where data is
Page 3 of 18
extracted, transformed, and loaded.
ETL/ELT Processes:
Extract: Pulls data from sources.
Transform: Cleanses, standardizes, integrates, and applies
business rules (e.g., deduplication, format conversion).
Load: Moves processed data into the warehouse.
3. Data Warehouse Layer (Central Repository):
Description: The core database, often a relational database
optimized for analysis (OLAP), storing integrated, historical
data.
Key Components:
Metadata Repository: Stores "data about data" (schemas,
definitions, lineage) for governance.
Data Model: Often uses dimensional modeling (star schema,
snowflake schema) for efficient querying.
4. Data Marts Layer (Optional/Spokes):
Description: Smaller, departmental subsets of the data
warehouse, focusing on specific business functions (e.g.,
Marketing Mart, Sales Mart).
Role: Provides targeted data for specific user groups, improving
performance and usability.
5. Access & Presentation Layer (BI/Analytics Tools):
Description: The interface for end-users.
Tools:
Reporting Tools: Generate standard reports (e.g., SAP,
Microsoft Power BI, Tableau).
OLAP Tools: Allow for multi-dimensional analysis (slicing,
dicing).
Data Mining Tools: Discover patterns and trends using AI/ML.
Dashboards: Interactive visualizations for monitoring KPIs.
(Or)
b Examine the different Facts of data with the challenges in their processing. 1 CO KL
) Facets of Data 6 1 2
It is used to represent the various forms in which the data could be represented
inside Big Data. The following are the various forms in which the data could be
represented.
[Link](Structured data is data that depends on a data model and resides
in a fixed field within a record. ) Example:Excel files. SQL , or Structured
Query Language
Page 4 of 18
[Link](Unstructured data is data that isn’t easy to fit into a data
model because the content is context-specific or varying.) Example: Email
[Link] Language(Natural language is a special type of unstructured data;
it’s challenging to process because it requires knowledge of specific data
science techniques and linguistics.)
Example: Emails, mails, comprehensions, essays, articles etc..
[Link] Generated(Machine-generated data is information that’s
automatically created by a computer, process, application, or other machine
without human intervention.)
[Link] Based(In graph theory, a graph is a mathematical structure to model
pair-wise relationships between objects.) Example: Graph-based data is a
natural way to represent social networks, and its structure allows you to
calculate specific metrics
[Link], Video & Image :Audio, image, and video are data types that pose
specific challenges to a data scientist. Tasks that are trivial for humans, such as
recognizing objects in pictures, turn out to be challenging for computers.
Examples: Youtube videos, podcast, music and lots more to add up to.
[Link] Data: The data flows into the system when an event
happens instead of being loaded into a data store in a batch. Examples:
Video conferences and live telecasts all work on this basics.
1 a Express each of the following scores as a Z score: First, Mary`s 1 CO KL
2 ) intelligence quotient is 135, given a mean of 100 and standard 0 2 4
deviation 15. Second, Mary obtained a score of 470 in- the
Competitive Examination conducted in April 2022, given a mean of
500 and a standard deviation of 100.
Mary's intelligence quotient corresponds to a Z score of
approximately 2.33, and her competitive examination score corresponds
to a Z score of -0.3.
Step 1: Calculate the Z score for the IQ
The Z score is calculated using the formula
Z=(X−μ)/σ, where X is the raw score, 𝜇 is the mean, and σ is the
(i)
standard deviation. For Mary's IQ of 135:
ZIQ=(135−100) /15=35/15≈2.33
Step 2: Calculate the Z score for the exam score
Using the same formula for the competitive examination score of 470:
ZExam = (470−500) /100=-30/100=-0.3
Answer:
Mary's IQ Z score is approximately 2.33, and her examination Z score
is -0.3.
(ii What is a frequency distribution? Customers who have purchased a 6 CO KL
) particular product rated the usability of the product on a 10 point 2 3
scale, ranging from 1 (poor) to 10 (excellent) as follow.
Page 5 of 18
3 7 2 7 8
3 1 4 10 3
2 5 3 5 8
9 7 6 3 7
8 9 7 3 6
Construct a Frequency distribution for the above data.
Explanation:
A frequency distribution is a summary of how often different values occur
within a dataset. It is a way to organize data to show the frequency (count) of
each possible outcome of a variable. In this case, we need to construct a
frequency distribution for the usability ratings given by customers on a 10-
point scale.
Step by Step Solution:
Step 1
List all possible ratings from 1 to 10.
Step 2
Count the number of times each rating appears in the dataset.
Step 3
Create a table with two columns: one for the ratings and one for their
corresponding frequencies.
Step 4
Fill in the table with the counts obtained in step 2.
Step 5
Verify the total count matches the number of data points provided.
Final Answer:
The frequency distribution for the given data is as follows:
Rating Frequency
1 1
2 2
3 6
4 1
5 2
6 2
7 4
8 3
9 2
10 1
Total Frequency 24
(Or)
b Compare and contrast Qualitative data and Quantitative data with 1 CO KL
) an example. 6 2 4
Qualitative Data Quantitative Data
Qualitative data uses methods like Quantitative data uses methods as
interviews, participant observation, and questionnaires, surveys, and
focus on a grouping to gain collective structured observations to gain
information. collective information.
The data format used in it is textual. The data format used in it is
Datasheets contain audio or video numerical. Datasheets are obtained
recordings and notes. in the form of numerical values.
Page 6 of 18
Qualitative data talks about the Quantitative data talks about the
experience or quality and explains the quantity and explains the questions
questions like 'why' and 'how'. like 'how much', 'how many.
The data is analyzed by grouping it into The data is analyzed by statistical
different categories. methods.
Qualitative data are subjective and can be Quantitative data are fixed and
further open to interpretation. universal.
Categorize the different types of relationships using Scatter plots. 8 CO KL
Scatter plots categorize relationships by direction (positive, negative, 3 2
none), form (linear, non-linear/curved, no pattern), and strength (strong, weak),
showing how two variables interact, like increasing together (positive linear),
decreasing together (negative linear), or having no pattern (no correlation).
(i)
1 a Here are the main categories:
3 ) 1. Positive Correlation (Direct): As the X-variable increases, the Y-
variable also tends to increase, forming an upward trend from left to
right.
Strong Positive: Points cluster tightly around a straight line.
Weak Positive: Points are more spread out but still show an upward
trend.
2. Negative Correlation (Inverse): As the X-variable increases, the Y-
variable tends to decrease, forming a downward trend.
Strong Negative: Points cluster closely around a downward-sloping
line.
Weak Negative: Points are scattered but show a general downward
pattern.
3. No Correlation: There's no discernible pattern or relationship between
the variables; points are scattered randomly.
4. Non-Linear (Curvilinear): The relationship follows a curve (like a U-
shape or parabola) rather than a straight line.
Positive Curve: Starts low, goes high, then comes down (e.g., growth
curve).
Negative Curve: Starts high, goes low, then comes back up.
(ii The values of x and their corresponding values of y are presented 8 CO KL
) below. 3 6
Page 7 of 18
x 0.5 1.5 2.5 3.5 4.5 5.5 6.5
y 2.5 3.5 5.5 4.5 6.5 8.5 10.5
i)Find the least square regression line y=ax+b.
ii) Estimate the value of y when x=10.
We are given paired data (x,y).
We find the least squares regression line of the form:
y=ax+b
Given Data:
x 0.5 1.5 2.5 3.5 4.5 5.5 6.5
y 2.5 3.5 5.5 4.5 6.5 8.5 10.5
Number of observations, n=7
Step 1: Compute required values
x y x² xy
0.5 2.5 0.25 1.25
1.5 3.5 2.25 5.25
2.5 5.5 6.25 13.75
3.5 4.5 12.25 15.75
4.5 6.5 20.25 29.25
5.5 8.5 30.25 46.75
6.5 10.5 42.25 68.25
Step 2: Formula for regression coefficients
Step 3: Calculate a
Step 4: Calculate b
Page 8 of 18
i) Least Square Regression Line
ii) Estimate y when x = 10
Final Answers
Regression line:
Estimated value of y when x = 10:
(Or)
b Consider the following dataset with one response variable y and two 1 CO KL
) predictor variables x1 and x2. 6 3 5
y 140 155 159 179 192 200 212 215
x1 60 62 67 70 71 72 75 78
x2 22 25 24 20 15 14 14 11
Fit a Multiple Linear regression model to this dataset.
Concepts
Multiple Linear Regression, Least Squares Estimation, Matrix Algebra,
Regression Coefficients
Explanation
We are asked to fit a multiple linear regression model to the given dataset.
The general form of the model is:
y=β0+β1x1+β2x2
We need to estimate the coefficients β0, β1, and β2 using the least squares
method.
This involves setting up the design matrix X and response vector Y, and then
solving for β using: β^=(XTX)−1XTY
Step-By-Step Solution
Page 9 of 18
Step 1: Write the data in tabular form
x1 x2 y
1 60 22 140
2 62 25 155
3 67 24 159
4 70 20 179
5 71 15 192
6 72 14 200
7 75 14 212
8 78 11 215
Step 2: Construct the design matrix X and response vector Y
Step 3: Calculate XTX and XTY
First, sum up the columns:
Page 10 of 18
Step 6: Write the final regression equation
Final Answer
The fitted multiple linear regression model is:
Where:
y is the predicted response variable
x1 and x2 are the predictor variables
50.46 is the intercept
2.68 is the coefficient for x1
−2.16 is the coefficient for x2
1 a Consider that, an E-Commerce organization like Amazon, have 1 CO KL
4 ) different regions sales as NorthSales, SouthSales, WestSales, 6 4 5
[Link] files. They want to combine North and West region
sales and South and East sales to find the aggregate sales of these
collaborating regions Help them to do so using Python code.
Page 11 of 18
i) Combining Region-wise Sales Data using Python (Pandas)
To combine North & West sales and South & East sales and then find
aggregate sales, we can use Pandas.
Assumptions
Files: [Link], [Link], [Link], [Link]
Each file has a column named Sales
Python Code
import pandas as pd
# Load CSV files
north = pd.read_csv("[Link]")
south = pd.read_csv("[Link]")
west = pd.read_csv("[Link]")
east = pd.read_csv("[Link]")
# Combine North and West regions
north_west = [Link]([north, west], ignore_index=True)
north_west_total = north_west["Sales"].sum()
# Combine South and East regions
south_east = [Link]([south, east], ignore_index=True)
south_east_total = south_east["Sales"].sum()
# Display aggregate sales
print("Aggregate Sales of North & West Regions:", north_west_total)
print("Aggregate Sales of South & East Regions:", south_east_total)
Explanation
read_csv() loads each region’s data
[Link]() merges datasets vertically
sum() calculates total sales of the collaborating regions
(Or)
b (i) 8 CO KL
) Elaborate about Hierarchical Indexing. 4
Hierarchical indexing, also known as multi-indexing, is a method of
incorporating multiple index levels within a single index to handle higher-
dimensional data within a one-dimensional (Series) or two-dimensional
(DataFrame) data structure. It organizes data in a structured, nested manner,
much like a file system or an organizational chart.
Key Concepts:
Structure: Data is organized into a tree-like format, with parent-child
relationships between different index levels. Each entry can be uniquely
identified by a tuple of values across all index levels.
Purpose: It allows for sophisticated data analysis, efficient data retrieval,
slicing, and manipulation, especially with complex, large datasets, by
Page 12 of 18
providing logical groupings and a clear structure.
Implementation: It is a core feature of the pandas library in Python, where
the MultiIndex object manages these multiple levels of indexing.
Working with Pandas
In pandas, you can think of a MultiIndex as an extra dimension of data. The
highest level is the "parent" index (level 0), which branches out to "child"
indices (level 1, and so on).
Creation: Hierarchical indexing can be created by passing a list of column
names to the set_index() method or by using explicit constructors
like [Link].from_tuples().
Indexing and Slicing: Data can be accessed using tuples to specify values for
each index level. You can also perform "partial" indexing by specifying only
the top-level index value, which returns all data under that parent.
Rearranging Data: Methods like stack() and unstack() allow for easy
transformation between a multiply indexed Series and a conventionally
indexed DataFrame, or vice versa, by pivoting index levels to columns.
Advantages and Applications
Efficiency: Allows for optimized queries and faster sorting and aggregation
of grouped data by preserving relationships inherently in the index structure.
Clarity: Makes complex data with multiple related categories easier to read
and understand visually.
Versatility: Useful in various applications, from organizing file systems and
company organizational charts to advanced data science techniques like
Retrieval-Augmented Generation (RAG) systems in AI for summarizing
opinions from a large number of documents.
(ii 8 CO KL
) Demonstrate different ways of creating Pandas data frame. 4 3
Pandas DataFrame comes is a powerful tool that allows us to store and
manipulate data in a structured way, similar to an Excel spreadsheet or a
SQL table. A DataFrame is similar to a table with rows and columns. It
helps in handling large amounts of data, performing calculations, filtering
information with ease.
Creating an Empty DataFrame
An empty DataFrame in pandas is a table with no data but can have
defined column names and indexes. It is useful for setting up a structure
before adding data dynamically. An empty DataFrame can be created
just by calling a dataframe constructor.
import pandas as pd
df = [Link]()
Page 13 of 18
print(df)
Output
Empty DataFrame
Columns: []
Index: []
Creating a DataFrame from a List
A simple way to create a DataFrame is by using a single list. Pandas
automatically assigns index values to the rows when you pass a list.
Each item in the list becomes a row.
The DataFrame consists of a single unnamed column.
import pandas as pd
lst = ['Geeks', 'For', 'Geeks', 'is',
'portal', 'for', 'Geeks']
df = [Link](lst)
print(df)
Output
0
0 Geeks
1 For
2 Geeks
3 is
4 portal
5 for
6 Geeks
Creating DataFrame from dict of Numpy Array
We can create a Pandas DataFrame using a dictionary of NumPy
arrays. Each key in the dictionary represents a column name and the
corresponding NumPy array provides the values for that column.
import numpy as np
import pandas as pd
data = [Link]([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
df = [Link](data, columns=['A', 'B', 'C'])
print(df)
Output
A B C
0 1 2 3
1 4 5 6
2 7 8 9
Creating a DataFrame from a List of Dictionaries
We can also create dataframe using List of Dictionaries. It represents
data where each dictionary corresponds to a row. This method is useful
Page 14 of 18
for handling structured data from APIs or JSON files. It is commonly
used in web scraping and API data processing since JSON responses
often contain lists of dictionaries.
import pandas as pd
dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"],
'degree': ["MBA", "BCA", "[Link]", "MBA"],
'score':[90, 40, 80, 98]}
df = [Link](dict)
print(df)
Output
name degree score
0 aparna MBA 90
1 pankaj BCA 40
2 sudhir [Link] 80
3 Geeku MBA 98
1 a How Text and image annotations are done using Python? Give an 1 CO KL
5 ) example of your own with appropriate Python code. 6 5 2
Text and image annotations in Python are typically performed using
powerful libraries like OpenCV, Pillow (PIL), and tools specialized for
machine learning annotation output formats (like labelme or lxml for
Pascal VOC/COCO formats). The process generally involves
programmatically drawing text and shapes onto an image surface.
Below is an example demonstrating how to annotate an image using
the Pillow (PIL) library, which is excellent for simple image
manipulation and text drawing.
Example: Annotating an Image with Text and a Bounding Box
This example will open an existing image, draw a red rectangle
(bounding box) around a specific region, and add descriptive text above
the box.
Python Code:
from PIL import Image, ImageDraw, ImageFont
import os
def annotate_image(image_path, output_path, annotation_text,
bbox_coords):
"""
Annotates an image with a bounding box and text label using Pillow.
:param image_path: Path to the input image file.
:param output_path: Path to save the annotated image.
:param annotation_text: The text to add (e.g., "Dog").
:param bbox_coords: A tuple of (xmin, ymin, xmax, ymax) for the
bounding box.
"""
try:
# Open the image
with [Link](image_path).convert("RGB") as img:
# Create a drawing object
draw = [Link](img)
Page 15 of 18
# --- 1. Draw the Bounding Box ---
# Coords format: [(xmin, ymin), (xmax, ymax)] or (xmin, ymin,
xmax, ymax)
[Link](bbox_coords, outline="red", width=3)
# --- 2. Add the Text Annotation ---
# Define font and size (use a default font if you don't have a
specific one)
try:
# Common system font paths for better cross-platform
compatibility
if [Link] == 'nt': # Windows
font_path = "[Link]"
else: # Linux/macOS
font_path = "/usr/share/fonts/truetype/dejavu/DejaVuSans-
[Link]"
# If you don't have these specific paths, just use default font
font = [Link](font_path, 24)
except IOError:
print("Could not find specific font, using default Pillow font.")
font = ImageFont.load_default() # Fallback to a default font
# Position the text just above the top-left corner of the bbox
text_x, text_y = bbox_coords[0], bbox_coords[1] - 30 # Move
30px up
# Draw the text with a background box for better visibility
# Get text size to draw a background rectangle
text_bbox = [Link]((text_x, text_y), annotation_text,
font=font)
[Link](text_bbox, fill="red")
[Link]((text_x, text_y), annotation_text, fill="white",
font=font)
# Save the annotated image
[Link](output_path)
print(f"Successfully annotated image and saved to
{output_path}")
except FileNotFoundError:
print(f"Error: Input image not found at {image_path}")
except Exception as e:
print(f"An error occurred: {e}")
# --- Example Usage ---
if __name__ == "__main__":
# Define parameters
input_image_file = "input_image.jpg"
output_image_file = "output_annotated_image.jpg"
# Define a sample annotation (e.g., coordinates for a dog in the image)
# Coords are (xmin, ymin, xmax, ymax) in pixels
bounding_box_coordinates = (150, 200, 450, 500)
label_text = "Golden Retriever"
# Run the function
annotate_image(
input_image_file,
output_image_file,
Page 16 of 18
label_text,
bounding_box_coordinates
)
(Or)
b Explain various features of Matplotlib platform used for data 1 CO KL
) visualization and illustrate its challenges. 6 5 1
Matplotlib is a comprehensive plotting library for creating static,
animated, and interactive visualizations in Python. It offers a wide range
of features for data visualization, but users may encounter certain
challenges.
Key Features of Matplotlib
Versatile Plot Types: Matplotlib supports an extensive array of
plot types, including line plots, scatter plots, bar charts,
histograms, pie charts, and more complex 3D plots.
High-Quality Output: It can generate publication-quality
figures in various hardcopy formats and interactive environments
across different platforms. Users have fine-grained control over
every element in the plot, from figure size and DPI to line
thickness and colors.
Customization and Control: Matplotlib's object-oriented API
provides precise control over all aspects. Users can customize
titles, labels, legends, axes, ticks, and virtually any other
aesthetic element.
Integration: It integrates well with other major Python data
science libraries, such as NumPy, Pandas, and SciPy. It is also
the underlying engine for visualization in many other libraries
(e.g., Seaborn uses Matplotlib).
Backend Flexibility: Matplotlib can operate with various
backends, allowing it to render output to different interfaces and
file types (e.g., PNG, PDF, SVG, or interactive Tkinter, Qt
interfaces).
Pyplot Interface: The pyplot module offers a convenient,
MATLAB-like interface for simple plotting tasks, making it easy
for beginners to get started quickly.
Text and Annotations: It provides powerful tools for adding
text, mathematical expressions (using LaTeX syntax),
annotations, and arrows to plots.
Challenges of Using Matplotlib
Steep Learning Curve: The object-oriented nature and vast
number of options can make the library complex and challenging
for new users to master, particularly for advanced
customizations.
Verbosity: Creating complex or highly customized plots often
requires writing several lines of code, even for relatively simple
tasks, which can be verbose.
Default Aesthetics: Matplotlib's default plot styles have
historically been considered outdated compared to those of
newer libraries like Seaborn or Plotly. While styles have
improved and are highly customizable, the out-of-the-box
appearance often requires tweaking.
Handling Large Datasets: Matplotlib is primarily designed for
creating static visualizations. While it supports some
interactivity, it may struggle with highly interactive, web-based
visualizations or extremely large datasets compared to
Page 17 of 18
specialized tools.
Inconsistent Interfaces: The existence of both the state-
based pyplot interface and the object-oriented interface can
sometimes lead to confusion about the best approach for different
tasks.
M – Marks
CO# - Course Outcome Number
KL – Knowledge Level (K1, K2, K3, K4, K5, K6)
STAFF IN CHARGE HOD IQAC
Page 18 of 18