This document contains the lecture notes for the course MCS 320, introduction to symbolic computation, at the University of Illinois at Chicago.

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

The course was inspired by the book of A. Heck, introduction to Maple, [Heck96]. From 2001 till 2014, the course was offered, using Maple, about once every academic year. Since Spring 2015, Maple was replaced by SageMath. Release 1.0.0 of the lecture notes dates to 2 May 2019, after teaching the fifth semester with SageMath.

The course provides an introduction to computer algebra via practical experimentation in a computer lab. The sections in the lecture notes correspond to SageMath sessions executed during 50 minutes class meetings. Exercises and quizzes are vital. Many of the assignments listed at the end of each lecture are former exam questions. Absent from the lecture notes are the descriptions of the computer projects.

This course is the first course on the computational track, followed by Numerical Analysis and Introduction to Industrial Math & Computation. The main outcome of this course is that students are confident with the use of mathematical software.

  1. While software is obviously tied to programming, this is not a programming but a computational course. A programming problem is solved by a correctly working program. Given a correctly working program, a computational problem starts with the setup of the input and ends with the interpretation of the output.

  2. Formulating the solution of a computational problem is done in a notebook, where coding cells are interleaved with cells documenting the work flow. Computational literacy is expressed in the describing the solution of a computational problem.

  3. The purpose of computing is insight not numbers (as Richard Hamming said) and the correct computational perspective on problems leads to a better understanding of mathematics.

The development of the lecture notes benefited from Sage for Undergraduates by Gregory Bard [Bard15] William Stein’s Sage for Power Users [Stein12], and the Computational Mathematics with SageMath [Zimm18] by Paul Zimmerman et al.



G. Bard: Sage for Undergraduates. American Mathematical Society, 2015. Available via


A. Heck: Introduction to Maple. Second Edition, Springer-Verlag, 1996.


W. Stein: Sage for Power Users. Available via


P. Zimmermann, A. Casamayou, N. Cohen, G. Connan, T. Dumont, L. Fousse, F. Maltey, M. Meulien, M. Mezzarobba, C. Pernet, N.M. Thiery, E. Bray, J. Cremona, M. Forets, A. Ghitza, and H. Thomas: Computational Mathematics with SageMath. SIAM 2018. Available as