Overview
Site for the AIMS-Ghana course Introduction to Programming for Research with Python.
Course Description
As the name implies, the course covers (1) programming (2) for research (3) with Python, IN THAT ORDER.
First, we will develop the practical skill of programming: expressing a task (1) in a formal language, (2) in a way that is useful, and doing so (3) quickly and (4) flexibly.
Second, we will focus on tasks that are most pertinent to research (rather than more general purpose programming, like making a text editor or music player):
- reading / writing data
- transformation / subsetting of data
- bulk analysis of data
- enumeration of states
- approximation and simulation of models
- visualization of results
Finally, we will cover how to realize these tasks in a particular language - Python - using tools associated with that language (e.g., the command line interpreter, using scripts, using Python notebooks).
Philosophy
Why are we prioritizing first programming, then research, then Python?
Throughout your future career, whether you go into research or industry or even politics, being able to write down a formal description of solving a problem, that is to say programming, will be the most invaluable skill you work on during this course.
For the rest of your Master’s program, however, your courses will focus on research. That focus will vary between topics and techniques, but always with a strong vein of mathematics and science and their applications. So we will work to make sure that you develop your programming skills especially on tasks that are important to research.
Finally, Python is the least important aspect of the course. To be clear: almost all of the detailed work you do and all the feedback you receive will be framed in Python. And Python is an important language for both research and industry work. But: we could be doing this course in R or Octave or any number of other languages. In the future, the best language for a job you will want to accomplish is most likely to not be Python, and you should be open to learning and using those tools (…and to using a less-than-perfect tool to get the job done sooner). However, to learn programming, you must do programming, and that means writing programs in a particular language.
Prerequisites
The course assumes limited programming background, but basic familiarity with computers - particularly inputting commands at the terminal and using a plaintext editor - and general maths concepts - particularly calculus, probability, and geometry.
Other Resources
- Coursera Courses
- online books