This repository contains IPython notebooks, scripts, modules and supporting files for the 2015 Bioinformatics Support Platform Python course. The notebooks can be viewed one of two ways:
-
Clone the repository with
git clone https://github.com/pvanheus/python2015.gitto your computer and then startipython notebookin the resultingpython2015directory. This will let you work interactively with the contents of the notebooks, including examples. Note that the notebooks were created using Anaconda Python distribution (for Python 2.7). Also, for some of the notebooks you need to have BioPython installed. -
View the notebooks using nbviewer. On GitHub, click on the notebook, copy the link to the notebook as reflected in the location bar of your browser, and paste that link into the form at http://nbviewer.ipython.org/.
Several websites such as CodeAcademy, LearnPython, One Month Python and PythonTutor provide interactive, online Python courses. CodeMentor also has links to a number of online tutorials. Coursera also runs an occassional Interactive Python course that might be better for students that want to do a course together with others.
The teaching materials from Software Carpentry formed the bases of a number of lessons in the 2015 Python course. In the past this course drew on some online books, including How to think like a Computer Scientist. The exercises from 46 Simple Python Exercises were also useful, inspiring some of the questions in the mock test and real test.
For more advanced topics, consider the Little Book of Python Anti-Patterns that discusses common design mistakes in Python code. For those having some understanding of Design Patterns this list of design pattern implementations in Python might be useful.
While there is a Python User's Groups in Cape Town and a semi-regular meetup in Johannesburg and even an annual Python Conference, South Africa has a long way to go towards creating communities of interest in academia. The Software Carpentry ZA group is an attempt to remedy this deficit by organising Software Carpentry workshops and facilitating the training of instructors in South Africa. SANBI also maintains a low volume Python mailing list for discussion all things Python-ic. Finally, the STEM community in general and the programming community in particular has a problem with diversity: compared to the general population there is an overabundance of males and white people. While there are initiatives like SA Women in Science and Engineering, I don't know of any programmes that are specifically aimed at addressing the deficit in women and black people in the South African software engineering / programming community.
Finally science and technical blogs are an invaluable resource. C Titus Brown's Living in an Ivory Basement is one of my favourite. I maintain an infrequently updated blog myself, but it hardly compares. And question and answer sites like Stack Overflow consistently end up in my top search results when looking for "how to" tips for Python. In bioinformatics there are also BioStars and SeqAnswers. For those in Cape Town the Cub Hub provides a point of contact for a small but growing community of bioinformaticists.
I hope you've enjoyed the course and please remember to code, add, commit and push to GitHub. And then blog about what you've been doing.