SPECIAL FEATURE: IBM WATSON ANALYTICS AND COGNITIVE COMPUTING
Early in our research for this book, we recognized the rapidly growing interest in IBM’s Watson. We investigated competitive services and found Watson’s “no credit card required” policy for its “free tiers” to be among the most friendly for our readers.
IBM Watson is a cognitive-computing platform being employed across a wide range of realworld scenarios. Cognitivecomputing systems simulate the patternrecognition and decision-making capabilities of the human brain to “learn” as they consume more data. We include a significant handson Watson treatment. We use the free Watson Developer Cloud: Python SDK, which provides APIs that enable you to interact with Watson’s services programmatically. Watson is fun to use and a great platform for letting your creative juices flow. You’ll demo or use the following Watson APIs: Conversation, Discovery, Language Translator, Natural Language Classifier, Natural Language Understanding, Personality Insights, Speech to Text, Text to Speech, Tone Analyzer and Visual Recognition.
- http://whatis.techtarget.com/definition/cognitivecomputing.
- https://en.wikipedia.org/wiki/Cognitive_computing.
- https://www.forbes.com/sites/bernardmarr/2016/03/23/whateveryone-shouldknowaboutcognitivecomputing.
Watson’s Lite Tier Services and a Cool Watson Case Study
IBM encourages learning and experimentation by providing free lite tiers for many of its APIs. In Chapter 13, you’ll try demos of many Watson services. Then, you’ll use the lite tiers of Watson’s Text to Speech, Speech to Text and Translate services to implement a “traveler’s assistant” translation app. You’ll speak a question in English, then the app will transcribe your speech to English text, translate the text to Spanish and speak the Spanish text. Next, you’ll speak a Spanish response (in case you don’t speak Spanish, we provide an audio file you can use). Then, the app will quickly transcribe the speech to Spanish text, translate the text to English and speak the English response. Cool stuff!
Always check the latest terms on IBM’s website, as the terms and services may change.
TEACHING APPROACH
Python for Programmers contains a rich collection of examples drawn from many fields. You’ll work through interesting, realworld examples using real-world datasets. The article concentrates on the principles of good software engineering and stresses program clarity.
Using Fonts for Emphasis
We place the key terms and the index’s page reference for each defining occurrence in bold text for easier reference. We refer to onscreen components in the bold Helvetica font (for example, the File menu) and use the Lucida font for Python code (for example, x = 5).
Syntax Coloring
For readability, we syntax color all the code. Our syntaxcoloring conventions are as follows:
- comments appear in green
- keywords appear in dark blue
- constants and literal values appear in light blue
- errors appear in red
- all other code appears in black
538 Code Examples
The article’s 538 examples contain approximately 4000 lines of code. This is a relatively small amount for a article this size and is due to the fact that Python is such an expressive language. Also, our coding style is to use powerful class libraries to do most of the work wherever possible.
160 Tables/Illustrations/Visualizations
We include abundant tables, line drawings, and static, dynamic and interactive visualizations.
Programming Wisdom
We integrate into the discussions programming wisdom from the authors’ combined nine decades of programming and teaching experience, including:
- Good programming practices and preferred Python idioms that help you produce clearer, more understandable and more maintainable programs.
- Common programming errors to reduce the likelihood that you’ll make them.
- Error-prevention tips with suggestions for exposing bugs and removing them from your programs. Many of these tips describe techniques for preventing bugs from getting into your programs in the first place.
- Performance tips that highlight opportunities to make your programs run faster or minimize the amount of memory they occupy.
- Software engineering observations that highlight architectural and design issues for proper software construction, especially for larger systems.
SOFTWARE USED IN THE BOOK
The software we use is available for Windows, macOS and Linux and is free for download from the Internet. We wrote the article’s examples using the free Anaconda Python distribution. It includes most of the Python, visualization and data science libraries you’ll need, as well as the IPython interpreter, Jupyter Notebooks and Spyder, considered one of the best Python data science IDEs. We use only IPython and Jupyter Notebooks for program development in the article. The Before You Begin section following this Preface discusses installing Anaconda and a few other items you’ll need for working with our examples.
PYTHON DOCUMENTATION
You’ll find the following documentation especially helpful as you work through the book:
- The Python Language Reference:
- The Python Standard Library:
- Python documentation list:
GETTING YOUR QUESTIONS ANSWERED
Popular Python and general programming online forums include:
Also, many vendors provide forums for their tools and libraries. Many of the libraries you’ll use in this book are managed and maintained at github.com. Some library maintainers provide support through the Issues tab on a given library’s GitHub page. If you cannot find an answer to your questions online, please see our web page for the book at
Our website is undergoing a major upgrade. If you do not find something you need, please write to us directly at juttbadshah1120@gmail.com.
GETTING JUPYTER HELP
Jupyter Notebooks support is provided through:
- Project Jupyter Google Group:
https://groups.google.com/forum/#!forum/jupyter
- Jupyter realtime chat room:
https://gitter.im/jupyter/jupyter
- GitHub
https://github.com/jupyter/help
- StackOverflow:
https://stackoverflow.com/questions/tagged/jupyter
- Jupyter for Education Google Group (for instructors teaching with Jupyter):
https://groups.google.com/forum/#!forum/jupytereducation