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 | 12:00pm - 12:50pm |
Cudahy Hall 131 | ||
Office Hours: |
Monday, | 2:30pm - 3:30pm |
Microsoft Teams | Tuesday, | 1:00pm - 2:00pm |
and by appointment |
Mon, Jan 25 | Classes begin |
Tues, Feb 2 | Last day to add/drop classes or request CR/NC option |
Tues, Feb 9 | Mental Health Day, no classes |
Wed, Mar 10 | Mental Health Day, no classes |
Mon, Mar 15 — Fri, Mar 19 | Midterm exams |
Fri, Apr 2 | Good Friday, no classes |
Tues, Apr 20 | Mental Health Day, no classes |
Fri, Apr 23 | Last day to withdraw from classes |
Wed, May 5 | Mental Health Day, no classes |
Fri, May 7 | Last day of classes |
# | Date | Topics | Announcements / Homework |
---|---|---|---|
Week 1 | |||
1 | Mon, Jan 25 |
Syllabus Installing Python |
|
2 | Wed, Jan 27 |
The "pip" package manager Quick introduction to Python (started) |
Lecture Recording |
3 | Fri, Jan 29 |
Quick introduction to Python (finished) ProjectEuler practice problems #1 and #2 Homework 1 assigned (due Fri, Feb 5; see D2L) |
Lecture Recording Jupyter Notebook file (pdf version) |
Week 2 | |||
4 | Mon, Feb 1 |
List/Set/Dict Comprehensions and any/all functions ProjectEuler practice problem #5 Unix command line (started) |
Lecture Recording |
5 | Wed, Feb 3 |
Unix command line (finished) Greedy algorithms (started) |
Lecture Recording — sound cuts out halfway through :( |
6 | Fri, Feb 5 |
Python Tip of the Day #1: Functions, Lambda Functions, and Sorting Keys Greedy algorithms (continued) |
Lecture Recording Python TotD #1 (Functions) - Jupyter Notebook file (pdf version) |
Week 3 | |||
7 | Mon, Feb 8 | Greedy Algorithms (continued) | Lecture Recording |
8 | Wed, Feb 10 | Greedy Algorithms (continued) |
Lecture Recording Interval Scheduling implementation - Jupyter Notebook file (pdf version) |
9 | Fri, Feb 12 |
Greedy Algorithms (finished!) Homework 2 Assigned (see D2L Dropbox) |
Lecture Recording (no sound again) Weighted Interval Scheduling implementation - Jupyter Notebook file (pdf version) |
Week 4 | |||
10 | Mon, Feb 15 | Search Spaces and Brute Force | Lecture Recording (no sound again, IT is working on it) |
11 | Wed, Feb 17 | Divide-and-Conquer (started) |
No lecture recording today. Still working with IT. Python TotD #2 (List Slicing) - Jupyter Notebook file (pdf version) Python TotD #3 (Recursion) - Jupyter Notebook file (pdf version) |
12 | Fri, Feb 19 | Divide-and-Conquer (finished) |
Lecture Recording - still sound problems Merge Sort - Jupyter Notebook file (pdf version) |
Week 5 | |||
13 | Mon, Feb 22 | Class cancelled today. | |
14 | Wed, Feb 24 | Backtracking (started) |
Lecture Recording Sudoku Demo Slowed Down Sudoku Demo |
15 | Fri, Feb 26 |
Backtracking (finished) Branch and Bound (started) |
Lecture Recording (WITH SOUND!) Lecture Notes Weighted Interval Scheduling backtracking implementation - Jupyter Notebook file (pdf version) |
Week 6 | |||
16 | Mon, Mar 1 | Branch and Bound (continued) |
Lecture Recording Lecture Notes |
17 | Wed, Mar 3 | Branch and Bound (continued) |
Lecture Recording Lecture Notes |
18 | Fri, Mar 5 | Branch and Bound (continued) |
Lecture Recording Lecture Notes |
Week 7 | |||
19 | Mon, Mar 8 |
Branch and Bound (finished) Dynamic Programming (started) |
Lecture Recording Lecture Notes |
Wed, Mar 10 | Mental Health Day — No lecture or office hours. | ||
20 | Fri, Mar 12 | Dynamic Programming (continued) |
Lecture Recording Lecture Notes |
Week 8 | |||
21 | Mon, Mar 15 | Dynamic Programming (continued) |
Lecture Recording Lecture Notes |
22 | Wed, Mar 17 |
Dynamic Progamming (finished) Object-Oriented Programming (started) |
Lecture Recording Lecture Notes Object-Oriented Programming - Jupyter Notebook file (pdf version) |
23 | Fri, Mar 19 |
Object-Oriented Programming (finished) Introduction to Metaheuristics (started) |
Lecture Recording Lecture Notes |
Week 9 | |||
24 | Mon, Mar 22 |
Introduction to Metaheuristics (finished) Hill Climbing (started) |
Lecture Recording Lecture Notes |
25 | Wed, Mar 24 |
Hill Climbing (continued) Demos: » CNS Func #1 - Random Search » CNS Func #1 - Hill Climbing » CNS Func #2 - Random Search (Min) » CNS Func #2 - Random Search (Max) » CNS Func #2 - Hill Climbing (Min) » CNS Func #2 - Hill Climbing (Max) » TSP - Random Search » TSP - Steepest Ascent (swap 2 cities) » TSP - Steepest Ascent (reverse block) » TSP - Hill Climbing (swap 2 cities) » TSP - Hill Climbing (reverse block) |
Lecture Recording Lecture Notes |
26 | Fri, Mar 26 |
Hill Climbing (finished) Simulated Annealing (started) Demos: » CNS Func #1 - Hill Climbing with Random Restarts » CNS Func #1 - Simulated Annealing » CNS Func #2 - Hill Climbing with Random Restarts (Min) » CNS Func #2 - Hill Climbing with Random Restarts (Max) » CNS Func #2 - Simulated Annealing » CNS Func #3 - Hill Climbing » CNS Func #3 - Hill Climbing with Random Restarts » CNS Func #3 - Simulated Annealing » TSP - Simulated Annealing (swap 2 cities) » TSP - Simulated Annealing (reverse block) |
Lecture Recording Lecture Notes |
Week 10 | |||
27 | Mon, Mar 29 | Simulated Annealing (continued) |
Lecture Recording Lecture Notes |
28 | Wed, Mar 31 | Simulated Annealing (finished) |
Lecture Recording Lecture Notes Spring Design demo - Jupyter Notebook file (pdf version) Knapsack demo - Jupyter Notebook file (pdf version) |
Fri, Apr 2 | Good Friday — No lecture or office hours. | ||
Week 11 | |||
29 | Mon, Apr 5 |
Tabu Search (started) Demos: » TSP - Tabu Search |
Lecture Recording Lecture Notes |
30 | Wed, Apr 7 | Class cancelled today. | |
31 | Fri, Apr 9 |
Tabu Search (finished) Demos: » TSP - Tabu Search with fast scoring |
Lecture Recording Lecture Notes |
Week 12 | |||
32 | Mon, Apr 12 | Particle Swarm Optimization (started) |
Lecture Recording Lecture Notes |
33 | Wed, Apr 14 |
Particle Swarm Optimization (finished) Neighborhoods in Continuous Space (started) Demos: » Continuous Function #1 - PSO » Continuous Function #5 - PSO |
Lecture Recording Lecture Notes |
34 | Fri, Apr 16 |
Neighborhoods in Continuous Space (finished) Firefly Search and Cuckoo Search (started) Demos: » Picking Points Uniformly » Walks in Space |
Lecture Recording Lecture Notes |
Week 13 | |||
35 | Mon, Apr 19 |
Firefly Search and Cuckoo Search (finished) Demos: » Continuous Function #1 - Firefly » Continuous Function #5 - Firefly |
Lecture Recording Lecture Notes |
36 | Wed, Apr 21 | Variations on Local Search (started) |
Lecture Recording Lecture Notes |
37 | Fri, Apr 23 |
Variations on Local Search (finished) Demo: » TSP - Variable Neighborhood Search |
Lecture Recording Lecture Notes |
Week 14 | |||
38 | Mon, Apr 26 |
Greedy Randomized Adaptive Search Procedures (GRASP) Demo: » TSP - GRASP |
Lecture Recording Lecture Notes |
39 | Wed, Apr 28 | Evolutionary Strategies and Genetic Algorithms (started) |
Lecture Recording Lecture Notes |
40 | Fri, Apr 30 | Evolutionary Strategies and Genetic Algorithms (continued) |
Lecture Recording Lecture Notes |
Week 15 | |||
41 | Mon, May 3 | Evolutionary Strategies and Genetic Algorithms (continued) |
Lecture Recording Lecture Notes |
Wed, May 5 | Mental Health Day — No discussion or office hours. | ||
42 | Fri, May 7 | Evolutionary Strategies and Genetic Algorithms (finished) |
Lecture Recording Lecture Notes |