Python Properly
This two-day course is designed for developers who already know the fundamentals of Python. This course will get more “under the hood” and introduce the students to powerful tools and techniques that go beyond the basics.
We start immediately with working programs so that abstract concepts can be made concrete. Testing is integral to our approach and many of the exercises are 'test driven'. Students will be able to work on Windows, Linux or Mac OS X.
Topics include:
- Function and class decorators
- Closures
- Creating context managers
- Packaging and distribution of Python packages
- Callable objects, lambdas, and extended argument syntax
- Properties, class methods, and static methods
- String representations of objects
- Specialized numeric and scalar types
- Functional-style programming tools
- The iteration and iterable protocols
- Multiple inheritance, method resolution order, and super()
- Collection protocols and implementing collections
- Advanced error handling with exceptions
- Introspection
Computer Setup:
This workshop requires that you bring a laptop with the following software installed:
- Python 3.6 or greater is installed.
https://www.python.org/downloads/ - An editor for Python code. Attendees can use whatever editor they prefer, but we recommend PyCharm which is a full-featured Python IDE : https://www.jetbrains.com/pycharm/
- The ability to either connect to the Internet or accept USB flash drives so we can distribute course materials on the day.
Austin is a founding director of Sixty North, a software consulting, training, and application development company. A native of Texas, in 2008 Austin moved to Stavanger, Norway where he helped develop industry-leading oil reservoir modeling software in C++ and Python. Prior to that he worked at National Instruments developing LabVIEW, at Applied Research Labs (Univ. of Texas at Austin) developing sonar systems for the U.S. Navy, and at a number of telecommunications companies. He is an experienced presenter, teacher, and author, and he is an active member of the open source community. Austin holds a Master of Science in Computer Engineering from the University of Texas at Austin.