A Functional Start to Computing with Python enables students to quickly learn computing without having to use loops, variables, and object abstractions at the start. Requiring no prior programming experience, the book draws on Python’s flexible data types and operations as well as its capacity for defining new functions. Along with the specifics of Python, the text covers important concepts of computing, including software engineering motivation, algorithms behind syntax rules, advanced functional programming ideas, and, briefly, finite state machines. Taking a student-friendly, interactive approach to teach computing, the book addresses more difficult concepts and abstractions later in the text. The author presents ample explanations of data types, operators, and expressions. He also describes comprehensions—the powerful specifications of lists and dictionaries—before introducing loops and variables. This approach helps students better understand assignment syntax and iteration by giving them a mental model of sophisticated data first. Web Resource The book’s supplementary website at http://functionalfirstpython.com/ provides many ancillaries, including: Interactive flashcards on Python language elements Links to extra support for each chapter Unit testing and programming exercises An interactive Python stepper tool Chapter-by-chapter points Material for lectures
Author(s): Ted Herman
Publisher: CRC Press
Year: 2013
Language: English
Pages: 427
Front Cover
Contents
Preface
I. Motivation and Background
1. Inspirations of Computing
2. Preview of Computing with Python
3. General Landscape of Computing Languages
4. Python Setup
II. Functional-Style Python
5. Types
6. Operators
7. Expressions
8. Printing
9. Functions I
10. Functions II
11. Conditional Logic
12. Slice, Split, Join
13. Comprehensions
14. Functional Patterns
III. Imperative-Style Python
15. Names for Data
16. Functions and Variables
17. Mutation
18. Modules
19. Repetition
20. Documentation
21. Debugging
22. Accumulation Loop Patterns
23. Search Loop Patterns
24. Drawing
25. Input and Output
26. Network Programs
27. Objects, Classes, and Inheritance
28. Randomness, Time, and System Modules
29. Graphical User Interfaces
IV. Appendices
30. Advanced Topics
31. Solutions to -Exercises
32. Reference Tables