Last month I finished lecturing part of the Programming Course that all the Doctoral Training Centre DPhil students do at the start of their first year. It is the first time I’ve helped teach the course so I thought I’d record some of the feedback I collected here. Overall the course introduces C and Python simultaneously, this helps illustrate the relative strengths and weaknesses of each language, but inevitably this is more challenging than concentrating on a single language, especially for beginners. Since the teaching rooms are not big enough, we split the cohort into two groups; I took the group with less programming experience (although there were definitely some ringers in the audience). In keeping with this, two-thirds of the 28 respondents had not done any form of programming before. Encouragingly, everyone thought that programming is essential for biology in the 21st century. So did they like the course?
Overall, yes, 73% agreed that they enjoyed the course and 69% found the lectures engaging and interesting. Jolly good, but what specifically did they like? A clear majority (83%) found the practicals helped to embed the concepts introduced during the lectures,
whilst an identical proportion thought the comics (mainly xkcd) were not a waste of time.
I borrowed a few ideas from Software Carpentry and, since my lecture room has dual projection, did live coding on one screen with the slides on the other. Slightly fewer people, 72%, but still a good majority, liked this.
Since the course was run in a conventional computing laboratory, I also encouraged, where possible, students to try some programming on their own laptop by installing Anaconda or Enthought Canopy, as I believe that it is only when you can play with coding in your own time on a machine you are comfortable with that you’ll begin to really get it. I was pleasantly surprised to see 49% of the students had indeed done this, which is high given they don’t yet all have laptops. With any course like this, however, it is whether their intentions have changed that is key. Given two-thirds had never coded before, it was encouraging to see that 82% intended to use Python during their DPhil.
This contrasted sharply with C: only 6%, which is only two people, stated that they intended to use C.
This probably partially reflects my own preference for “Python where possible, only use C if you have to do.” and, as was reflected in the comments, people tended to either ask that we teach Python, then teach C or perhaps not teach C at all. With hindsight, it is not surprising that teaching two quite different languages simultaneously to a group of students, most of whom had never done any programming before, was likely to be challenging. Some of the other comments were
Do not do Python and C at the same time.
Having Python & C side-by-side was just confusing – would be better to try and become proficient in one (Python!) only
Learning two languages simultaneously is very difficult.
Just teach PYTHON
Finally, the aim of this course can’t be to teach programming in two weeks, but hopefully will make them familiar enough that should they encounter a problem during their DPhil that they try and solve it themselves and don’t feel daunted by this prospect. Overall 59% thought they knew enough to write a simple problem, with 28% still not sure.
Lots to think about, and hopefully, feed back into the course for next year.