Course Syllabus
Introduction to Python
What You’ll Learn
This course provides a comprehensive foundation in Python programming tailored for analytics. By the end of this module, you will be able to:
Course Philosophy
Our approach emphasizes learning by doing. Rather than memorizing syntax, you’ll build practical skills through:
- 🎯 Hands-on exercises with real datasets
- 🔄 Iterative learning that builds on previous concepts
- 🌟 Industry-relevant examples and case studies
- 🤝 Collaborative problem-solving in group sessions
Module Structure
The course is organized into four progressive modules, each building upon the previous:
📚 Module 1: Getting Started
Duration: Week 1
Set up your Python environment and learn the basics of working with Jupyter notebooks, Python scripts, and essential development tools.
Key Topics: Python installation, IDE setup, Jupyter notebooks, basic syntax
🔧 Module 2: Python Language Fundamentals
Duration: Weeks 2-3
Master Python’s fundamental building blocks including data types, functions, and control structures.
Key Topics: Variables, data types, lists, dictionaries, functions, loops, conditionals
📊 Module 3: Computing with NumPy
Duration: Week 4
Explore NumPy’s powerful array operations for efficient numerical computation and data manipulation.
Key Topics: Arrays, vectorization, broadcasting, linear algebra, random number generation
📈 Module 4: Pandas for Data Analysis
Duration: Weeks 5-6
Learn to work with structured data using Pandas DataFrames for data cleaning, transformation, and analysis.
Key Topics: Series, DataFrames, indexing, merging, grouping, time series
Learning Approach
Interactive Learning Environment
We believe in active learning where you’ll:
During Sessions - Live coding demonstrations - Pair programming exercises - Group problem-solving - Q&A discussions
Between Sessions - Practice exercises - Reading assignments - Mini-projects - Peer review activities
Assessment Methods
Formal Assessment
MSc students enrolled in the Bayes programme must complete online quizzes via module IND219’s Moodle page. The deadline for quiz submission is TBD.
Continuous Self-Assessment
While formal assessment provides external validation, self-assessment forms the cornerstone of learning in this module. Students are encouraged to:
- Monitor their understanding during lectures and practical sessions
- Complete problem sets independently to identify knowledge gaps
- Actively seek and incorporate feedback from instructors
- Track their progress against module learning objectives
Course Materials
💻 Required Software
- Python 3.9+ (via Anaconda’s Python distribution)
- Jupyter Lab/Notebook
- Git for version control
- We recommend Python’s IDE Spyder. If you’re familiar with alternative IDEs like PyCharm, extensible code editors like VS Code, or advanced text editors like Emacs, Vim/Neovim, then feel free to stick with that.
📖 Recommended Textbooks
- Matthes, Eric. Python crash course: A hands-on, project-based introduction to programming (3rd edition). No Starch Press, 2023. Full text online through Library Services
- McKinney, Wesley. Python for data analysis (3rd ed.). O’Reilly Media. Full text online through Library Services
🎈 Online Resources
- Official Python Documentation
- NumPy Documentation
- Pandas Documentation
- Anaconda documentation
- Spyder documentation
- The present website (and its underlying GitHub repository)
Course Policies
Attendance and Participation
- Regular attendance is mandatory for IND219
- Active participation in class discussions encouraged
Getting Help
Accommodations
Students with documented disabilities who may need accommodations should liaise with the course officer as soon as possible. All discussions will remain confidential. Students should also contact the Office of Disability Services to verify their eligibility for reasonable accommodations.
Changes to Syllabus
The instructor reserves the right to modify this syllabus as needed. Any changes will be announced in class and posted on the course website with adequate notice.