Jay Pantone

Assistant Professor
Marquette University

jay.pantone@marquette.edu


Math 6000 – Scientific Computing

Spring 2024, 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 108
  • Office Hours:
    Monday, 2:30pm - 3:30pm
    Wednesday, 2:00pm - 3:00pm
    Thursday, 10:30am - 11:30am
    Cudahy Hall 307 and by appointment

Course Information


 
Documents

Textbook

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

Daily Calendar
# 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:
  • Install Python3.10 or higher, Git for Windows (if applicable), and Sublime Text or some other IDE.
  • Install a package with pip.
  • Update pip.
  • Write and run a very basic python program.
  • Try out interactive mode.
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 Lecture Notes
Video Recording

Fixing the particles going out of bounds (python)
39 Wed, Apr 24 Homework 6 Assigned 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
Week 15
41 Mon, Apr 29
42 Wed, May 1
43 Fri, May 3 Homework 6 Due
Take-home Final Exam assigned