Jay Pantone

Assistant Professor
Marquette University

jay.pantone@marquette.edu


Math 6000 – Scientific Computing

Spring 2023, 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 208
  • Office Hours:
    Monday, 1:00pm - 2:00pm
    in person, Cudahy 307
    Wednesday, 2:30pm - 3:30pm
    on Microsoft Teams
    and by appointment (just email me!)

Course Information

The official syllabus is available here.

 
Announcements

Textbook

Important Dates
Tues, Jan 17 Classes begin
Wed, Jan 25 Last day to add/drop classes or request CR/NC option
Mon, Mar 6 — Sat, Mar 11 Midterm exam period
Mon, Mar 13 — Fri, Mar 17 Spring break, no classes
Thurs, Apr 6 — Mon, Apr 10 Easter break, no classes
Fri, Apr 14 Last day to withdraw from classes
Fri, May 5 Last day of classes

Daily Calendar
# Date Topics Announcements / Homework
Week 1
1 Wed, Jan 18 Syllabus
Topic 1 - Installing Python and other tools
Guide to installing and using Python
Before class on Friday:
  • Install Python3.8 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 20 Topic 2 - Quick(ish) Introduction to Python (started) NOTE: You may need to right click the links to notebooks and save them, otherwise they might open in your browser in a messy text format. Windows may add a ".txt" extension automatically when you download the the notebook files. The extension should be .ipynb, not .ipnb.txt. If so, you will need to remove the ".txt" file extension to open it correctly.

Week 2
3 Mon, Jan 23 Topic 2 - Quick(ish) Introduction to Python (continued)
4 Wed, Jan 25 Topic 2 - Quick(ish) Introduction to Python (finished) Topic 3 - Greedy Algorithms (started) Lecture Notes

5 Fri, Jan 27 Homework 1 Assigned — see D2L
Topic 3 - Greedy Algorithms (continued)
Lecture Notes
Week 3
6 Mon, Jan 30 Topic 3 - Greedy Algorithms (continued) Lecture Notes
7 Wed, Feb 1 Topic 3 - Greedy Algorithms (continued) Lecture Notes


8 Fri, Feb 3 Topic 3 - Greedy Algorithms (continued) Lecture Notes

Week 4
9 Mon, Feb 6 Homework 1 Due
Topic 3 - Greedy Algorithms (finished)
Lecture Notes

(Note: for the TSP simulations you will get errors about missing packages. You can "pip install" them.)
10 Wed, Feb 8 Homework 2 Assigned (see D2L)
Topic 4 - Using the Unix Command Line (started)
Lecture Notes
11 Fri, Feb 10 Topic 4 - Using the Unix Command Line (finished)
Topic 4.5 - The Coding Process (started and finished)
Lecture Notes
Week 5
12 Mon, Feb 13 Topic 5 - Search Spaces and Brute Force Algorithms (started and finished) Lecture Notes
13 Wed, Feb 15 Topic 6 - Divide and Conquer (started) Lecture Notes

14 Fri, Feb 17 Topic 6 - Divide and Conquer (continued) Lecture Notes

Week 6
15 Mon, Feb 20 Topic 6 - Divide and Conquer (finished)
XKCD #356, nerd sniping
Lecture Notes

Bonus: Closest Points
16 Wed, Feb 22 Class cancelled today. Homework moved to Friday.
17 Fri, Feb 24 Homework 2 Due, 11:59pm
Topic 7 - Backtracking (started)
Sudoku Backtracking
Sudoku Backtracking - slowed down
Lecture Notes

