CST 383 – Introduction to Data Science
Course Overview
A hands-on introduction to data science using Python, covering the full pipeline from data acquisition and cleaning through exploratory analysis, visualization, and machine learning. The course used NumPy, pandas, matplotlib, seaborn, and scikit-learn throughout, with an emphasis on building sound data science judgment rather than just running models.
Course Outcomes
- Acquire, clean, and transform real-world datasets using pandas and NumPy.
- Explore and visualize data distributions, correlations, and conditional relationships.
- Apply probability and statistics concepts including CDFs, conditional probability, and expected value.
- Train and evaluate machine learning models using train/test splits, cross-validation, and confusion matrices.
- Apply KNN, linear regression, logistic regression, and decision trees with scikit-learn.
- Communicate findings clearly through well-structured notebooks and reports.
Customer Churn Prediction
The final project applied machine learning to an open-ended churn prediction
problem using a real telecom dataset of ~7,000 customers. The target variable was
Churn — whether a customer left the service provider — predicted from
features including contract type, tenure, monthly charges, senior citizen status,
online security enrollment, and paperless billing.
The notebook required independently selecting and applying two ML algorithms,
handling the full preprocessing pipeline: encoding categorical variables, scaling
numeric features with StandardScaler, performing a train/test split,
tuning hyperparameters, and evaluating with cross-validation and confusion matrices.
The emphasis was on defensible methodology — choosing preprocessing steps and
evaluation metrics deliberately and explaining the reasoning clearly in the notebook.
Weekly Lab Highlights
- Pandas aggregation — computed group statistics on heart disease and 1994 US census datasets using
.mean(),.aggregate(),.groupby(), andpd.cut()for age-bracket segmentation. - Probability & statistics — calculated conditional probabilities, expected values, CDFs, and binomial distribution parameters from real datasets.
- Data visualization — built histograms, box plots, violin plots, scatter plots with hue, grouped bar charts, and correlation heatmaps using matplotlib and seaborn.
- KNN classification — trained classifiers, computed Manhattan distance, interpreted confusion matrices, and measured precision, recall, and cross-validation accuracy.
- Linear regression — fit models, computed MSE, compared training vs. prediction speed, and interpreted coefficients.
- Feature scaling — applied z-score normalization and unit interval scaling; verified normalization correctness with
df.mean()anddf.max().