# Computational Number Theory and Algebra

- Institution: IIT Kanpur
- Department: Mathematics
- Teacher: Prof. Nitin Saxena
- Level: Undergraduate
- Language: English
- Subjects: Mathematics
- Source: [NPTEL](https://nptel.ac.in/courses/111104138)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/111104138)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

Algebra plays an important role in both finding algorithms, and understanding the limitations of computation. This course will focus on some of the fundamental algebraic concepts that arise in computation, and the algebraic algorithms that have applications in real life. The course will cover the problems of fast integer (or polynomial) multiplication (or factoring), fast matrix multiplication, primality testing, computing discrete logarithm, error-correcting codes, lattice- based cryptography, etc. The course intends to introduce both basic concepts and practical applications.

INTENDED AUDIENCE : Computer Science & Engineering, Mathematics, Electronics, Physics, & similar disciplines.

PREREQUISITES : Preferable (but not necessary)-- Theory of Computation, Algorithms, Algebra

Theory of Computation:

https://nptel.ac.in/courses/106104148

https://nptel.ac.in/courses/106106242

Fundamental Algorithms:Design and Analysis:

https://nptel.ac.in/courses/106105157

Algebra - I:

https://nptel.ac.in/courses/111106137

## Lectures

1. [Lecture 1: Introduction: Computation and Algebra](https://invisiblenetwork.ai/learn/nptel/111104138/048c32e458b1) (YouTube)
2. [Lecture 2: Background](https://invisiblenetwork.ai/learn/nptel/111104138/72adfd5bd16e) (YouTube)
3. [Lecture 3: GCD algorithm and Chinese Remainder Theorem](https://invisiblenetwork.ai/learn/nptel/111104138/b981d128237e) (YouTube)
4. [Lecture 4: Fast polynomial multiplication](https://invisiblenetwork.ai/learn/nptel/111104138/de9dfbc8a2ff) (YouTube)
5. [Lecture 5: Fast polynomial multiplication (contd.)](https://invisiblenetwork.ai/learn/nptel/111104138/4685562c5a71) (YouTube)
6. [Lecture 6: Fast integer multiplication and division](https://invisiblenetwork.ai/learn/nptel/111104138/17aad266f5a2) (YouTube)
7. [Lecture 7: Fast integer arithmetic and matrix multiplication](https://invisiblenetwork.ai/learn/nptel/111104138/6c67830d33a3) (YouTube)
8. [Lecture 8: Matrix Multiplication Tensor.](https://invisiblenetwork.ai/learn/nptel/111104138/d57d3fd42283) (YouTube)
9. [Lecture 9: Polynomial factoring over finite fields: Irreducibility testing](https://invisiblenetwork.ai/learn/nptel/111104138/d6751aea04a1) (YouTube)
10. [Lecture 10: Equi-degree factorization and idea of Berlekamp's algorithm](https://invisiblenetwork.ai/learn/nptel/111104138/a18efff024d0) (YouTube)
11. [Lecture 11: Berlekamp's algorithm as a reduction method](https://invisiblenetwork.ai/learn/nptel/111104138/80a7a1743a9b) (YouTube)
12. [Lecture 12: Factoring over finite fields: Cantor-Zassenhaus algorithm](https://invisiblenetwork.ai/learn/nptel/111104138/fa441109a3cf) (YouTube)
13. [Lecture 5: Fast polynomial multiplication (contd.)](https://invisiblenetwork.ai/learn/nptel/111104138/4685562c5a71-2) (YouTube)
14. [Lecture 6: Fast integer multiplication and division](https://invisiblenetwork.ai/learn/nptel/111104138/17aad266f5a2-2) (YouTube)
15. [Lecture 13: Reed Solomon Error Correcting Codes](https://invisiblenetwork.ai/learn/nptel/111104138/1541f71313a6) (YouTube)
16. [Lecture 14: List Decoding](https://invisiblenetwork.ai/learn/nptel/111104138/59c1e8b3b289) (YouTube)
17. [Lecture 15: Bivariate Factorization - Hensel Lifting](https://invisiblenetwork.ai/learn/nptel/111104138/635decf09d2b) (YouTube)
18. [Lecture 16: Bivariate polynomial factoring (continued)](https://invisiblenetwork.ai/learn/nptel/111104138/9ff7032f5650) (YouTube)
19. [Lecture 17: Multivariate Polynomial Factorization](https://invisiblenetwork.ai/learn/nptel/111104138/7ba82e1257ad) (YouTube)
20. [Lecture 18: Multivariate Factoring - Hilbert's Irreducibility Theorem](https://invisiblenetwork.ai/learn/nptel/111104138/33e34deeaada) (YouTube)
21. [Lecture 19: Multivariate factoring (continued)](https://invisiblenetwork.ai/learn/nptel/111104138/200d7452e515) (YouTube)
22. [Lecture 20: Analysis of LLL algorithm.](https://invisiblenetwork.ai/learn/nptel/111104138/bbaa12d0f39e) (YouTube)
23. [Lecture 21: Analysis of LLL algorithm (continued)](https://invisiblenetwork.ai/learn/nptel/111104138/dd9d5d34722e) (YouTube)
24. [Lecture 22: Analysis of LLL-reduced basis algorithm and Introduction to NTRU cryptosystem](https://invisiblenetwork.ai/learn/nptel/111104138/ca0f92a8cb81) (YouTube)
25. [Lecture 23: NTRU cryptosystem (continued) and Introduction to Primality testing](https://invisiblenetwork.ai/learn/nptel/111104138/55edbda6622b) (YouTube)
26. [Lecture 24: Randomized Primality testing: Solovay-Strassen and Miller-Rabin tests](https://invisiblenetwork.ai/learn/nptel/111104138/4ede2652ebc0) (YouTube)
27. [Lecture 25: Deterministic primality test (AKS) and RSA cryptosystem](https://invisiblenetwork.ai/learn/nptel/111104138/05eeb217456e) (YouTube)
28. [Lecture 26: Integer factoring: Smooth numbers and Pollard's rho method](https://invisiblenetwork.ai/learn/nptel/111104138/be10128378a7) (YouTube)
29. [Lecture 27: Pollard's p-1, Fermat, Morrison-Brillhart, Quadratic and Number field sieve methods](https://invisiblenetwork.ai/learn/nptel/111104138/26f825448044) (YouTube)
