# Computer Algebra, Syllabus, Spring 2015.

Location: MCH 0222.

Time: Monday, Wednesday, Friday 11:15 - 12:05

Instructor: Dr. Mark van Hoeij

What this course is about: At first sight you might be inclined to believe that algebra courses with topics like ideals, finite fields, or the Chinese remainder theorem are far away from any practical application. But this is not the case: There are algorithms to compute with almost everything you learn in algebra courses, and these algorithms have many applications. For example, finding exact solutions of differential equations, or finding an antiderivative of a function, such algorithms use the algebraic algorithms from this course in many places. The topics covered in this course are:
• 1. Introduction to Maple.
• 2. Modular Euclidean algorithm.
• 3. Computing with algebraic numbers.
• 4. Lattice reduction and applications.
• 5. Factorization of polynomials.
Computer algebra is useful for applications, but at the same time it is also a great way to learn pure math: concepts from pure math become clearer and much easier to understand once you know how to compute with them.

Two courses computer algebra: There are two courses computer algebra. The course taught this semester treats the topics listed above. Some of the previous courses fall 2000, fall 2001, spring2002, treated the integration algorithm (finding a formula for the antiderivative in terms of elementary functions whenever it exists).

Implementations: No prior programming experience is required for this course. We will spend the first two weeks on learning how to use Maple and how to implement algorithms in Maple. Most assignments in this course consist of implementing. This way the algorithms are learned from mathematical concepts all the way down to an implementation. You may be surprised to find that the distance between the two is often small, because the Maple language is quite close to mathematical language. In fact, programming in Maple much easier than programming in most other languages: algorithms implemented in Maple are only a fraction of the size of the same algorithm implemented in C, Java or Pascal.

Help with assignments: If you need help with an assignment you can come to my office any time (also outside of office hours). For most assignments I will be generous with help. The reason is the following: finding the errors (the bugs) is difficult when you start programming. But once you learn the tricks of the trade you will notice that it becomes much easier. To help with this, you are welcome in my office any time.

Grading: There will be three tests during the semester, and one final test. Each of these four tests will account for 20% of the grade. The remaining 20% will be determined by the turn in assignments. For one or two of these tests, you will be given the option to do an assignment instead of a test.

Course goals: The ideas behind the algorithms taught in this course can be used in many mathematical computations. To show that you understand these ideas in sufficient detail, you have to be able to use them on the computer; you should be able implement short algorithms on your own, and larger algorithms as group work.

Textbook: A textbook is not needed for this course, the necessary material will be posted online. However, if you still want a book, then I recommend: "Modern Computer Algebra" by J. von zur Gathen and J. Gerhard.

Software: The course documents are interactive Maple documents which you can download through the web. These documents can be viewed or printed with Maple. The math department has a license for Maple, so you should be able to use Maple on most math computers, but the best thing to do is to install Maple on your laptop; contact Mickey Boyd boyd@math.fsu.edu to obtain a copy.