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 120 | ||
Office Hours: |
Wednesday, | 2:30pm - 3:30pm |
in person, Cudahy 307 | ||
Thursday, | 10:30am - 11:30am | |
on Microsoft Teams | ||
Friday, | 9:00am - 10:00am | |
in person, Cudahy 307 | ||
and by appointment |
Mon, Jan 24 | Classes begin |
Tues, Feb 1 | Last day to add/drop classes or request CR/NC option |
Mon, Mar 7 — Fri, Mar 11 | Midterm exam period |
Fri, Apr 15 | Easter break, no classes |
Fri, Apr 22 | Last day to withdraw from classes |
Tues, May 10 | Last day of classes |
Mon, May 16 1:00pm - 3:00pm |
MSSC 6000 final exam |
# | Date | Topics | Announcements / Homework |
---|---|---|---|
Week 1 | |||
1 | Mon, Jan 24 |
Syllabus Lecture 1: Installing Python and other tools |
Guide to Installing Python |
2 | Wed, Jan 26 |
Finish Lecture 1 Lecture 2: Introduction to Python |
Jupyter Notebook (only first half done) pdf version (only first half done) |
3 | Fri, Jan 28 | Continue Lecture 2 |
Jupyter Notebook (only first half done) pdf version (only first half done) |
Week 2 | |||
4 | Mon, Jan 31 | Finish Lecture 2 |
Homework 1 Assigned, see D2L Due Wednesday, Feb 9, 11:59pm Jupyter Notebook (only first half done) pdf version (only first half done) |
5 | Wed, Feb 2 |
Lecture 3: Greedy Algorithms Lecture Notes |
|
6 | Fri, Feb 4 |
Continue Lecture 3 Lecture Notes |
|
Week 3 | |||
7 | Mon, Feb 7 |
Python Tip of the Day #1 - Functions, Sort Keys Continue Lecture 3 Lecture Notes |
TotD 1 - Jupyter Notebook (pre-class version) TotD 1 - pdf version (pre-class version) TotD 1 - Jupyter Notebook (post-class version) TotD 1 - pdf version (post-class version) Interval Scheduling (in progress) - Jupyter Notebook Interval Scheduling (in progress) - pdf version |
8 | Wed, Feb 9 |
Homework 1 Due Continue Lecture 3 Lecture Notes |
Interval Scheduling - Jupyter Notebook Interval Scheduling - pdf version |
9 | Fri, Feb 11 |
Continue Lecture 3 Lecture Notes |
Weighted Interval Scheduling (in progress) - Jupyter Notebook Weighted Interval Scheduling (in progress) - pdf version |
Week 4 | |||
10 | Mon, Feb 14 |
Continue Lecture 3 Weighted Interval Scheduling, Knapsack Problem, Traveling Salesman Problem Lecture Notes |
Weighted Interval Scheduling - Jupyter Notebook Weighted Interval Scheduling - pdf version |
11 | Wed, Feb 16 |
Finished Lecture 3 Started Lecture 4: The Unix command line Lecture Notes |
Homework 2 Assigned, see D2L Due Wednesday, March 2, 11:59pm TSP Demo, greedy and random step-by-step TSP Demo, greedy and random |
12 | Fri, Feb 18 |
Finished Lecture 4 Lecture Notes |
|
Week 5 | |||
13 | Mon, Feb 21 |
Lecture 5: Search Spaces and Brute Force Lecture Notes |
|
14 | Wed, Feb 23 |
Started Lecture 6: Divide and Conquer Lecture Notes |
TotD 2, List Slicing - Jupyter Notebook TotD 2, List Slicing - pdf version TotD 3, Recursion - Jupyter Notebook TotD 3, Recursion - pdf version |
15 | Fri, Feb 25 |
Continued Lecture 6 Lecture Notes |
Merge sort implementation - Jupyter Notebook Merge sort implementation - pdf version |
Week 6 | |||
16 | Mon, Feb 28 |
Finished Lecture 6 Started Lecture 7: Backtracking Lecture Notes |
|
17 | Wed, Mar 2 |
Homework 2 Due Finished Lecture 7 Lecture Notes |
Backtracking for Weighted Interval Scheduling - Jupyter Notebook Backtracking for Weighted Interval Scheduling - pdf version |
18 | Fri, Mar 4 |
Started Lecture 8: Branch and Bound algorithms Lecture Notes |
Knapsack Backtracking Recursive - Jupyter Notebook Knapsack Backtracking Recursive - pdf version |
Week 7 | |||
19 | Mon, Mar 7 |
Continued Lecture 8 Lecture Notes |
|
20 | Wed, Mar 9 |
Continued Lecture 8 Lecture Notes |
Homework 3 Assigned (see D2L) Due Friday, March 25, 11:59pm. |
21 | Fri, Mar 11 |
Finished Lecture 8 Lecture Notes |
|
Spring Break | |||
Mon, Mar 14 | Spring Break – no class | ||
Wed, Mar 16 | Spring Break – no class | ||
Fri, Mar 18 | Spring Break – no class | ||
Week 8 | |||
22 | Mon, Mar 21 | Lecture 9: Object-Oriented Programming |
Lecture 09 - Object-Oriented Programming (OOP) - Jupyter Notebook Lecture 09 - Object-Oriented Programming (OOP) - pdf version |
23 | Wed, Mar 23 |
In-class Midterm Take-home midterm portion assigned |
|
24 | Fri, Mar 25 | Take-home midterm work day, no lecture, office hours during normal lecture period in the lecture classroom. | |
Week 9 | |||
25 | Mon, Mar 28 |
Take-home midterm portion due Lecture 10: Introduction to Metaheuristics Lecture Notes |
|
26 | Wed, Mar 30 |
Lecture 11: Hill Climbing (started) Lecture Notes |
Demos: |
27 | Fri, Apr 1 |
Continued Lecture 11 Lecture Notes |
Demos:
|
Week 10 | |||
28 | Mon, Apr 4 |
Recorded Lecture from Spring 2021 https://www.youtube.com/watch?v=T-ExarUtrKg Notes:
|
Homework 4 Assigned (see D2L) Due Wednesday, April 13, 11:59pm. Demos: |
29 | Wed, Apr 6 |
Recorded Lecture from Spring 2021 https://www.youtube.com/watch?v=Ibg4uz67Na4 |
Demos:
|
30 | Fri, Apr 8 |
Recorded Lecture from Spring 2021 https://youtu.be/azrwLQRXLK0 |
Demos: |
Week 11 | |||
31 | Mon, Apr 11 |
Simulated Annealing Review Start Lecture 13: Tabu Search Lecture Notes |
|
32 | Wed, Apr 13 |
Homework 4 Due Finished Lecture 13 Lecture Notes |
Demos: |
Fri, Apr 15 | Easter break - no class | ||
Week 12 | |||
33 | Mon, Apr 18 | No lecture today. Lecture is replaced by a personal study session to review your previous homework and exam feedback to understand any mistakes you make and try to fix them. | Graduate courses in session today, only undergraduates have continued Easter break. |
34 | Wed, Apr 20 |
Started Lecture 14: Particle Swarm Optimization Lecture Notes |
Demos: |
35 | Fri, Apr 22 |
Finished Lecture 14 Started Lecture 15: Neighborhoods in Continuous Space Lecture Notes |
|
Week 13 | |||
36 | Mon, Apr 25 |
Finished Lecture 15 Started Lecture 16: Firefly Search and Cuckoo Search Lecture Notes |
Demos: |
37 | Wed, Apr 27 |
Continued Lecture 16 Lecture Notes |
Demos: |
38 | Fri, Apr 29 |
Continued Lecture 16 Started Lecture 17: GRASP Lecture Notes |
Demos: |
Week 14 | |||
39 | Mon, May 2 |
Finished Lecture 17 Started Lecture 18: Variations on Local Search Lecture Notes |
Required Helper Files: (place in same directory) Demos: |
40 | Wed, May 4 |
Finished Lecture 18 Lecture Notes |
Required Helper Files: (place in same directory) Demos: |
41 | Fri, May 6 |
Started Lecture 19: Genetic Algorithms Lecture Notes |
Required Helper Files: (place in same directory) Demos: |
Week 15 | |||
42 | Mon, May 9 |
Finished Lecture 19 Lecture Notes |
|
Mon, May 16 | Final Exam, 1pm - 3pm |