Foundational methods and techniques of scientific computing in the mathematical and statistical sciences. This course will cover fundamental computational algorithms aimed toward applications in science and engineering. Students will implement algorithms, and visualize and validate their outcomes. Further, students will be introduced to and implement best programming practices. Prereq: MATH 2450 or equiv. or consent of instructor; MATH 1700 or equiv. introductory statistics course or consent of instructor, and programming competency in a high-level language.
Lectures: |
M, W, F | 11:00am - 11:50am |
Cudahy Hall 208 | ||
Office Hours: |
Monday, | 1:00pm - 2:00pm |
in person, Cudahy 307 | ||
Wednesday, | 2:30pm - 3:30pm | |
on Microsoft Teams | ||
and by appointment (just email me!) |
Tues, Jan 17 | Classes begin |
Wed, Jan 25 | Last day to add/drop classes or request CR/NC option |
Mon, Mar 6 — Sat, Mar 11 | Midterm exam period |
Mon, Mar 13 — Fri, Mar 17 | Spring break, no classes |
Thurs, Apr 6 — Mon, Apr 10 | Easter break, no classes |
Fri, Apr 14 | Last day to withdraw from classes |
Fri, May 5 | Last day of classes |
# | Date | Topics | Announcements / Homework |
---|---|---|---|
Week 1 | |||
1 | Wed, Jan 18 |
Syllabus Topic 1 - Installing Python and other tools |
Guide to installing and using Python Before class on Friday:
|
2 | Fri, Jan 20 | Topic 2 - Quick(ish) Introduction to Python (started) |
NOTE: You may need to right click the links to notebooks and save them, otherwise they might open in your browser in a messy text format. Windows may add a ".txt" extension automatically when you download the the notebook files. The extension should be .ipynb, not .ipnb.txt. If so, you will need to remove the ".txt" file extension to open it correctly. |
Week 2 | |||
3 | Mon, Jan 23 | Topic 2 - Quick(ish) Introduction to Python (continued) | |
4 | Wed, Jan 25 | Topic 2 - Quick(ish) Introduction to Python (finished) Topic 3 - Greedy Algorithms (started) |
Lecture Notes |
5 | Fri, Jan 27 |
Homework 1 Assigned — see D2L Topic 3 - Greedy Algorithms (continued) |
Lecture Notes |
Week 3 | |||
6 | Mon, Jan 30 | Topic 3 - Greedy Algorithms (continued) | Lecture Notes |
7 | Wed, Feb 1 | Topic 3 - Greedy Algorithms (continued) |
Lecture Notes
|
8 | Fri, Feb 3 | Topic 3 - Greedy Algorithms (continued) |
Lecture Notes |
Week 4 | |||
9 | Mon, Feb 6 |
Homework 1 Due Topic 3 - Greedy Algorithms (finished) |
Lecture Notes (Note: for the TSP simulations you will get errors about missing packages. You can "pip install" them.) |
10 | Wed, Feb 8 |
Homework 2 Assigned (see D2L) Topic 4 - Using the Unix Command Line (started) |
Lecture Notes |
11 | Fri, Feb 10 |
Topic 4 - Using the Unix Command Line (finished) Topic 4.5 - The Coding Process (started and finished) |
Lecture Notes |
Week 5 | |||
12 | Mon, Feb 13 | Topic 5 - Search Spaces and Brute Force Algorithms (started and finished) | Lecture Notes |
13 | Wed, Feb 15 | Topic 6 - Divide and Conquer (started) |
Lecture Notes |
14 | Fri, Feb 17 | Topic 6 - Divide and Conquer (continued) |
Lecture Notes |
Week 6 | |||
15 | Mon, Feb 20 |
Topic 6 - Divide and Conquer (finished) XKCD #356, nerd sniping |
Lecture Notes Bonus: Closest Points |
16 | Wed, Feb 22 | Class cancelled today. Homework moved to Friday. | |
17 | Fri, Feb 24 |
Homework 2 Due, 11:59pm Topic 7 - Backtracking (started) Sudoku Backtracking Sudoku Backtracking - slowed down |
Lecture Notes |
Week 7 | |||
18 | Mon, Feb 27 | Topic 7 - Backtracking (finished) | Lecture Notes |
19 | Wed, Mar 1 |
Topic 8 - Branch and Bound (started) PEP 8 song |
Lecture Notes |
20 | Fri, Mar 3 | Topic 8 - Branch and Bound (continued) | Lecture Notes |
Week 8 | |||
21 | Mon, Mar 6 | Topic 8 - Branch and Bound (finished) | Lecture Notes |
22 | Wed, Mar 8 |
Homework 3 Due Midterm Exam, In-Class Part — covers up to and including Backtracking (no Branch and Bound) Take-Home Part Assigned |
|
23 | Fri, Mar 10 | No lecture today. Time reserved for wotking on take-home midterm exam. Lecture is replaced by office hours in Cudahy 307 at 10:00am - 10:50am. | |
Spring Break | |||
Mon, Mar 13 | Spring Break — no classes | ||
Wed, Mar 15 | Spring Break — no classes | ||
Fri, Mar 17 | Spring Break — no classes | ||
Week 9 | |||
24 | Mon, Mar 20 | Topic 9 - Object Oriented Programming (started and finished) |
|
25 | Wed, Mar 22 |
Take-Home Part of Midterm Exam Due Topic 10 - Introduction to Metaheuristics (started) |
Lecture Notes Lecture 10 Demos (zip file) |
26 | Fri, Mar 24 |
Topic 10 - Introduction to Metaheuristics (finished) Topic 11 - Hill Climbing (started) |
Lecture Notes |
Week 10 | |||
27 | Mon, Mar 27 | Topic 11 - Hill Climbing (continued) |
Lecture Notes Some Lecture 11 Demos (zip file) |
28 | Wed, Mar 29 | Topic 11 - Hill Climbing (finished) |
Lecture Notes All Lecture 11 Demos (zip file) |
29 | Fri, Mar 31 | Topic 12 - Simulated Annealing (started) | Lecture Notes |
Week 11 | |||
30 | Mon, Apr 3 |
Homework 4 Due Topic 12 - Simulated Annealing (continued) |
Lecture Notes Springs Example (partial) - jupyter notebook Springs Example (partial) - pdf |
31 | Wed, Apr 5 |
Topic 12 - Simulated Annealing (continued) Hill-Climbing Simulated Annealing |
Lecture Notes L12 demos - zip Springs - jupyter notebook Springs - pdf Springs with Pictures - jupyter notebook Springsv - pdf Knapsack - jupyter notebook Knapsack - pdf |
Fri, Apr 7 | Easter Break – no classes | ||
Week 12 | |||
32 | Mon, Apr 10 | Home Work Day, no in-person lecture | |
33 | Wed, Apr 12 |
Homework 5 Assigned (see D2L) Topic 12 - Simulated Annealing (finished) |
Lecture Notes Continuous Func #3, SA, no GUI Continuous Func #3, SA, no GUI, no SA class TSP, reverse block, 300 cities, no GUI |
34 | Fri, Apr 14 |
Video Topic - Dynamic Programming (part 1) Pre-Recorded Lecture |
Written Notes |
Week 13 | |||
35 | Mon, Apr 17 |
Video Topic - Dynamic Programming (part 2) Pre-Recorded Lecture |
|
36 | Wed, Apr 19 |
Video Topic - Dynamic Programming (part 3) Pre-Recorded Lecture |
|
37 | Fri, Apr 21 | Topic 13 - Particle Swarm Optimization (started) |
Lecture Notes (plus pictures of our five continuous test functions) Lecture 13 demos (zip file) |
Week 14 | |||
38 | Mon, Apr 24 |
Homework 5 Due Homework 6 Assigned Topic 13 - Particle Swarm Optimization (finished) |
Lecture Notes |
39 | Wed, Apr 26 | Topic 14 - Tabu Search (started) |
Lecture Notes Lecture 14 demos (zip file) |
40 | Fri, Apr 28 | Topic 14 - Tabu Search (finished) | Lecture Notes |
Week 15 | |||
41 | Mon, May 1 | Topic 15 - Tweaks in Continuous Space (started) |
Lecture Notes Demo - picking points uniformly |
42 | Wed, May 3 |
Topic 15 - Tweaks in Continuous Space (finished) Topic 16 - Firefly Search and Cuckoo Search (started) |
Lecture Notes Demo - Walks in continuous space L16 demos (zip file) |
43 | Fri, May 5 |
Homework 6 Due Topic 16 - Firefly Search and Cuckoo Search (finished) |
Lecture Notes |