Skip to content
Math 700: Linear Algebra -- University of South Carolina -- Spring 2014
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Math 700: Linear Algebra, Spring 2014

Instructor: William DeMeo
Office: LeConte College, Room 314C
Office hours: Wednesday 14-15, Friday 11-12 and 14-15, and by appointment.
Class meeting times: MW, 3:55--5:10, LeConte, Room 310.
Course Webpage: this page or the façade.
Homework Repo:


This course in linear algebra is aimed at beginning graduate students in mathematics. It may also be appropriate for advanced undergraduate math majors, and graduate students in engineering and computer science. The focus is on finite dimensional vector spaces from a more general point of view than one finds in an undergraduate course. Some of the topics covered are the following (from the catalog): vector spaces, linear transformations, dual spaces, decompositions of spaces, canonical forms. A more detailed list of topics appears below.


The Linear Algebra a Beginning Graduate Student Ought to Know, Jonathan Golan.

Other references:
Linear Algebra and Its Applications, Peter Lax.
Finite Dimensional Vector Spaces, Paul Halmos.
Matrix Analysis, Horn and Johnson.
Matrix Computations, Golub and Van Loan.
Advanced Linear Algebra, Steven Roman.


Solving problems is the best way to learn this material. A list of problems, both from the textbook and other sources, will be distributed and updated as the course progresses. Students will solve and submit as many solutions as possible. In addition, for each homework assignment, two students will be responsible for typing up correct solutions to the homework problems using LaTeX and submitting them to the Math700Homework repository. (See Git and GitHub below.) Homework is worth 50% of the course grade.


There will be one midterm exam worth 20% of the course grade. It will be scheduled as we progress, and notice of at least one week will be given prior to the date of a test. A final exam at the end of the semester will be worth 30% of the course grade.

Course topics

  1. Fields; vector spaces; algebras over a field; isomorphism theorems.
  2. Linear independence; basis and dimension.
  3. Linear transformations.
  4. The endomorphism algebra of a vector space.
  5. Representation of linear transformations by matrices.
  6. Lattice of subspaces and invariant subspaces.
  7. Systems of linear equations.
  8. Determinant and trace.
  9. General and special linear groups: orthogonal and unitary groups.
  10. Spectral theory: eigenvalues, eigenvectors.
  11. Euclidean structure: orthonormal basis, norms, spectral radius.
  12. Normed linear spaces and duality.
  13. Spectral theory of self-adjoint mappings.

Other topics (depending on time and student interest)

  • Krylov subspaces.
  • Self-adjoint endomorphisms.
  • Unitary and normal endomorphisms.
  • Moore-Penrose pseudoinverses.
  • Bilinear transformations and forms.
  • Matrix inequalities and decompositions.
  • Algebras of linear transformations, simultaneous triangularization.


No prior programming experience is required for this course, and the computing component of the course will be fairly minimal. However, all students must know (or learn) how to type up solutions to some of the homework problems using LaTeX, and all students must know (or learn) how to submit some of these solutions using Git and GitHub. (More information about this below.)


This is a graduate math course, so it will be taught from a more abstract and general perspective than undergraduate linear algebra. However, one of the best ways to develop a deeper understanding of this subject is to use the computer to experiment with and apply the theory. For this we will use the open source math software called Sage. Sage essentially provides a [Python][] interface to a vast array of well developed and powerful open source mathematical software.

Getting started with Sage is extremely easy. You don't even need to install any software. By using Sage though a web browser you can and do all your computing and store all your sage "worksheets" in the cloud.

It's also possible to download and install Sage on your own computer. It is free and is not hard to install.

If you've used Sage before and just need a quick refresher, check out the Sage Quick Start Guides.
Be sure to check out the Sage linear algebra documentation:

If you are brand new to Sage, please try the following:

  1. Go to and click Try Sage Online.
  2. Getting started using Sage explains how to create an account.
  3. Check out the Sage Thematic Tutorials

Git and GitHub

In this class, occasionally you will have to submit a homework assignment using Git and GitHub. These are powerful software services that make it easy to maintain and collaborate on projects. You are not expected to have heard of Git or GitHub before this class, and I am more than willing to work with any student who has limited experience with or knowledge of computers or computing.

If you are new to Git, please try the 15 Git minute tutorial. Also, git--the simple guide and the GitHub help pages are excellent. For detailed comprehensive documentation see

Git is very easy to use, and you only need the very basics for what we will do in this class. But the main reason Git was created (by Linus Torvalds) was to make it very easy to do more sophisticated things like branching and merging that improve workflow and ease collaboration.

Submitting Homework

All students should try to solve all of the assigned homework problems. However, not all solutions will be collected and graded. Instead, for each assignment, on a rotating basis, two students will be responsible for solving and writing up "official" solutions for the given assignment. These students will then submit their solutions to the Math700Homework repository. Other students will then have a chance to look at the official solutions and check them against their own work. At any time thereafter, any student may submit corrections or suggestions for improving the official solutions.

For each assignment, the two designated problem solvers should submit their joint work as follows:

  1. Solve the problems. (Try to make sure they are correct. Consult each other and the prof if necessary.)
  2. Type up your solutions using LaTeX and save in a single file, e.g., Homework01.tex.
  3. Set up Git on your computer.
  4. Fork Clone the Math700Homework repository to your computer. (to be demonstrated in class)
  5. Copy your solution file into the directory Math700Homework/Solutions on your computer.
  6. Commit your changes.
  7. Submit a pull request Push your changes to the GitHub repository. (to be demonstrated in class)

(I've decided to make all registered students collaborators, so we can "clone and push" instead of "fork and pull-request.")


Online Discussion Forum

If we find it useful to have an extensive online dialog, we might consider other tools as the semester progresses. For now, however, you are encouraged to start a dialog with the rest of the class by creating a New Issue in this repository, or in the Math700Homework repository.

You can’t perform that action at this time.