Programming for Financial Technology#
The guide provides much of the programming materials used in Duke University’s Masters of Engineering In Financial Technology program.
Over the past decade, Python has evolved into the language of choice for many different application types. Python’s extensive libraries such as NumPy, pandas, and matplotlib provide robust tools for data manipulation, statistical analysis, and visualization, enabling developers to rapidly prototype and deploy sophisticated financial models and strategies. Moreover, Python’s seamless integration with other languages and platforms (e.g., Spark) facilitates interoperability and scalability, making it an indispensable tool for building scalable and resilient FinTech solutions that drive innovation and efficiency in today’s fast-paced financial landscape.
Similarly, C++ serves as a cornerstone language for Financial Technology (FinTech), offering unparalleled performance, robustness, and flexibility to meet the demanding requirements of this dynamic industry. Its speed and efficiency make it an ideal choice for developing high-frequency trading systems, algorithmic trading platforms, risk management software, and complex mathematical models. With its close-to-the-hardware capabilities, C++ enables developers to optimize code for latency-sensitive applications, ensuring lightning-fast execution critical for capitalizing on market opportunities. Furthermore, C++’s extensive libraries and mature ecosystem provide a wealth of tools and frameworks tailored specifically for financial applications, empowering developers to build scalable, secure, and reliable solutions that drive innovation and efficiency in the ever-evolving landscape of finance.
This resource will eventually contain nine sections:
- Preliminaries: Presents installing Python, C++, and supporting tools such as VS Code and Git.
- Python Basics: Provides an introduction to programming using Python
- Advanced Python: Contains additional Python topics, that while useful, are not critical to programming
- C++: Introduction to programming in C++.
- Databases: Discusses an overview of database design, including SQL and NoSQL, and how to interact with those resources in Python.
- Data Science: Covers using a variety of data science libraries to perform data cleaning, handling, analytics, machine learning, and visualization.
- Web Development: Provides an introduction to web development, including HTML, CSS, and JavaScript, as well as server-side programming with Flask.
- Big Data: Presents processing big data in Python using Apache Spark.
- The Tools: Introduces a series of tools commonly used in programming.
Preliminaries
Python Basics
- 1. Introduction
- 2. Problem Solving by Programming
- 3. Data: Types, Values, Variables, and Names
- 4. Booleans, Numbers, and Operations
- 5. Basic Input and Output
- 6. Control Statements
- 7. Functions
- 8. Strings
- 9. Strings - Other Functions
- 10. Formatting Strings
- 11. Formatting Strings - Old Style
- 12. Formatting Strings - f-strings
- 13. Lists
- 14. Tuples
- 15. Random Numbers
- 16. Iteration
- 17. Dictionaries
- 18. Sets
- 19. Miscellaneous Topics
- 20. Files
- 21. File Operations
- 22. Software and Errors
- 23. Recursion
- 24. Modules
- 25. Validation, Exceptions, and Error Handling
- 26. Testing
- 27. Debugging
- 28. Classes and Objects
- 29. Classes: Inheritance
- 30. Comprehensions
- 31. Dates and Times
- 32. Finite Automata and Regular Expressions
Advanced Python
C++
- 1. Introduction to C++
- 2. Variables and Types
- 3. Expressions and Operators
- 4. Control Structures
- 5. Functions
- 6. Strings in C++
- 7. Vectors
- 8. Exceptions
- 9. Namespaces
- 10. Command Line Arguments
- 11. Streams Input and Output in C++
- 12. Object-Oriented Programming
- 13. Pointers
- 14. Arrays
- 15. Memory Management
- 16. Essential Class Operations
- 17. Generic Programming and Templates
- 18. Inheritance in C++
- 19. C++ Standard Library
- 20. C++ Resources
- 21. C++ Quick Reference Guide
The Tools
Answers - Python Basics Review Questions
- Core Python / Introduction
- Core Python / Problem Solving by Programming
- Core Python / Data: Types, Values, Variables, and Names
- Core Python / Booleans, Numbers, and Operations
- Core Python / Basic Input and Output
- Core Python / Control Statements
- Core Python / Functions
- Core Python / Strings
- Core Python / String Formatting
- Core Python / Lists
- Core Python / Tuples
- Core Python / Random Numbers
- Core Python / Iteration
- Core Python / Dictionaries
- Core Python / Sets
- Core Python / Misc. Topics
- Core Python / Files
- Core Python / File Operations
- Core Python / Errors
- Core Python / Recursion
- Core Python / Modules
- Core Python / Validation, Exceptions and Error Handling
- Core Python / Testing
- Core Python / Debugging
- Core Python / Classes and Objects
- Core Python / Inheritance
- Core Python / Comprehensions
- Core Python / Dates and Times
- Core Python / Regular Expressions
Exercise Answers - Python Basics