This project is an enhanced version of Harvard's CS50's Introduction to Programming with Python course materials (except the data structure and plots), specifically tailored for economics and business studies students. Created by Md. Siddiqur Rahman, M.Sc. in Economics, Jahangirnagar University, these notebooks provide comprehensive Python programming education with economic context, examples, and applications.
This collection of Jupyter notebooks enhances the original CS50 Python course materials by:
- Adding economic context and real-world examples relevant to economics and business
- Incorporating examples using Bangladesh's economic data where appropriate
- Providing detailed explanations of programming concepts with economic applications
- Including additional practice problems with economic themes
- Offering comprehensive documentation for better understanding
- Author: Md. Siddiqur Rahman, M.Sc. in Economics, Jahangirjagur University, Savar, Dhaka-1342
- Original MOOC: CS50's Introduction to Programming with Python by Professor David J. Malan, Harvard University
- License: This project maintains the educational spirit of CS50 while providing enhanced materials for economics students
This project includes the following notebooks:
-
Lecture 0: Functions, Variables, and More
- Introduction to programming concepts
- Functions and arguments
- Variables and data types
- String manipulation
- User input and output
-
Lecture 1: Conditionals
- Boolean expressions
- If-elif-else statements
- Economic decision-making examples
-
Lecture 2: Loops
- While loops
- For loops
- Economic data processing examples
-
Lecture 3: Exceptions
- Error handling
- Try-except blocks
- Economic data validation examples
-
Lecture 4: Libraries
- Importing modules
- Standard libraries
- Economic data analysis libraries
-
Lecture 5: Unit Tests
- Testing functions
- Edge cases
- Economic model testing examples
-
Lecture 6: File I/O
- Reading and writing files
- CSV files
- Economic data file handling
-
Lecture 7: Regular Expressions
- Pattern matching
- Text processing
- Economic data cleaning examples
-
Lecture 8: Object-Oriented Programming
- Classes and objects
- Methods
- Economic modeling examples
-
Lecture 9: Et Cetera
- Sets and set operations
- Global variables and constants
- Type hints and documentation
- Command-line arguments
- Advanced Python features
-
Lecture 10: Data Structures
- Lists, tuples, dictionaries, sets
- Stacks and queues
- Trees and graphs
- Economic data structure applications
-
Lecture 11: Data Structures
- Line Plots, Bar Plots, Scatter Plots
- Scatter Plots, Histograms, Pie Charts
- Box Plots, Heatmaps
- Subplots, Customizing Plots
This enhanced course is designed for:
- Economics students looking to learn Python programming for economic analysis
- Business studies students interested in data analysis and modeling
- Researchers in economics and finance who want to learn Python
- Anyone interested in learning Python with economic context
- No prior programming experience required
- Basic understanding of economic concepts is helpful but not necessary
- Familiarity with economic indicators and data (GDP, inflation, etc.) is beneficial
- Python 3.7 or higher
- Jupyter Notebook or JupyterLab
- Standard Python libraries (included in Python)
- Additional libraries for specific notebooks (matplotlib, pandas, etc.)
-
Clone or download this repository:
git clone https://github.com/Tushar-Siddik/cs50-python-economics.git cd cs50-python-economics -
Create a virtual environment (recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install required packages:
pip install -r requirements.txt
-
Launch Jupyter Notebook:
jupyter notebook
-
Navigate to the notebooks directory and start learning!
Each notebook is designed to be self-contained and can be used independently or as part of the complete course. Here's how to get the most out of them:
- Sequential Learning: Start with Lecture 0 and progress through each lecture in order
- Active Participation: Run the code cells, modify them, and experiment with different values
- Practice Problems: Complete the practice problems at the end of each notebook
- Economic Applications: Pay special attention to the economic examples and try to relate them to your field of study
Each lecture notebook follows this structure:
- Introduction: Overview of the programming concepts and their economic applications
- Concept Explanation: Detailed explanation of programming concepts
- Simple Examples: Basic examples to understand the concept
- Economic Examples: Real-world economic applications
- Practice Problems: Problems to test your understanding
- Solutions: Detailed solutions to the practice problems
Throughout these notebooks, you'll find:
- Examples using Bangladesh's economic data
- Applications relevant to economic analysis
- Business case studies
- Financial modeling examples
- Market analysis applications
Contributions are welcome! If you'd like to contribute to this project:
- Fork the repository
- Create a new branch for your feature
- Make your changes (additional examples, corrections, etc.)
- Commit your changes
- Push to the branch
- Create a pull request
Please ensure that contributions maintain the educational purpose and economic context of the materials.
This project maintains the educational spirit of CS50 while providing enhanced materials. The original CS50 course materials are licensed under Attribution-NonCommercial-ShareAlike 4.0 International CC BY-NC-SA 4.0, and this enhanced version follows the same licensing approach.
For questions, suggestions, or feedback, please contact:
- Author: Md. Siddiqur Rahman
- GitHub: Tushar-Siddik
- Special thanks to Professor David J. Malan and the CS50 team at Harvard University for creating the original course
- Thanks to Jahangirjagur University for providing the educational foundation
- Appreciation to the Economics community for inspiring the contextual examples
This project is an enhanced educational resource based on CS50's Introduction to Programming with Python. It is not officially affiliated with Harvard University or CS50, but aims to extend their excellent educational materials to better serve economics and business students.
Happy coding and may your Python skills enhance your economic analysis capabilities!