Part 1: Core Concepts (2 Marks)
- Data Science: An interdisciplinary field combining computer science, domain expertise, and statistical mathematics to extract meaningful insights and actionable knowledge from structured and unstructured data.
- Conway’s Data Science Venn Diagram: Drew Conway’s formulation placing Data Science at the intersection of Hacking Skills, Math & Statistics Knowledge, and Substantive Domain Expertise.
- Data Wrangling (Munging): The process of cleaning, transforming, and restructuring messy raw data into a polished format suitable for downstream analytical modeling.
- CRISP-DM Process: Cross-Industry Standard Process for Data Mining comprising six iterative phases: Business Understanding, Data Understanding, Data Preparation, Modeling, Evaluation, and Deployment.
Part 2: Structural Frameworks (10 Marks)
The 6-Stage End-to-End Data Science Lifecycle
- 1. Business Understanding: Formulate Problem & Success Metrics
- 2. Data Acquisition: Scraping, SQL Queries, IoT Telemetry, APIs
- 3. Data Cleaning & Wrangling: Impute Missing, Handle Outliers
- 4. Exploratory Data Analysis (EDA): Statistical Plots, Correlation
- 5. Machine Learning Modeling & Validation: Train, Test, Tune
- 6. Deployment & Monitoring: REST APIs, Docker, Drift Detection
Part 3: Distinction Tables
| Basis of Comparison | Business Intelligence (BI) | Data Science |
|---|---|---|
| Time Perspective | Historical and retrospective (“What happened?”) | Predictive and prescriptive (“What will happen?”) |
| Data Types | Structured relational data warehouses | Heterogeneous: Video, audio, sensor logs, text, JSON |
| Primary Method | Static dashboards, OLAP cubes, KPI aggregations | Statistical learning, predictive algorithms, deep neural nets |
| Tool Stack | PowerBI, Tableau, SQL Server | Python, R, TensorFlow, Spark, Scikit-learn |
Part 4: Worked Problems & Exam Traps
Core Python Data Science Ingestion Archetype
import pandas as pd
import numpy as np
# Load dataset
df = pd.read_csv("enterprise_data.csv")
# Diagnostic inspection
print(df.info())
print(df.describe())
# Handling missing values
df['salary'] = df['salary'].fillna(df['salary'].median())
df = df.dropna(subset=['critical_id'])
TU Exam Trap: Never impute missing numerical data with the mean if the distribution is skewed or contains extreme outliers! Use the median, which is mathematically robust to outliers.