University of Illinois at Urbana-Champaign, Department of Mathematics

**Instructor:** Anil Hirani
(email);
**TA:** Siqi Jiao (email); **CA:** Ipsita Pathak.

**Office Hours:** See Moodle course page for details

**Course communication:** There will be a Moodle page for the course and a Campuswire class feed for most course communication and for collaborative discussions. All in-class programming, Python notebooks, homeworks and exams will be on CoCalc.

**Prerequisites:** Successful completion of CS 101 or 125 or prior programming experience in any one or more of: Python, C, C++ or Java; as well as successful completion of Math 347 (or CS 173).

**Description:** This is a project-based course that will guide students through a computational way of approaching problems. Topics covered will include graph algorithms, topological data analysis, computer algebra and cryptography algorithms. Programming will be done in Python and its extension that the SageMath environment provides. The format will be short lectures and short programming exercises twice a week with longer project work day once a week. In addition students will select a longer final project and do an in-class presentation in the last week or so of class.

Some final projects last year were: *(1) Graph neural networks*; *(2) Modelling a pandemic*; *(3) Graphs and sports*; *(4) Data display of COVID-19*; *(5) Rubik's cube and group theory*; *(6) Problems from Project Euler and SIAM 100 digit challenge*; *(7) Cryptosystems and online secrets*; and *(8) Deep reinforcement learning*.

**Goals:** The 4 main goals of this course are: (1) Improve programming skill and algorithmic thinking; (2) Prepare for industrial computational math work; (3) Prepare for future math courses by learning to use computation to play with examples; (4) Prepare for research in mathematics using a computer as a tool.

**Textbook:** There is no required textbook. However for SageMath, the free book *Computational Mathematics with SageMath * is recommended.

**Grading:** Homeworks 20%, Three exams 15% each, Final Project 30%, Class participation 5%. Your lowest homework score will be dropped.

Late homeworks will not be accepted (however, your lowest homework score will be dropped). You are encouraged and welcome to collaborate with other students on homeworks. That means you can talk to other students and course staff and discuss the homework problems. But you must write up the solutions on your own.

**Final Project:** Final project will require you to apply some of the skills and techniques learnt in class to one problem from a list of possible project ideas. You will be required to work in groups for the final project and present your project to the class.

Page maintained by Anil N. Hirani

Last modified: Wed Jan 27 21:23:33 CST 2021