# Introduction to Symbolic Computation¶

- Preface
- Part I: First Steps
- Lecture 1: Welcome!
- Lecture 2: the notebook – structuring and documenting work flow
- Lecture 3: SageMath as a Calculator – getting Help
- Lecture 4: Exact and Floating-Point Numbers
- Lecture 5: Complex and Algebraic Numbers
- Lecture 6: Symbols, Variables, and References
- Lecture 7: Number Types and Functions to Store Data
- Lecture 8: Evaluation and Execution
- Lecture 9: Input/Output Formats – Saving and Loading Data
- Lecture 10: Speeding up Python Functions with Vectorization and Cython

- Part II: Polynomials and Expressions
- Lecture 11: Univariate and Multivariate Polynomials
- Lecture 12: Rational Functions and Conversions
- Lecture 13: Representation of Expressions
- Lecture 14: Substitution, Expansion, and Factorization
- Lecture 15: Normalizing Expressions
- Lecture 16: Review of the First 15 Lectures
- Lecture 17: the First Midterm Exam

- Part III: Calculus
- Part IV: Plotting and Solving Equations
- Lecture 25: Two Dimensional Plots
- Lecture 26: Plotting in Three Dimensions and Beyond
- Lecture 27: Animations
- Lecture 28: Solving Equations
- Lecture 29: Linear Algebra
- Lecture 30: Solving Differential Equations
- Lecture 31: Polyhedral and Unconstrained Optimization
- Lecture 32: Review of Lectures 18 to 31
- Lecture 33: the Second Midterm Exam

- Part Five : Advanced Topics
- Lecture 34: Building Interactive Web Pages
- Lecture 35: an Application of Interact
- Lecture 36: Symbolic Computation with sympy
- Lecture 37: Numerical Computation with numpy and scipy
- Lecture 38: Introduction to Julia
- Lecture 39: Parallel Computing in Julia
- Lecture 40: Computational Group Theory with GAP
- Lecture 41: Higher Arithmetic with Pari/GP
- Lecture 42: Computing with Polynomials in Singular
- Lecture 43: Statistical Computing with R

- Reviews