Course Content
Python Syntax Review
- Ensuring a proper setup of Python
- Review basic Python syntax
- If/then/else & loops
- Functions and exceptions
- Decorators
Generators and iterators
- iter(), iter, and next()
- Understanding the yield statement
- Creating generator expressions
- Loop comprehensions
Context managers
- What is a context manage
- The 'with' statement
- Working with a context manager: contextlib.closing, enter and exit
- Using contextlib.contextmanager
Testing Python
- Review of key texting concepts: unit, functional, integration, etc.
- Overview of test-driven development concepts
- Writing tests unit test with a test-first approach
- Unit testing with the unittest module
- Creating test suites with nosetests as a test collector
- Performing simple code coverage analysis with coverage
Introducing logging
- Importance of logging
- Basic logging concepts within Python
- Using basicConig to set up loggers, handlers, formatters
- Using ?leConig for more complex logger configurations
Threading
- Threading v. multi-processing
- Core Threading Concepts
- Key threading constructs
- Building a simple multi-thread program
- Preventing data corruption through mutex and events for synchronization
- Using Queue.Queue
Multiprocessing
- Threading v. multi-processing (part II)
- Core Multiprocessing Concepts
- Using the subprocess module
- Using the multiprocessing module
Network Programming
- Review of network programming concepts and protocol layers
- Network programming support within Python
- Fetching web resources with urllib/urllib2
- Sending email with smtplib
- Creating client-server like applications using sockets
- Creating a simple JSON-REST client
Introduction to Web application development with Django