Week 7
18 Mon, Feb 27 Topic 7 - Backtracking (finished) Lecture Notes
19 Wed, Mar 1 Topic 8 - Branch and Bound (started)
PEP 8 song
Lecture Notes
20 Fri, Mar 3 Topic 8 - Branch and Bound (continued) Lecture Notes
Week 8
21 Mon, Mar 6 Topic 8 - Branch and Bound (finished) Lecture Notes
22 Wed, Mar 8 Homework 3 Due
Midterm Exam, In-Class Part — covers up to and including Backtracking (no Branch and Bound)
Take-Home Part Assigned
23 Fri, Mar 10 No lecture today. Time reserved for wotking on take-home midterm exam. Lecture is replaced by office hours in Cudahy 307 at 10:00am - 10:50am.
Spring Break
Mon, Mar 13 Spring Break — no classes
Wed, Mar 15 Spring Break — no classes
Fri, Mar 17 Spring Break — no classes
Week 9
24 Mon, Mar 20 Topic 9 - Object Oriented Programming (started and finished)
  • Object-Oriented Programming - jupyter notebook
  • Object-Oriented Programming - pdf
  • 25 Wed, Mar 22 Take-Home Part of Midterm Exam Due
    Topic 10 - Introduction to Metaheuristics (started)
    Lecture Notes

    Lecture 10 Demos (zip file)
    26 Fri, Mar 24 Topic 10 - Introduction to Metaheuristics (finished)
    Topic 11 - Hill Climbing (started)
    Lecture Notes
    Week 10
    27 Mon, Mar 27 Topic 11 - Hill Climbing (continued) Lecture Notes

    Some Lecture 11 Demos (zip file)
    28 Wed, Mar 29 Topic 11 - Hill Climbing (finished) Lecture Notes

    All Lecture 11 Demos (zip file)
    29 Fri, Mar 31 Topic 12 - Simulated Annealing (started) Lecture Notes
    Week 11
    30 Mon, Apr 3 Homework 4 Due
    Topic 12 - Simulated Annealing (continued)
    Lecture Notes

    Springs Example (partial) - jupyter notebook
    Springs Example (partial) - pdf
    31 Wed, Apr 5 Topic 12 - Simulated Annealing (continued)


    Hill-Climbing


    Simulated Annealing
    Lecture Notes

    L12 demos - zip

    Springs - jupyter notebook
    Springs - pdf

    Springs with Pictures - jupyter notebook
    Springsv - pdf

    Knapsack - jupyter notebook
    Knapsack - pdf
    Fri, Apr 7 Easter Break – no classes
    Week 12
    32 Mon, Apr 10 Home Work Day, no in-person lecture
    33 Wed, Apr 12 Homework 5 Assigned (see D2L)
    Topic 12 - Simulated Annealing (finished)
    Lecture Notes

    Continuous Func #3, SA, no GUI
    Continuous Func #3, SA, no GUI, no SA class
    TSP, reverse block, 300 cities, no GUI
    34 Fri, Apr 14 Video Topic - Dynamic Programming (part 1)
    Pre-Recorded Lecture
    Written Notes
    Week 13
    35 Mon, Apr 17 Video Topic - Dynamic Programming (part 2)
    Pre-Recorded Lecture
    36 Wed, Apr 19 Video Topic - Dynamic Programming (part 3)
    Pre-Recorded Lecture
    37 Fri, Apr 21 Topic 13 - Particle Swarm Optimization (started) Lecture Notes (plus pictures of our five continuous test functions)

    Lecture 13 demos (zip file)
    Week 14
    38 Mon, Apr 24 Homework 5 Due
    Homework 6 Assigned
    Topic 13 - Particle Swarm Optimization (finished)
    Lecture Notes
    39 Wed, Apr 26 Topic 14 - Tabu Search (started) Lecture Notes

    Lecture 14 demos (zip file)
    40 Fri, Apr 28 Topic 14 - Tabu Search (finished) Lecture Notes
    Week 15
    41 Mon, May 1 Topic 15 - Tweaks in Continuous Space (started) Lecture Notes

    Demo - picking points uniformly
    42 Wed, May 3 Topic 15 - Tweaks in Continuous Space (finished)
    Topic 16 - Firefly Search and Cuckoo Search (started)
    Lecture Notes

    Demo - Walks in continuous space
    L16 demos (zip file)
    43 Fri, May 5 Homework 6 Due
    Topic 16 - Firefly Search and Cuckoo Search (finished)
    Lecture Notes