MTH 337 Introduction to Scientific and Mathematical Computing
Class times: Tue Th 9:00-10:50 AM, Math Building 150


Bernard Badzioch
Office: 108 Mathematics Building
Office Hours: Tue 5:00-7:00 PM

Course Resources

Laptop. We will be programming during all class meetings, so you should bring a laptop to every class. Any operating system (Windows/Mac/Linux) is fine.

Software. We will be using the Anaconda distribution of Python 3.6. This is free software. Even if you have Python already installed on your computer you should install this distribution since it includes Jupyter notebook and several Python modules we will need.

Textbook. There is no required textbook for this course but the following resorces may be helpful:

  • MTH 337 notes by prof. Adam Cunningham. These notes provide a concise introduction to Jupyter notebook and Python.

  • Markdown cheatsheet. Markdown is a scheme used to format text in Jupyter notebook.

  • LaTeX math symbols - this is useful reference for typesetting mathematics with Jupyter notebook.

  • Python 3 documentation. This is the official documentation of Python 3. See the Tutorial section for introduction to Python and Library Reference for a systematic description of standard Python tools.

  • matplotlib documentation. Matplotlib is a Python module for creating graphs and plots. We will use it a lot. Matplotlib documentation is unfortunately incomplete and often quite confusing, but it includes many code examples that can be helpful.

  • numpy documentation. Numpy is the main scientific computing module of Python. We will use it extensively.

Piazza. This website will be used as a message board for questions concerning this course. If you have such a question please post it on Piazza instead of e-mailing me. In this way other students who may have the same problem will benefit. If you know the answer to a question somebody else posted on Piazza please answer it. Do not use Piazza for personal matters (concerning your grade etc.), e-mail me directly with such issues.

UBLearns will be used mainly for submitting project reports.


There will be no exams in this course. Instead, grades will be assigned based on the following components:

  • Project Reports 70%

  • Quizzes 20%

  • Class Participation 10%

Project Reports. One the main components of this course will be exploratory projects. You will be working on them largely independently, using mathematical and computing tools. The outcome of your work on each project will be a project report that you will submit for grading. Each report will be graded on the A-F scale. Extra credit may be assigned for an outstanding work. Reports will be submitted via UBLearns. The submission deadline will be 8:00 AM on Thursdays. Late reports will not be accepted. More information about project reports is posted here.

Quizzes. Each Tuesday there will be a short quiz testing your knowledge of Python. Sample quizzes will be posted ahead of time with the weekly class schedule. The lowest quiz score will be dropped.

Class Participation. This includes class attendance, asking and answering question in class and on Piazza etc.