Skip to content

Latest commit

 

History

History
294 lines (289 loc) · 29.5 KB

CONTENTS.md

File metadata and controls

294 lines (289 loc) · 29.5 KB

Table of Contents

The materials are designed to resemble an interactive book.

The files come primarily in the Jupyter Notebook format (i.e., *.ipynb) but also as modules and packages (i.e., *.py). Together with some other static files (e.g., images), they are stored in one folder per chapter in this repository. They are to be opened from within the JupyterLab application, even though other ways are certainly possible as well. Both the files and the folders are appropriately named with prefixes indicating the order in which they should be read and starting with "00_".

It is recommended to follow the installation instructions in the README.md file and work through the content on one's own computer.

If this is not possible, the files can be viewed in a web browser either statically (i.e., read-only) on nbviewer or interactively (i.e., code can be executed) on Binder .

  • Chapter 0: Introduction
    • content (Python's History & Background; Open-source & Communities; JupyterLab; Programming vs. Computer Science; Learning Tips)
    • exercises (Mastering Markdown)
    • review questions
  • Part A: Expressing Logic
    • Chapter 1: Elements of a Program
    • Chapter 2: Functions & Modularization
      • content (Built-in Functions & Constructors; Function Definitions; Function Calls & Scoping Rules; Positional vs. Keyword Arguments; Modularization)
      • exercises (Volume of a Sphere)
      • content (Standard Library: math & random Modules; Third-party Packages: numpy Library; Writing one's own Modules)
      • summary
      • review questions
    • Chapter 3: Conditionals & Exceptions
    • Chapter 4: Recursion & Looping
      • content (Recursion; Examples: Factorial, Euclid's Algorithm, & Fibonacci; Duck Typing; Type Casting & Checking; Input Validation)
      • exercises (Towers of Hanoi)
      • content (Looping with while & for; Examples: Collatz Conjecture, Factorial, Euclid's Algorithm, & Fibonacci; Containers vs. Iterables)
      • content (Customizing Loops with break and continue; Indefinite Loops)
      • exercises (Throwing Dice)
      • summary
      • review questions
  • Part B: Managing Data and Memory
    • Chapter 5: Numbers & Bits
    • Chapter 6: Text & Bytes
    • Chapter 7: Sequential Data
      • content (Collections vs. Sequences; ABCs: Container, Iterable, Sized, & Reversible)
      • content (list Type; Indexing & Slicing; Shallow vs. Deep Copies; List Methods & Operations)
      • exercises (Working with Lists)
      • content (Modifiers vs. Pure Functions; tuple Type; Packing & Unpacking; *args in Function Definitions)
      • exercises (Packing & Unpacking with Functions)
      • appendix (namedtuple Type)
      • summary
      • review questions
    • Chapter 8: Map, Filter, & Reduce
    • Chapter 9: Mappings & Sets
    • Chapter 10: Arrays & Dataframes
    • Chapter 11: Classes & Instances
      • content (class Statement; Instantiation; Text Representations; Instance Methods vs. Class Methods; Computed Properties)
      • exercises (A Traveling Salesman Problem)
      • content (Sequence Emulation & Iteration; Python's Data Model; (Im)mutable Data Types; Method Chaining; Polymorphism)
      • content (Operator Overloading: Arithmetic & Relational Operators; Number Emulation)
      • content (Writing one's own Packages; The final Vector & Matrix Classes; Comparison with numpy)
      • summary
      • review questions