
Python Programming language is a high-level and interpreted programming language which was created by Guido Van Rossum in 1989 and first released in 1991. Since then it has steadily gained a following and now is known as a great general purpose language capable of creating anything from desktop software to web applications and frameworks.
Python is now nearly 30 years old and it’s the most widely used programming language in the world despite being slow. Much of this has to do with its simple “maintainable” nature.
It’s not an exaggeration to say that Python plays a small part in all of our lives. It’s one of those invisible forces with a presence in our mobile devices, web searches and gaming (and beyond).
Python is used by Wikipedia, Google, Yahoo, CERN and NASA, among many other organizations. YouTube, Instagram and Quora are among the countless sites that use Python. Much of Dropbox’s code is Python, Python has been used extensively by digital special effects house ILM (whose work spans across all of the Star Wars and Marvel films) and it’s a favorite of electronics titan Philips.
It’s often used as a “scripting language” for web applications. This means that it can automate a specific series of tasks, making it more efficient. Python (and languages like it) is often used in software applications, pages within a web browser, the shells of operating systems and some games.
The language is used in scientific and mathematical computing, and even in AI projects. It’s been successfully embedded in numerous software products, including visual effects compositor Nuke, 3D modelers and animation packages.
Python aesthetics include:
- Clean visual layout
- Interpreted nature
- Fit for many platforms
- Ideal for scripting and rapid application
- Highly readable language
- Less syntactic exceptions
- Elegant and dynamic typing
- Superior string manipulation
While slower than other languages, it’s also more productive. The Python features like one-liners and dynamic type system allow developers to write fewer lines of code for tasks that require more lines of code in other languages.
This makes Python a very easy-to-learn programming language even for beginners and newbies. For instance, Python programs are slower than Java, but they also take less time to develop as Python codes are three to five times shorter than Java codes.
Python also possesses the endearing qualities of simple programming syntax, code readability and English-like commands that make coding in Python easier and efficient.
Advanced Python Programming course introduces participants to applied python programming including Monte Carlo Simulation and machine learning. The 5-day program is focused more on applied techniques and methods to advanced technology domains including simulation and testing, machine learning, autonomous cars and UAVs, defense and military application.
Prerequisite: Intermediate to Advanced Programming Skills
Learning Objectives
At the completion of this course, students should be able to:
- Get Python up and running
- Create and run advanced Python programs
- Write elegant, reusable, and efficient code
- Understand when to use the functional or the object oriented programming approach
- Create reliable software by using unit tests
- Parse XML and JSON feeds
- Work with advanced Python libraries and use cases
- Apply Python to Monte Carlo Simulation and machine learning
- Simulate software design and programming for autonomous cars and UAV
- Work with open-source Anaconda Distribution to perform Python/R data science and machine learning on Linux, Windows, and Mac OS X using Python/R data science packages
- Manage libraries, dependencies, and environments with Conda
- Develop and train machine learning and deep learning models with scikit-learn, TensorFlow, and Theano
- Analyze data with scalability and performance with Dask, NumPy, pandas, and Numba
- Visualize results with Matplotlib, Bokeh, Datashader, and Holoviews
Labs and Hands-on Activities
- Monte Carlo Simulation with Python
- Python machine learning application development
- Program Python autonomous cars and UAV applications
- Work with open-source Anaconda Distribution to perform Python/R data science and machine learning on Linux, Windows, and Mac OS X using Python/R data science packages
- scikit-learn, TensorFlow, and Theano to develop and train machine learning and deep learning models with
- Working with Dask, NumPy, pandas, and Numba
- Matplotlib, Bokeh, Datashader, and Holoviews visualization
Course Topics
Python 101
- Python Setup
- Python Object and Data Structure Basics
- Python Comparison Operators
- Python Statements
- Methods and Functions
- Installing Python
- Setting up the Python interpreter
- Creating a virtual environment
- Python console
- Running Python scripts
- Python interactive shell
- Python as a service
- Advanced coding guidelines
Python Syntax and Semantics
- Expressions in Python
- Python core programming tools
- Use variables to store, retrieve and calculate information with Python
- Collect, clean, and analyze data
- Conditional Statements
- Using Functions and Loops
- Building Functions
- Using Functions
Python Modules and Packages
- Errors and Exceptions Handling
- Python Decorators
- Python Generators
- Advanced Python Objects and Data Structures
Data Types in Python
- Object Oriented Programming
- Numbers
- Immutable sequences
- Mutable sequences
- Set types
- Mapping types – dictionaries
- The collections module
- Final considerations
Iterating and Making Decisions
- Conditional programming
- Looping
- Putting this all together
- A quick peek at the itertools module
Functions, the Building Blocks of Code
- Why use functions?
- Scopes and name resolution
- Return values
- A few useful tips
- Recursive functions
- Anonymous functions
- Function attributes
- Built-in functions
Time and Memory
- map, zip, and filter
- Comprehensions
- Generators
- Performance basics
- Name localization
- Generation behavior in built-ins
Advanced Python Concepts
- OOP, Decorators, and Iterators
- Decorators
- Object-oriented programming
- Custom iterator
Testing, Profiling, and Dealing with Exceptions
- Testing your application
- Test-driven development
- Exceptions
- Profiling Python
- When to profile?
The Edges – GUIs and Scripts
- First approach – scripting
- Second approach – a GUI application
Python Debugging and Troubleshooting
- Variable Scope
- Debugging Principles and Techniques
- Intermediate Variables
- Debugging techniques
- Debugging with print
- Debugging with a custom function
- Inspecting the traceback
- Using the Python debugger
- Inspecting log files
- Other techniques
- Troubleshooting guidelines
Intermediate Python
- File I/O
- User Input
- Code Abstraction
- Code Abstraction
- List Comprehensions
- Modules and Libraries
Data Science, Machine Learning and Monte Carlo Simulation in Python
- Python for Data Science
- Pandas
- Data Visualization
- Plotting with Pandas
- Building Advanced Python Applications
- Numerical Variables
- Reassigning Variables
- String Variables
- Introduction to Control Flow
- Logical Comparison
- Boolean Conditionals
- Lists
- List Operations
- For Loops
- While Loops
- Functions
- Function Arguments
Building a Python Model
- Monte Carlo Simulations with Python
- Probability Distributions
- Uniform Distributions
- Bernoulli distribution
- Normal distribution
- Gamma distribution
Advanced Python (Optional Labs and Case Studies)
- Building a Python C Extension Module
- CPython
- Django Migrations
- Functional Programming in Python
- Unicode & Character Encodings in Python
- Async IO in Python
- Concurrency With the asyncio Module
- Speed Up Your Python Program with Concurrency
- Text Classification with Python and Keras
- Git Tips for Python
- Python Socket Programming
- Python Itertools
- Pure Python
- NumPy
- TensorFlow
- Python Metaclasses and Metaprogramming
- Python Speech Recognition
- Python Global Interpreter Lock (GIL)
- Shallow vs Deep Copies in Python
- User Authentication With Angular 4 and Flask
- Test Driven Development of a Django RESTful API
- Token-Based Authentication With Flask
- Automating Django Deployments with Fabric and Ansible
- Social Authentication in Django
- Asynchronous Tasks With Django and Celery
- Deploying a Django App to AWS Elastic Beanstalk
- Caching External API Requests
- Deploying Django on Dokku
- Automatically Scale Heroku Dynos
Advanced Python Programming