Course: Algorithmic Algebra
Final Exam Questions
are
up!
Registration Information.
Course Number and Index
- Computer Science : 16:198:672:01 (index 63411)
- Mathematics : 642:612:01 (index 72298)
Timing: Tuesdays and Thursdays, 6:40 PM to 8:00 PM.
Room Number: Hill 425.
Instructor
Neeraj Kayal.
Office Address:
Room 419
DIMACS Center
CoRE Building
Rutgers University
Piscataway, NJ 08854. USA.
Phone: +1-732-445-4577 (office),
+1-732-425-4533 (cell)
Email: kayaln at dimacs dot rutgers dot edu
Office hours: Fri 3pm-5pm
Lecture Notes
- Lecture 1: Introduction to computational complexity, Integer Addition and Integer Multiplication. ( pdf ) ( jnt )
- Lecture 8: Review of Linear Algebra. Scribe: Raga Velagapudi. ( pdf )
Homework Assignments
Overview
Computational problems come in two flavours - combinatorial or algebraic.
Combinatorial problems lack structure and thus lead to intractability fairly quickly.
Algebraic problems admit a lot of structure and often admit surprisingly efficient algorithms.
In this course we will look at some basic concepts from algebra and the computational
problems that arise naturally out of those concepts. We will see the algorithms used to
solve these problems and the applications of these algorithms to some real-world
problems. Indeed understanding and exploiting this structure is the key in many
subdisciplines of computer science such as coding theory, cryptography and even subareas
of combinatorics involving explicit constructions of combinatorially nice objects.
The course will consist of a series of topics; each topic will cover either one
algebraic concept such as group, ring or field and a related algorithm
or an algorithm and its application to a real world problem. Students are not expected
to have any extensive background with either algebra or complexity theory. The initial
lectures and assignments will allow the students to become familiar with the
requisite algebra and notions from algorithmic complexity.
Goals
The course is designed with the following goals in mind:
-
Become familiar with some basic notions in algebra such as polynomials and
finite fields.
-
Know the basic techniques used in devising efficient algorithms for problems
such as finding the roots of a polynomial.
-
See some real-world applications of these algorithms.
Syllabus
-
Review of modular arithmetic, fields, rings and groups.
Motivating Application: Fast sequential and parallel multiplication.
-
Review of linear algebra: matrices and their eigenvalues.
Motivating Application: Fast parallel matrix inversion
-
Review of polynomials and their properties.
Motivating Application: Reed Solomon codes and Welch-Berlekamp decoding
-
Polynomial Identity Testing.
Motivating Application: Perfect matching in parallel.
-
Primality Testing and Integer Factorization.
Motivating Application: RSA cryptosystem
-
Factoring polynomials over finite fields.
Motivating Application: List decoding of Reed Solomon Codes
-
Hilbert's Nullstellensatz and Bezout's Theorem.
Motivating Application: Arithmetic circuit lower bounds
-
Decidability of the first order theory of reals.
Motivating Application: Decidability of theorems in euclidean geometry.
References
Prerequisites
-
An undergraduate course on algebra or linear algebra.
-
An undergraduate course on algorithms.
Expected Workload
About 5 homework assignments. A take-home mid-term exam and an open notes end-sem exam of about three hours.
Grading
-
Homeworks (30%)
-
Mid-term (30%)
-
Final exam (40%)