This course will cover the following aspects of computer programming:
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/.
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]:
The structure of the course is 3 hours of contact time:
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
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:
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.
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.
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.
This module is assessed using an individual piece of coursework. After week 7, this will be the main focus of our work.