MAT 331: Computer-Assisted Mathematical Problem Solving, Fall 20
Lecture Instructor
Prof. Nguyen-Bac Dang |
email : Nguyen-Bac.Dang(at)stonybrook.edu |
My homepage |
Schedule : TuTh 11:30am-12:50pm |
Office Hours: M 3:00pm-4:00pm;M 4:00pm-5:00pm;by appointment |
MLC Hours: W 9:00am-10:00am |
Course summary
Exploration of the use of the computer as a tool to gain insight into complex mathematical problems through a project-oriented approach. Students learn both the relevant mathematical concepts and ways that the computer can be used (and sometimes misused) to understand them. The particular problems may vary by semester; past topics have included cryptography, fractals and recursion, modeling the flight of a glider, curve fitting, the Brachistochrone, and computer graphics. No previous experience with computers is required. First we will go over the basics of programming. This requires a new way of thinking, so it is not easy, but it can be quite fun and rewarding! Of course, it is also very useful. Then we will focus on three different areas of math where computers are useful:
- Cryptography: this include substitution cyphers, one-time pads, the enigma encryption machine, prime numbers and public key encryption system (RSA)
- Probability: Modeling the law of large numbers, the Central limit theorem, Poisson distributions
- Analysis: Root finding, Approximation of real numbers, differential equations
- Fractals: Visualizing Julia sets, Mandelbrot sets
Resources
Technical requirements
Since all lectures are presented via Zoom, all students will need a device with this software installed. Links to the Zoom lectures are provided in Blackboard.
We will use Blackboard for homework, so you will need a device with a web browser that can connect to the Stony Brook Blackboard site to access homework. You will also need to access your Stony Brook Google email to receive occasional emailed announcements (these will also appear in the Blackboard announcements for the course).
Our programming tools will be essentially Python for the first part of the lecture, and at the end we will use briefly Sagemath.
The link to download python is here.
I will use the following editor gedit for Windows (download and install the file), gedit for Mac or Linux
For Macusers: Install brew following the instructions here:
- Open a terminal cmd+space
- Run :
xcode-select --install - Then :
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - Then : brew install gedit
Grades
Grades will be based on 2 types of evaluation:
Homeworks (25%):
These will consist of weekly questions, separated into two parts.
Half the questions are for training purposes, and the other part are codes that the students will reuse for the current Project.
We will drop the two lowest homework grades.
In principle, no late homework will be accepted once the correction is posted.
However, if you encounter a technical issue, then email me so that I can delay posting the correction.
The due dates of these
will be usually
on Sunday of the week following the week when the relevant material
is presented in lecture (but you are encouraged to do it earlier, and
even try to do them as soon as we covered the material in class).
The format for returning homework is as follows.
- The name of the file you turn in is hw_#number_#name, where #number is the homework number and #name is your last name, without space and all in lower caps.
For example, for me homework 1 would look like "hw_1_dang.py". - Each function should be commented, what it does, what it returns, and how you proceed.
- You can collaborate but the code and explanation must be written by you
- Each function must be as simple as possible, with a name that must help the reader
- Unecessary code must be deleted
- The file should be formated as follows:
###################### Exercice 1 #######################
print("Exercice 1: \n \n\n")
code for exercice 1.
######################Exercice 2 ##########################
print("Exercice 2: \n \n\n")
code for exercice 2.
There are no homework during the weeks the projects are due. Each project consist into two parts: coding and an expository part where some Mathematical content related to the project are treated. If you are enrolled in MAT 459, then two of these expository part can be used to satisfy the university WRDT requirement.
Blackboard
Blackboard is the Stony Brook University class management system. Your homework, quiz and exam grades will be posted here. Letter grades for the course are posted in the Solar System. I will occasionally post announcements in Blackboard; you should receive email notifications whenever this occurs. Homework assignments and the online final can be accessed through your Blackboard account. Also links to the lectures via Zoom.
Solar System
Solar System is the Stony Brook University administrative management system (registration, bills,...). It is not used for classes, except to post letter grades at the end of the semester..
Stony Brook Gmail
Check your firstname.lastname@stonybrook.edu email here.
Stony Brook Virtual SINC Site
Late in the course I expect to demonstrate software from the Virtual Sinc Site. This gives you access to various software packages on a university license, such as Mathematica and Matlab. These systems, among others, are can be used to compute some difficult integrals symbolically (Section 3.5 of the text) and most numerically (Section 3.6). I plan to demonstrate how they are used in lecture, but I won't require their use on assessments. Using the virtual Sinc Site requires downloading the Citrix receiver software (you will be prompted). Even though we won't need to use the Virtual Sinc Site much in this class, it is good idea to make sure you can access it for future classes.
Math Learning Center (MLC)
MLC webpage.
Normally, this is a room in the basement (SL level) of the Math Tower where
you can go for face-to-face help with teaching assistants and faculty
(not necessarily your own instructors). However, for Fall 2020 the
MLC will be entirely online. To use the MLC click this
link for MLC webpage.
When there are tutors online, there is a zoom link to the session
for that tutor.
The zoom sessions are set up so that the student needs to be
authenticated, usually with SBU netid,
and the tutor is supposed to use the waiting room
so that they get admitted "on demand" -- typically one student at a time.
Zoom
You can download Zoom here, if you do not already have it installed on your computer. Access to Zoom lectures and recitations will be provided through your Blackboard account.
Important University Dates
Link to university academic calendars, including final exam calendars.
First day of classes: Monday August 24, 2020.
Last day to move-up/drop-down: Friday October 2, 2020.
Fall break: Canceled. Instead of a short break on
Oct 12 and 13, we will get all of Thanksgiving week off instead.
Last day to withdraw or choose Grade/Pass/NoCredit:
Friday October 23, 2020
Last day for in-person classes:
Friday, November 20. All classes meet online after Thanksgiving break.
Thanksgiving break:
Saturday November 21 to Sunday November 29, 2020.
Last day of classes: Monday December 7, 2020.
Reading day: Tuesday December 8, 2020.
Finals:
Wednesday December 9 to Thursday December 17, 2020.
MAT 126 Common Final Exam:
2:15pm-5:00pm,
Thursday December 10, 2020.
Commencement: Friday December 18, 2020
Lecture Schedule
For each week I list sections of the text we plan to cover that week. Online homework on each week's sections will be assigned on Blackboard and due for everyone at the end of the following week. However, it is very highly recommended that you to complete the assignment by a few days before the assignment is due to avoid any technical issue.Week 1, Aug 24 - Aug 28, (HW 1 due Sunday of Week 2)
Topics covered:
Course administration, class webpage, Blackboard and Homeworks
About Python.
Setup Python : how to install python
Tutorial Python : This is a tutorial on python, it is a good idea to keep the link for later use.
Library reference
Language reference
Week 2, Aug 31 - Sept 4 (HW 2 due Sunday of Week 3)
Topics covered:
Functions, variables, types and recursivity
- Functions, Recursive functions
- Fibonacci sequence
- Recursive formulas
- Memory management
- Types, conditions
- Basic print
Week 3, Sept 7 - Sept 11 (HW 3 due Sunday of Week 4)
Topics covered:
- Loops, for, while
- Riemann sums, Newton method
- Imperative vs Recursive: A memory management problem
Week 4, Sept 14 - Sept 18: (HW 4 due Sunday of Week 5)
Topics covered:        
- String,Lists manipulation
- Permutations and lists
- Substitution cryptography
Week 5, Sept 21- Sept 25: (Project 1 due 15th October 11:59pm)
Topics covered:
- Recursion and induction
- Hanoi towers game
- Euler method, Runge-Kutta's method for solving ODE
Week 6, Sept 28 - Oct 2 :(HW 5 due Sunday of Week 7)
Topics covered:        
- Caesar cryptography, Vigenere cypher
- RSA cypher
- Fast expansion, Factorization
Week 7, Oct 5 - Oct 9: (HW 6 due Sunday of Week 8)
Topics covered:
- Random numbers
- Probability: law large numbers.
- Graphs, plots
- Central limit theorem
Week 8, Oct 12 - Oct 16: (HW 7 due Sunday of Week 9)
Topics covered:
- Visualizing ODEs
- Drawing the Sierpinski and the von Koch snowflake
Week 9, Oct 19 - Oct 23: (HW 8 due Sunday of Week 10)
Topics covered:
- Fatou sets, Julia sets
- Mandelbrot set
- Working with complex numbers
Week 10, Oct 26 - Oct 30: (Project 2 due Sunday of Week 11)
Topics covered:
- File management.
- Importing libraries
- Perron Frobenius Theorem
- Matrices, Diagonalization
Week 11, Nov 2 - Nov 6 : (HW 9 due Sunday of Week 12),
Topics covered:
- Graphs
- Euler characteristic, connectedness
- Random Walk on graphs
- Laplacian, Ihara zeta functions
Week 12, Nov 9 - Now 13: (HW 10 due Sunday of Week 13)
Topics covered:
- Using high-level software: Sage/Singular
- Formal calculus
- Polynomials, polynomial systems of equation
Week 13, Nov 16 - Nov 20: (HW 11 due Sunday of Week 15)
Topics covered:
- Geometry in the plane
- Conics, cubics,elliptic curves
Week 14, Nov 23 - Nov 27
Thanksgiving break, no classes Mon-Fri.
Week 15, Nov 30 - Dec 4
Topics covered:
- Convex bodies
- Ehrart polynomials, mixed volumes
- Polynomial interpolation
Week 16, Dec 7
Final Project deadline Wednesday December 16.
Helpful websites
Links to external websites if you need some additional review of any concepts.Python documentation
Topics Related to computer science and Mathematics
Enigma machine : This is litterally the birth of computers and is the first time computer had impact in history.
Turing invented the first computer to crack the German Enigma codes during the Second World War.
Mandelbrot Ted talk : Another revolution in math was brought by Mandelbrot, who used IBM supercomputers (in the 1980s) to infer many properties of fractals.
The Kepler problem or the sphere packing problem : This problem is one important problem whose proof by Hales used heavily computer programs. Nowadays people do use computer based proof assistants in Mathematics.
Office Hours
I will hold office hours via Zoom. Once the semester begins links will be provided in Blackboard. You may also use email to make appointments for other times.Technology Support:
Student Technology Services.
TLT provides academic technology support to all students.
If you require assistance with Blackboard or other academic
technologies, please contact TLT at:
helpme@stonybrook.edu; Phone: 631.632.9602; Chat;
http://www.stonybrook.edu/helpme or visit a SINC Site.
Students who need assistance with their personal devices
can contact DoIT's service desk at: 631.632.9800,
submit an online request, or visit the Walk In Center on
the 5th floor of the Melville Library (West Campus),
Room S-5410. For more information, visit: https://it.stonybrook.edu/students
Required Syllabus Statements
The University Senate Undergraduate and Graduate Councils have authorized that the following required statements appear in all teaching syllabi (graduate and undergraduate courses) on the Stony Brook Campus.
Student Accessibility Support Center Statement
If you have a physical, psychological, medical, or learning
disability that may impact your course work, please contact
the Student Accessibility Support Center, 128 ECC Building,
(631) 632-6748, or at sasc@stonybrook.edu. They will determine
with you what accommodations are necessary and appropriate.
All information and documentation is confidential.
Students who require assistance during emergency evacuation
are encouraged to discuss their needs with their professors
and the Student Accessibility Support Center. For procedures
and information go to the following website:
https://ehs.stonybrook.edu/programs/fire-safety/emergency-evacuation/evacuation-guide-people-physical-disabilities
and search Fire Safety and Evacuation and Disabilities.