Computing for Mathematics: Introduction to the course

This course will cover the following aspects of computer programming:

  • Introduction to basic concepts of programming using Python
  • Overview of specific concepts relevant to mathematics

All course materials are available online at http://vknight.org/cfm/. You can also find all the source files that create that website at http://github.com/drvinceknight/cfm/.

Course notes

The course notes are in the form of lab sheets and are all available to you. These are written using Jupyter notebooks (a tool you will learn to use yourself). You will see mathematics and explanations as well as computer code. For example here is some code to raise $2$ to the power of $10$:


In [1]:
2 ** 10


Out[1]:
1024

The structure of the course is 3 hours of contact time:

  • A "pre" class meeting: we will discuss and demonstrate the concepts we will learn in any given week.
  • A lab session: you have the opportunity to get feedback and ask questions on the lab sheets.
  • A "post" class meeting: we will discuss potential difficulties and reaffirm understanding through in class activity.

The lab sheets include optional exercises, solutions to them are in the notebooks that you can download from the class site. I recommend you work on those exercises without looking at the solutions. You can ask for feedback and advice in lab sessions and I will also go over specific solutions if required in the post class meeting.

Note that this class requires you to work on the course content outside of contact time. I will not be going over the lab sheets directly in class so I recommend you do those in your own time. At any time you are welcome to view my personal notes for the various meetings we will be having: http://vkcfm.readthedocs.io/

If you would like some information about the pedagogic approach: you can find my "teaching philosophy" here: https://vknight.org/tch-phi/

It is possible that the course notes will change: for things like typos and clarifications, all of the notes are hosted openly on github and if you're interested you can find a list of all changes here: https://github.com/drvinceknight/cfm/commits/master

Software installation

There are various distributions of Python, we will use Anaconda which comes packaged with a variety of other useful tools (including the notebooks I mentioned above).

To install it on your personal machine follow these steps:

  1. Go to this webpage: https://www.anaconda.com/download/.
  2. Identify and download the version of Python 3 for your operating system (Windows, Mac OSX, Linux). Run the installer.

We will use a Jupyter notebook which runs in your browser. To open a local server find the Continuum navigator and click on Jupyter. You do not need to be connected to the internet to use this.

This video is a demo of using a notebook.

Technology in class

Please use whatever resources you need to be successful in this class. Let me know if I can help with anything.

In class activities will often involve you writing some code: if you have a laptop you can use it but it is not required.

Office hours

I will hold 2-3 hours a week for office hours during which you may come and get help. Specific hours will be determined collaboratively as a class during the first class meeting.

Assessment

This module is assessed using an individual piece of coursework. After week 7, this will be the main focus of our work.