TFS 102: Data Analysis & Financial Modeling
| Course Code | TFS 102 |
| Course Name | Data Analysis & Financial Modeling |
| Department | Computer Science & Finance |
| Semester Offered | Even (usually Term 2) |
| Tuition Hours | 30 hours |
| Course Level | Applied |
| Pre-requisite | QMA 101: Mathematics for Finance |
| Co-requisite | FTM 102: Investment Theory & Portfolio Management |
| Course Objective | Finance today is not limited by access to data. It is limited by the ability to think with data. This course trains students to move beyond spreadsheets into programmable finance using Python. Students will learn how to pull, clean, transform, and analyze financial data, and more importantly, how to turn that data into decisions. From building valuation models to tracking portfolio performance, this course focuses on creating systems that scale beyond manual analysis. By the end of the course, students should be able to build their own financial analysis stack, automate workflows, and generate insights that directly inform investment decisions in the capstone portfolio. |
| Course Philosophy | This course emphasizes
|
| Course Learning Outcomes | Upon successful completion of this course, students will be able to:
|
| Course Author | Sagar Udasi MSc Statistics and Data Science with Computational Finance from The University of Edinburgh. Contact: sagar.l.udasi@gmail.com |
| Course Organiser | TBD |
| No. | Lecture Title | Concepts Covered | Lecture Objective |
|---|---|---|---|
| 01 | Why Excel Stops Working at Scale | Limits of spreadsheets, introduction to Python for finance, environment setup | Students understand why programmable finance matters, especially for managing real portfolios in the capstone |
| 02 | Your First Financial Dataset Is a Mess | Importing CSV/API data, data types, missing values | Learn to deal with real-world messy data instead of idealized datasets |
| 03 | The Language of Tables: pandas Basics | DataFrames, indexing, filtering, transformations | Build the core skill of manipulating structured financial data |
| 04 | Cleaning Data Like an Analyst, Not a Student | Handling nulls, outliers, normalization | Ensure reliability of data before making investment decisions |
| 05 | Time Is Everything in Finance | Time series basics, datetime handling, resampling | Understand how financial data evolves over time for analysis |
| 06 | Returns Are Not What You Think | Simple vs log returns, cumulative returns | Build correct intuition for measuring investment performance |
| 07 | Risk in One Line of Code | Volatility, variance, covariance, correlation matrices | Quantify risk for portfolio decisions in the capstone |
| 08 | Visualizing the Market Without Fooling Yourself | Data visualization principles, matplotlib, seaborn basics | Communicate insights clearly without misleading interpretations |
| 09 | Building Your First Portfolio Tracker | Portfolio returns, weights, rebalancing logic | Direct application to tracking the live student investment fund |
| 10 | The Illusion of Diversification | Correlation breakdowns, sector exposure | Understand when diversification actually fails |
| 11 | Financial Modeling from Scratch | Building DCF models programmatically | Move beyond Excel into scalable financial modeling |
| 12 | Automating Investment Research | APIs (Yahoo Finance, Alpha Vantage), data pipelines | Pull live data for real-time decision making in the capstone |
| 13 | Backtesting: Can You Trust Your Strategy? | Historical simulation, pitfalls of backtesting | Avoid common mistakes when validating investment ideas |
| 14 | Performance Attribution: What Actually Worked? | Alpha, beta, benchmarking, attribution analysis | Evaluate portfolio decisions rigorously |
| 15 | Building a Weekly Investor Report Automatically | Report generation, dashboards, summaries | Automate reporting for investment committee presentations |
| 16 | When Models Lie and Markets Punish You | Overfitting, data snooping, survivorship bias | Develop skepticism and critical thinking in financial modeling |
| 17 | Scaling Your Analysis | Modular code, reusable functions, pipelines | Build systems that scale beyond one-off analysis |
| 18 | Real-Time Monitoring Systems | Alerts, triggers, portfolio monitoring | Enable active decision-making in live portfolio management |
| 19 | From Analysis to Decision | Translating insights into trades | Bridge the gap between data and action |
| 20 | Final Integration: Your Investment Stack | End-to-end system building | Students consolidate everything into a working system for the capstone |
| Component | Weightage |
|---|---|
| Weekly Coding Labs (Data + Modeling) | 30% |
| Portfolio Analytics System Project | 40% |
| Final Practical Evaluation (Live Problem Solving) | 30% |
| Type | Resource | Provider |
|---|---|---|
| Lecture | Python for Finance | Yves Hilpisch |
| Lecture | Data Analysis with Python | freeCodeCamp |
| Reading | Python for Data Analysis | Wes McKinney |
| Reading | Advances in Financial Machine Learning | Marcos López de Prado |
| Practice | Kaggle Financial Datasets | Kaggle |