AI 853: Advanced Programming in Python is a comprehensive elective course designed to equip students with advanced Python programming skills essential for artificial intelligence and data science applications. This course focuses on sophisticated programming techniques, testing methodologies, and concurrent programming paradigms.
"Python is an experiment in how much freedom programmers need. Too much freedom and nobody can read another's code; too little and expressiveness is endangered." โ Guido van Rossum
| Course Title | Advanced Programming in Python |
| Course Code | AI 853 |
| Credit Hours | 3 (3, 0) |
| Prerequisite | None |
| Level | Graduate |
- "Advanced Python Programming: The Insider Guide to Advanced Python Programming Systems" by Richard Ozer (2017)
- "Introduction to Machine Learning with Python: A Guide for Data Scientists" by Andreas C. Mรผller and Sarah Guido (2016)
- "Fluent Python: Clear, Concise, and Effective Programming" by Luciano Ramalho (2015)
Upon successful completion of this course, students will be able to:
- ๐งฉ Add enhancements to classes using advanced Python features
- ๐งช Implement and run comprehensive unit tests
- โก Create multi-threaded and multi-process applications
- ๐๏ธ Work with various data formats (CSV, HTML, XML, JSON)
- ๐ Retrieve and process data from web sources
- ๐ Implement efficient data processing techniques
- ๐ง Apply advanced debugging and performance testing methods
- Advanced List Comprehensions - Nested and conditional comprehensions
- Collections Module - Specialized container datatypes
- Mapping and Filtering - Advanced data transformation techniques
- Lambda Functions - Anonymous functions and functional programming
- Advanced Sorting - Custom sorting with key functions
- Unpacking Sequences - In function calls and assignments
- Modules and Packages - Creating and organizing Python packages
- Working with Data - Efficient data processing techniques
- Databases - Database connectivity and ORM basics
- CSV Processing - Reading, writing, and manipulating CSV files
- Getting Data from the Web - Web scraping and API consumption
- HTML/XML Processing - Parsing and extracting web data
- JSON Handling - Working with JSON data structures
- Testing and Debugging - Advanced debugging techniques
- Creating Simulations - Building computational simulations
- Testing for Performance - Performance benchmarking and profiling
- The unittest Module - Comprehensive unit testing framework
- Test-driven Development - Writing tests before implementation
- Classes and Objects - Advanced object-oriented programming
- Creating Classes - Class design patterns and best practices
- Attributes, Methods and Properties - Advanced class members
- Extending Classes - Inheritance and composition techniques
- Documenting Classes - Professional documentation practices
- Static, Class, Abstract Methods - Special method types
- Decorators - Creating and using function and class decorators
- Multi-threading - Thread-based parallelism
- Multi-processing - Process-based parallelism
- Concurrency Patterns - Common concurrent programming patterns
- Synchronization - Managing shared resources
- Async Programming - Asynchronous programming paradigms
By the end of this course, students will have:
- ๐ Mastered advanced Python features and programming paradigms
- ๐งช Developed robust testing strategies for Python applications
- โก Implemented concurrent applications using threads and processes
- ๐ Built data processing pipelines for various data formats
- ๐๏ธ Designed sophisticated class hierarchies with advanced OOP features
- ๐ Created efficient data processing applications for AI workflows
- Python 3.8+ (latest stable version recommended)
- Jupyter Notebook or similar interactive environment
- Git for version control
- Database System (SQLite, PostgreSQL, or MySQL)
- Web Request Libraries (Requests, BeautifulSoup, Scrapy)
- Testing Frameworks (unittest, pytest)
- Data Processing Libraries (pandas, numpy)
- -- (00%) - -----
- --- (00%) - -----
- --- (00%) - -----
- --- (00%) - -----
- Set up Python environment with required packages
- Clone course repository for materials and examples
- Install development tools (IDE, version control, testing frameworks)
- Review prerequisite Python knowledge (basic syntax, data structures)
- Begin with Module 1 exercises on advanced language features
This course prepares students for advanced AI programming tasks by building strong foundational skills in Python's advanced features and programming paradigms.