Agenda
The Basics
-
- 1.1 Using Jupyter, Variables, Expressions and Statements
- 1.2 Values and Data Type
- Type conversion functions
- 1.3 Variables
- Variable Names and Keywords
- 1.4 Statements and Expressions
- 1.5 Operators and Operands
- 1.6 Input
Functions
- 2.1 The Function
- 2.2 Functions that Return Values
- 2.3 Variables and Parameters are Local
Simple Graphics
- 3.1 Hello Turtles!
- 3.2 Our First Turtle Program
- 3.3 The
for
Loop
Python Modules
- 4.1 Modules and Getting Help
- 4.2 The math module
- 4.3 The random module
- 4.4 The time module
Advanced Graphics
- 5.1 Intro to Matplotlib, 2D plot
- 5.2 Plotting a line
- 5.3 Plotting a function
Logical operators
- 6.1. Boolean Values and Boolean Expressions
- 6.2. Logical operator, Precedence of Operators
- 6.3. Conditional Execution: Binary Selection
- 6.4. Omitting the else Clause: Unary Selection
- 6.5. Nested conditional, Chained conditional
Objects
- 71. Object-oriented programming
- 7.2. A change of perspective
- 7.3. Objects Revisited
- 7.4. User Defined Classes
- 7.5. Improving our Constructor
- 7.6. Adding Other Methods to our Class
- 7.7. Objects as Arguments and Parameters
- 7.8. Converting an Object to a String
- 7.9. Instances as Return Values
- 7.10 Classes and Objects – Digging a Little Deeper
- 17.10.1. Fractions
- 17.10.2. Objects are Mutable
- 17.10.3. Sameness
- 17.10.4. Arithmetic Methods
Iteration
- 8.1. Iteration Revisited
- 8.2. The
for
loop revisited - 8.3. The
while
Statement - 8.4. Randomly Walking Turtles
- 8.5. The 3n + 1 Sequence
- 8.6. Newton’s Method
- 8.7. The Accumulator Pattern Revisited
- 8.8. Other uses of
while
- 8.9. Algorithms Revisited
- 8.10. Simple Tables
- 8.11. 2-Dimensional Iteration: Image Processing
- 8.11.1. The RGB Color Model
- 8.11.2. Image Objects
- 8.11.3. Image Processing and Nested Iteration
- 8.12. Image Processing on Your Own
Strings
- 9.1. Strings Revisited
- 9.2. A Collection Data Type
- 9.3. Operations on Strings
- 9.4. Index Operator: Working with the Characters of a String
- 9.5. String Methods
- 9.5.1. String Format Method
- 9.6. Length
- 9.7. The Slice Operator
- 9.8. String Comparison
- 9.9. Strings are Immutable
- 9.10. Traversal and the
for
Loop: By Item - 9.11. Traversal and the
for
Loop: By Index - 9.12. Traversal and the
while
Loop - 9.13. The
in
andnot in
operators - 9.14. The Accumulator Pattern with Strings
- 9.15. Turtles and Strings and L-Systems
- 9.16. Looping and Counting
- 9.17. A
find
function - 9.18. Optional parameters
- 9.19. Character classification
Lists
- 10.1. Lists
- 10.2. List Values
- 10.3. List Length
- 10.4. Accessing Elements
- 10.5. List Membership
- 10.6. Concatenation and Repetition
- 10.7. List Slices
- 10.8. Lists are Mutable
- 10.9. List Deletion
- 10.10. Objects and References
- 10.11. Aliasing
- 10.12. Cloning Lists
- 10.13. Repetition and References
- 10.14. List Methods
- 10.15. The Return of L-Systems
- 10.16. Append versus Concatenate
- 10.17. Lists and
for
loops - 10.18. Using Lists as Parameters
- 10.19. Pure Functions
- 10.20. Which is Better?
- 10.21. Functions that Produce Lists
- 10.22. List Comprehensions
- 10.23. Nested Lists
- 10.24. Strings and Lists
- 10.25.
list
Type Conversion Function - 10.26. Tuples and Mutability
- 10.27. Tuple Assignment
- 10.28. Tuples as Return Values
11. Files
- 11.1. Working with Data Files
- 11.2. Finding a File on your Disk
- 11.3. Reading a File
- 11.4. Iterating over lines in a file
- 11.5. Alternative File Reading Methods
- 11.6. Writing Text Files
- 11.7. With Statements
- 11.8. Glossary
- 11.9. Exercises
Dictionaries
- 12.1. Dictionaries
- 12.2. Dictionary Operations
- 12.3. Dictionary Methods
- 12.4. Aliasing and Copying
- 12.5. Sparse Matrices
- 12.6. Glossary
- 12.7. Exercises
Exceptions
- 13.1. What is an exception?
- 13.2. Exception Handling Flow-of-control
- 13.3. Summary
- 13.4. Standard Exceptions
- 13.5. Principles for using Exceptions
- 13.6. Exceptions Syntax
- 13.6.1. Catch All Exceptions
- 13.6.2. Catch A Specific Exception
- 13.6.3. Catch Multiple Specific Exceptions
- 13.6.4. Clean-up After Exceptions
- 13.6.5. An Example of File I/O
GUI and Event Driven Programming
- 14.1. Graphical User Interfaces
- 14.2. GUI Programming
- 14.3. GUI Programming Options
- 14.4. TKinter
- 14.5. Tkinter Pre-programmed Interfaces
- 14.6. Tkinter Custom Interfaces
- 14.7. Hello World
- 14.8. Tkinter Standard Dialog Boxes
- 14.8.1. Messages
- 14.8.2. Yes/No Questions
- 14.8.3. Single Value Data Entry
- 14.8.4. File Chooser
- 14.8.5. Color Chooser
- 14.9. GUI Widgets
- 14.10. Creating Widgets
- 14.11. Layout Mangers
- 14.12. Specifying Dimensions
- 14.13. Place Layout Manager
- 14.14. Grid Layout Manager
- 14.15. Pack Layout Manager
- 14.15.1. Summary
- 14.16. Widget Groupings
- 14.17. Command Events
- 14.18. Hello World Again
- 14.19. Other Events
- 14.20. Low-Level Event Processing
- 14.21. Focus
- 14.22. Event Binding
- 14.23. Event Descriptors
- 14.24. Event Objects
- 14.25. Event Processing
- 14.26. The Design of GUI Programs
- 14.27. Common Widget Properties
- 14.28. Specific Widget Properties
- 14.29. Widget Attributes
- 14.30. Timer Events
- 14.30.1. Animations and Repeated Tasks
- 14.30.2. Canceling Timer Events
- 14.30.3. Multiple Parameters to Timer Callbacks
- 14.31. A Programming Example
- 14.31.1. A Whack-a-mole Game
- 14.31.2. Summary
- 14.32. Managing GUI Program Complexity
- 14.32.1. Creating the View
- 14.32.2. Creating the Model
- 14.32.3. Creating the Controller
Recursion
- 15.1. What Is Recursion?
- 15.2. Calculating the Sum of a List of Numbers
- 15.3. The Three Laws of Recursion
- 15.4. Converting an Integer to a String in Any Base
- 15.5. Visualizing Recursion
- 15.6. Sierpinski Triangle
- 15.7. Glossary
- 15.8. Programming Exercises
Labs
- Is it a prime number
- Astronomy Animation
- Turtle Racing Lab
- Drawing a Circle
- Lessons from a Triangle
- Finally a Circle
- Counting Letters
- Approximating the Value of Pi