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 108 | ||
Office Hours: |
Monday, | 2:30pm - 3:30pm |
Wednesday, | 2:00pm - 3:00pm | |
Thursday, | 10:30am - 11:30am | |
Cudahy Hall 307 | and by appointment |
Tues, Jan 16 | Classes begin |
Wed, Jan 24 | Last day to add/drop classes or request CR/NC option |
Mon, Mar 4 — Fri, Mar 8 | Midterm exam period |
Mon, Mar 11 — Fri, Mar 15 | Spring break, no classes |
Fri, Mar 29 and Mon, Apr 1 | Easter break, no classes |
Fri, Apr 12 | Last day to withdraw from classes |
Fri, May 3 | Last day of classes |
Week of May 6 | Take-home final exam |
# | Date | Topics | Announcements / Homework |
---|---|---|---|
Week 1 | |||
1 | Wed, Jan 17 |
Syllabus Topic 1 - Installing Python and other tools |
Guide to installing and using Python Before class on Friday:
|
2 | Fri, Jan 19 | Topic 2 - Quick(ish) Introduction to Python (started) | |
Week 2 | |||
3 | Mon, Jan 22 | Topic 2 - Quick(ish) Introduction to Python (continued) | |
4 | Wed, Jan 24 |
Homework 1 Assigned (see D2L) Topic 2 - Quick(ish) Introduction to Python (continued) |
|
5 | Fri, Jan 26 |
Topic 2 - Quick(ish) Introduction to Python (finished) In-class office hours for Homework 1 and to help get python installed |
|
Week 3 | |||
6 | Mon, Jan 29 |
No lecture! Videos for the week:
|
|
7 | Wed, Jan 31 | No lecture! Continue watching the videos from Monday. | |
8 | Fri, Feb 2 | No lecture! Continue watching the videos from Monday. | |
Week 4 | |||
9 | Mon, Feb 5 | Topic 3 - Greedy Algorithms (continued) | Lecture Notes |
10 | Wed, Feb 7 | Topic 3 - Greedy Algorithms (continued) |
Lecture Notes Weighted Interval Scheduling (jupyter notebook) Weighted Interval Scheduling (pdf) |
11 | Fri, Feb 9 |
Homework 1 Due Homework 2 Assigned (see D2L) Topic 3 - Greedy Algorithms (finished) Topic 4 - Unix Command Line (started) |
Lecture Notes TSP Random/Greedy - Slow TSP Random/Greedy - Fast TSP Simulated Annealing |
Week 5 | |||
12 | Mon, Feb 12 | Topic 4 - Unix Command Line (continued) | Lecture Notes |
13 | Wed, Feb 14 |
Topic 4 - Unix Command Line (finished) Topic 4.5 - The Coding Process |
Lecture Notes |
14 | Fri, Feb 16 | Topic 5 - Search Spaces and Brute Force (started) | Lecture Notes |
Week 6 | |||
15 | Mon, Feb 19 |
Monday office hours moved to Tuesday Topic 5 - Search Spaces and Brute Force (finished) Topic 6 - Divide and Conquer (started) |
Lecture Notes |
16 | Wed, Feb 21 | Topic 6 - Divide and Conquer (continued) |
Lecture Notes List Slicing, pre-class (notebook) List Slicing, pre-class (pdf) List Slicing, class-version (notebook) List Slicing, class-version (pdf) |
17 | Fri, Feb 23 |
Homework 2 Due Homework 3 Assigned Topic 6 - Divide and Conquer (continued) |
Lecture Notes Recursion (notebook) Recursion, pre-class (pdf) Recursion (pdf) Merge Sort (notebook) Merge Sort (pdf) |
Week 7 | |||
18 | Mon, Feb 26 | Topic 6 - Divide and Conquer (continued) | Lecture Notes |
19 | Wed, Feb 28 |
Topic 6 - Divide and Conquer (finished) Topic 7 - Backtracking (started) |
Lecture Notes Closest Pair of Points |
20 | Fri, Mar 1 | Topic 7 - Backtracking (continued) |
Lecture Notes Video Recording Knapsack Backtracking (notebook) Knapsack Backtracking (pdf) |
Week 8 | |||
21 | Mon, Mar 4 | Topic 7 - Backtracking (finished except some code) |
Lecture Notes Video Recording Weighted Interval Scheduling, backtracking code |
22 | Wed, Mar 6 |
Midterm Exam, In-Class Part Take-Home Part Assigned |
|
23 | Fri, Mar 8 |
Homework 3 Due No lecture today. Time reserved for working on take-home midterm exam and Homework 3. Lecture will be replaced by extra office hours at the same time in the same classroom. |
|
Spring Break | |||
Mon, Mar 11 | Spring Break — no class | ||
Wed, Mar 13 | Spring Break — no class | ||
Fri, Mar 15 | Spring Break — no class | ||
Week 9 | |||
24 | Mon, Mar 18 | Topic 7 - Backtracking (finished) Topic 8 - Object-Oriented Programming (started) |
Lecture Notes Video Recording Object Oriented Programming (notebook, pre-class) Object Oriented Programming (pdf, pre-class) Object Oriented Programming (notebook, in progress) Object Oriented Programming (pdf, in progress) |
25 | Wed, Mar 20 |
Take-Home Part of Midterm Exam Due Topic 8 - Object-Oriented Programming (continued) |
Video Recording Object Oriented Programming (notebook, in progress, part 2) Object Oriented Programming (pdf, in progress, part 2) |
26 | Fri, Mar 22 |
Topic 8 - Object-Oriented Programming (finished) Topic 9 - Introduction to Metaheuristics (started) |
Lecture Notes Video Recording Object Oriented Programming (notebook, done) Object Oriented Programming (pdf, done) |
Week 10 | |||
27 | Mon, Mar 25 | Topic 9 - Introduction to Metaheuristics (continued) |
Lecture Notes Video Recording TSP Steepest Ascent Demo Contour #1, Random Search Contour #1, Hill Climbing Contour #1, Particle Swarm Optimization |
28 | Wed, Mar 27 |
Topic 9 - Introduction to Metaheuristics (finished) Topic 10 - Hill-Climbing (started) |
Lecture Notes Video Recording |
Fri, Mar 29 | Easter Break — no class | ||
Week 11 | |||
29 | Mon, Apr 1 | At home homework work day, no in-person lecture. | |
30 | Wed, Apr 3 | Topic 10 - Hill-Climbing (continued) |
Lecture Notes Video Recording TSP Random/Greedy Contour #1 - Random Search TSP Steepest Ascent, 50 cities, swap 2 TSP Steepest Ascent, 300 cities, swap 2 |
31 | Fri, Apr 5 | Topic 10 - Hill-Climbing (finished) |
Lecture Notes Video Recording all demos (zip file) |
Week 12 | |||
32 | Mon, Apr 8 |
No in-person lecture today. Pre-recorded video lecture Topic 11 - Simulated Annealing (started) |
Lecture Notes Contour #3 - Hill Climbing, Random Restarts Contour #3 - Simulated Annealing |
33 | Wed, Apr 10 |
Homework 5 Assigned Topic 11 - Simulated Annealing (continued) |
Lecture Notes Video Recording Contour #1 - Simulated Annealing Contour #2 - Simulated Annealing Contour #3 - Simulated Annealing (with no GUI, simpler code) TSP Simulated Annealing, reverse block (with no GUI, simpler code) |
34 | Fri, Apr 12 | Topic 11 - Simulated Annealing (continued) |
Lecture Notes Video Recording Weighted Interval Scheduling - coding together (in progress) |
Week 13 | |||
35 | Mon, Apr 15 | Topic 11 - Simulated Annealing (continued) |
Lecture Notes Video Recording Weighted Interval Scheduling - coding together (basically finished) |
36 | Wed, Apr 17 | Topic 11 - Simulated Annealing (finished) |
No lecture notes today. Video Recording Spring optimization, jupyter notebook Spring optimization, pdf Spring video, hill climbing Spring video, simulated annealing |
37 | Fri, Apr 19 | Topic 12 - Particle Swarm Optimization (started) |
Lecture Notes Video Recording PSO, Contour #5, no GUI PSO, Contour #1 PSO, Contour #2 PSO, Contour #3 PSO, Contour #4 PSO, Contour #5 Maple worksheet showing the five graphs |
Week 14 | |||
38 | Mon, Apr 22 |
Homework 5 Due Topic 12 - Particle Swarm Optimization (finished) |
Lecture Notes Video Recording Fixing the particles going out of bounds (python) |
39 | Wed, Apr 24 |
Homework 6 Assigned Topic 13 - Tabu Search (started) |
Lecture Notes Video Recording TSP Tabu Search, slow score, with GUI TSP Tabu Search, slow score, no GUI TSP Tabu Search, fast score, with GUI TSP Tabu Search, fast score, no GUI |
40 | Fri, Apr 26 | No lecture today. | |
Week 15 | |||
41 | Mon, Apr 29 |
Topic 13 - Tabu Search (finished) Topic 14 - Neighborhoods in Continuous Space (started) |
Lecture Notes Video Recording picking points uniformly (python file) |
42 | Wed, May 1 | Topic 14 - Neighborhoods in Continuous Space (continued) |
Lecture Notes Video Recording picking points uniformly (python file) |
43 | Fri, May 3 |
Homework 6 Due Take-home Final Exam assigned Topic 14 - Neighborhoods in Continuous Space (finished) |
Lecture Notes Video Recording walks (python file) |