Jay Pantone

Assistant Professor
Marquette University

jay.pantone@marquette.edu


Math 6000 – Scientific Computing

Spring 2022, Marquette University

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

Course Information

The official syllabus is available here.

 
Announcements

Textbook

Important Dates
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

Daily Calendar
# 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:
  • Start the video at 16 minutes and 30 seconds.
  • There is a demo that I say might have a bug (continuous function number 3, hill climbing). It did! I fix it in the next lecture, and the correct version is posted to the right.
  • I highly recommend running the demos yourself to help you understand the various metaheuristics. You may need to pip install matplotlib. You can sometimes zoom in on the pictures too.
  • Sometime soon I will post versions without the plotting so you can see the essential code, and we will discuss it in class.
  • Our lecture/topic numbers are one less than in this video. Simulated Annealing is Topic 12 for us.
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