Category Archives: education

Am I teaching well given the available research on teaching

Figuring out how to teach well as a professor at a research university is largely a self-study affair. For me the keys to productive self-study are good information and self-reflection. Without good information you’re not learning the right things and without self-reflection you don’t know if you are actually succeeding at implementing what you’ve learned. There have been some nice posts recently on information and self-reflection about how we teach over at Oikos (based on, indirectly, on a great piece on NPR) and Sociobiology (and a second piece) that are definitely worth a read. As part of a course I’m taking on how to teach programming I’m doing some reading about research on the best approaches to teaching and self-reflection on my own approaches in the classroom.

One of the things we’ve been reading is a great report by the US Department of Education’s Institute of Education Sciences on Organizing Instruction and Study to Improve Student Learning. The report synthesizes existing research on what to do in the classroom to facilitate meaningful long-term learning, and distills this information into seven recommendations and information on how strongly each recommendation is supported by available research.

Recommendations

  1. Space learning over time. Arrange to review key elements of course content after a delay of several weeks to several months after initial presentation. (moderate)
  2. Interleave worked example solutions with problem-solving exercises. Have students alternate between reading already worked solutions and trying to solve problems on their own. (moderate)
  3. Combine graphics with verbal descriptions. Combine graphical presentations (e.g., graphs, figures) that illustrate key processes and procedures with verbal descriptions. (moderate)
  4. Connect and integrate abstract and concrete representations of concepts. Connect and integrate abstract representations of a concept with concrete representations of the same concept. (moderate)
  5. Use quizzing to promote learning.
    1. Use pre-questions to introduce a new topic. (minimal)
    2. Use quizzes to re-expose students to key content (strong)
  6. Help students allocate study time efficiently.
    1. Teach students how to use delayed judgments of learning to identify content that needs further study. (minimal)
    2. Use tests and quizzes to identify content that needs to be learned (minimal)
  7. Ask deep explanatory questions. Use instructional prompts that encourage students to pose and answer “deep-level” questions on course material. These questions enable students to respond with explanations and supports deep understanding of taught material. (strong)

(Quoted directly from the original report via a Software Carpentry blog post)

This is a nice summary, but it’s definitely worth reading the whole report to explore the depth of the thought process and learn more about specific ideas for how to implement these recommendations.

How am I doing?

Recently I’ve been teaching two courses on programming and database management for biologists. Because I’m not a big believer in classroom lecture, for this type of material, a typical day in one of these courses involves: 1) either reading up on the material in a text book or viewing a Software Carpentry lecture before coming to class; 2) a brief 5-10 minute period of either re-presenting complex material or answering questions about the reading/viewing; and 3) 45 minutes of working on exercises (during which time I’m typically bouncing from student to student helping them figure out things that they don’t understand). So, how am I doing with respect the the above recommendations?

1. Space learning over time. I’m doing OK here, but not as well as I’d like. The nice thing about teaching introductory programming concepts is that they naturally build on one another. If we learned about if-then statements two weeks ago then I’m going to use them in the exercises about loops that we’re learning about this week. I also have my advanced class use version control throughout the semester for retrieving data and turning in exercises to force them to become very comfortable with the work-flow. However, I haven’t done a very good job of bringing concepts back, on their own, later in the semester. The exercise based approach to the course is perfect for this, I just need to write more problems and insert them into the problem-sets a few weeks after we cover the original material.

2. Interleave worked example solutions with problem-solving exercises. I think I’m doing a pretty good job here. Student’s see worked examples for each concept in either a text book or video lecture (viewed outside of class) and if I think they need more for a particular concept we’ll walk through a problem at the beginning of class. I often use the Online Python Tutor for this purpose which provides a really nice presentation of what is going on in the program. We then spend most of the class period working on problem-solving exercises. Since my classes meets three days a week I think this leads to a pretty decent interleaving.

3. Combine graphics with verbal descriptions. I do some graphical presentation and the Online Python Tutor gives some nice graphical representations of running programs, but I need to learn more about how to communicate programming concepts graphically. I suspect that some of the students that struggle the most in my Intro class would benefit from a clearly graphical presentation of what is going happening in the program.

4. Connect and integrate abstract and concrete representations of concepts. I think I do this fairly well. The overall motivation for the course is to ground the programming material in the specific discipline that the students are interested in. So, we learn about the general concept and then apply it to concrete biological problems in the exercises.

5. Use quizzing to promote learning. I’m not convinced that pre-questions make a lot of sense for material like this. In more fact based classes they are helping to focus students’ attention on what is important, but I think the immediate engagement in problem-sets that focus on the important aspects works at least as well in my classroom. I do have one test in the course that occurs about half way through the Intro course after we’ve covered the core material.  It is intended to provide the “delayed re-exposure” that has been shown to improve learning, but after reading this recommendation I’m starting to think that this would be better accomplished with a series of smaller quizzes.

6. Help students allocate study time efficiently. I spend a fair bit of time doing this when I help students who ask questions during the assignments. By looking at their code and talking to them it typically becomes clear where the “illusion of knowing” is creeping in and causing them problems and I think I do a fairly good job of breaking that cycle and helping them focus on what they still need to learn. I haven’t used quizzes for this yet, but I think they could be a valuable addition.

7. Ask deep explanatory questions. One of the main focuses in both of my courses is an individual project where the students work on a larger program to do something that is of interest to them. I do this with the hope that it can provide the kind of deep exposure that this recommendation envisions.

So, I guess I’m doing OK, but I need to work more on representation of material both through bringing back old material in the exercises and potentially through the use of short quizzes throughout the semester. I also need to work on alternative ways to present material to help reach folks whose brains work differently.

If you are a current or future teacher I really recommend reading the full report. It’s a quick read and provides lots of good information and food for thought when figuring out how to help your students learn.

Thanks for listening in on my self-reflection. If you have thoughts about this stuff I’d love to hear about it in the comments.

Why computer labs should never be controlled by individual colleges/departments

Some time ago in academia we realized that it didn’t make sense for individual scientists or even entire departments to maintain their own high performance computing resources. Use of these resources by an individual is intensive, but sporadic, and maintenance of the resources is expensive [1] so the universities soon realized they were better off having centralized high performance computing centers so that computing resources were available when needed and the averaging effects of having large numbers of individuals using the same computers meant that the machines didn’t spend much time sitting idle. This was obviously a smart decision.

So, why haven’t universities been smart enough to centralize an even more valuable computational resource, their computer labs?

As any student of Software Carpentry will tell you, it is far more important to be able to program well than it is to have access to a really large high performance computing center. This means that the most important computational resource a university has is the classes that teach their students how to program, and the computer labs on which they rely.

At my university [2] all of the computer labs on campus are controlled by either individual departments or individual colleges. This means that if you want to teach a class in one of them you can’t request it as a room through the normal scheduling process, you have to ask the cognizant university fiefdom for permission. This wouldn’t be a huge issue, except that in my experience the answer is typically a resounding no. And it’s not a “no, where really sorry but the classroom is booked solid with our own classes,” it’s “no, that computer lab is ours, good luck” [3].

And this means that we end up wasting a lot of expensive university resources. For example, last year I taught in a computer lab “owned” by another college [4]. I taught in the second class slot of a four slot afternoon. In the slot before my class there was a class that used the room about four times during the semester (out of 48 class periods). There were no classes in the other two afternoon slots [5]. That means that classes were being taught in the lab only 27% of the time or 2% of the time if I hadn’t been granted an exception to use the lab [6].

Since computing skills are increasingly critical to many areas of science (and everything else for that matter) this territoriality with respect to computer labs means that they proliferate across campus. The departments/colleges of Computer Science, Engineering, Social Sciences, Natural Resources and Biology [7] all end up creating and maintaining their own computer labs, and those labs end up sitting empty (or being used by students to send email) most of the time. This is horrifyingly inefficient in an era where funds for higher education are increasingly hard to come by and where technology turns over at an ever increasing rate. Which [8] brings me to the title of this post. The solution to this problem is for universities to stop allowing computer labs to be controlled by individual colleges/departments in exactly the same way that most classrooms are not controlled by colleges/departments. Most universities have a central unit that schedules classrooms and classes are fit into the available spaces. There is of course a highly justified bias to putting classes in the buildings of the cognizant department, but large classes in particular may very well not be in the department’s building. It works this way because if it didn’t then the university would be wasting huge amounts of space having one or more lecture halls in every department, even if they were only needed a few hours a week. The same issue applies to computer labs, only they are also packed full of expensive electronics. So please universities, for the love of all that is good and right and simply fiscally sound in the world, start treating computer labs like what they are: really valuable and expensive classrooms.

—————————————————-

[1] Think of a single scientist who keeps 10 expensive computers, only uses them a total of 1-2 months per year, but when he does the 10 computers aren’t really enough so he has to wait a long time to finish the analysis.

[2] And I think the point I’m about to make is generally true; at least it has been at several other universities I’ve worked over the years.

[3] Or in some cases something more like “Frak you. You fraking biologists have no fraking right to teach anyone a fraking thing about fraking computers.” Needless to say, the individual in question wasn’t actually saying frak, but this is a family blog.

[4] As a result of a personal favor done for one administrator by another administrator.

[5] I know because I took advantage of this to hold my office hours in the computer lab following class.

[6] To be fair it should be noted that this and other computer labs are often used by students for doing homework (along with other less educationally oriented activities) when classes are not using the rooms, but in this case the classroom was a small part of a much larger lab and since I never witnessed the non-classroom portion of the lab being filled to capacity, the argument stands.

[7] etc., etc., etc.

[8] finally…

Learning to program like a professional using Software Carpentry

An increasingly large number of folks doing research in ecology and other biological disciplines spend a substantial portion of their time writing computer programs to analyze data and simulate the outcomes of biological models. However, most ecologists have little formal training in software development¹. A recent survey suggests that we are not only; with 96% of scientists reporting that they are mostly self-taught when it comes to writing code. This makes sense because there are only so many hours in the day, and scientists are typically more interested in answering important questions in their field than in sitting through a bachelors degree worth of computer science classes. But, it also means that we spend longer than necessary writing our software, it contains more bugs, and it is less useful to other scientists than it could be².

Software Carpentry to the Rescue

Fortunately you don’t need to go back college and get another degree to substantially improve your knowledge and abilities when it comes to scientific programming, because with a few weeks of hard work Software Carpentry will whip you into shape. Software Carpentry was started back in 1997 to teach scientists “the concepts, skills, and tools they need to use and build software more productively” and it does a great job. The newest version of the course is composed of a combination of video lectures and exercises, and provides quick and to the point information on such critical things as:

along with lots of treatment of best practices for writing code that is clear and easy to read both for other people and for yourself a year from now when you sit down and try to figure out exactly what you did³.

The great thing about Software Carpentry is that it skips over all of the theory and detail that you’d get when taking the relevant courses in computer science and gets straight to crux - how to use the available tools most effectively to conduct scientific research. This means that in about 40 hours of lecture and 100-200 hours of practice you can be a much, much, better programmer who rights code more quickly, with fewer bugs, that be easily reused. I think of it as boot camp for scientific software development. You won’t be an expert marksman or a black belt in Jiu-Jitsu when you’re finished, but you will know how to fire a gun and throw a punch.

I can say without hesitation that taking this course is one of the most important things I’ve done in terms of tool development in my entire scientific career. If you are going to write more than 100 lines of code per year for your research then you need to either take this course or find someone to offer something equivalent at your university. Watch the lectures, do the exercises, and it will save you time and energy on programming; giving you more of both to dedicate to asking and answering important scientific questions.

______________________________________________________

¹I took 3 computer science courses in college and I get the impression that that is about 2-3 more courses than most ecologists have taken.

²I don’t know of any data on this, but my impression is that over 90% of code written by ecologists is written by a single individual and never read or used by anyone else. This is in part because we have no culture of writing code in such a way that other people can understand what we’ve done and therefore modify it for their own use.

³I know that I’ve decided that it was easier to “just start from scratch” rather than reusing my own code on more than one occasion. That won’t be happening to me again thanks to Software Carpentry

Fighting the snake [Things you should read]

As I’ve mentioned before I’m not a big fan of the configuration of most comprehensive exams, but my post on the matter keeps languishing on my out of control To Do list. So, I was really pleased when a friend of mine passed along something that a student had sent him*. The piece is actually about a portion of thesis defenses, but I think it applies most appropriately to comprehensive exams (just substitute writtens for thesis, and add the fact that the guy who picks the snakes is hard of hearing). Regardless, it is short, hilarious and just the sort of thing stressed out students, postdocs, and faculty need to get a little chuckle as they finish up the semester. Go read it.

*Thanks to Joanna Hsu and Peter Adler for passing this along.

Courting controversy & academic ponzi schemes [Things you should read]

Anyone who has been around the halls of academia for a while has heard some well meaning soul talk about how we produce too many PhD students for the number of faculty positions, that this is unfair, and that therefore we should take fewer students. The most recent version of this idea on the web goes so far as calling the academic enterprise a Ponzi scheme. I’ve never personally found this argument very convincing. No other area of employment has a degree the guarantees its recipients their preferred job and I think that thinning the pool of potential talent from the scientific fields before it’s really possible to tell who the important thinkers of the next generation might be is bad for science (and all of the things that benefit from it). I’ve never taken the time to really expand on these thoughts, but thankfully James Keirstead over at Academic Productivity has an interesting post up responding to the ideas in the first link. Go check it out.

Some days…

Some days I really wonder whether the bureaucratic infrastructure at institutions of higher education has any idea whatsoever that their job is to support the research and teaching missions of the university.

Explaining life as a graduate student

As a graduate student, explaining what your day to day life is like to your non-academic friends can sometimes be a little difficult. In this enjoyable piece from The Science Creative Quarterly Daven Tai takes a unique approach to this challenge:

Working to get your PhD is like training to become a Jedi Knight,” I started. “You follow a Master; you live a life of sacrifice; you must develop rational thought and patience…

If you’re looking for five minutes of academically oriented fun go check out the whole article.

Creativity = Science + Writing

A group of 5th and 6th graders where asked to define either “science” or “writing” and when the answers were combined this definition of creativity was the result. In scientific education, and as we conduct scientific research, we often lose track of the fact that creativity is critical to the scientific process. This is a great reminder of its importance.

New Masters Program in Quantitative Biology at Imperial College London

Imperial College London is offering a new masters degree program in quantitative biology. It sounds like a great opportunity to get some good quantitative training via an intensive 1 year MS program. The best part of their pitch follows below. If you’d like to see the whole ad check out the flier that Dan Reuman sent me.

Over the past 10-20 years, biology has become increasingly quantitative, and mathematical sciences have in turn been increasingly influenced by biology. It has been said that “mathematics is biology’s next microscope, only better” (Cohen, J.E., PloS Biology, 2004) because mathematical, statistical, and computational sciences will continue to reveal unsuspected and entirely new worlds within biology, just as the microscope revealed previously unseen worlds following its invention. It has also been said that “biology is mathematics’ next physics, only better” (Cohen, J.E., PloS Biology, 2004) because biology will in turn continue to spur major new developments in computation, mathematics and statistics, just as physics has done in the past several hundred years.

Recognizing this integration, the MSc in Quantitative Biology provides students of life sciences with the quantitative skills they will need to thrive in the modern discipline of biology, and provides students from a more quantitative background with the biological insight they need to apply their technical skills. The course is unique in integrating important current research questions in biology with data from ecosystems down to cells and state-of-the-art quantitative methods. Graduates will be highly trained scientists prepared for employment in any of several settings, including as PhD students in universities and institutes worldwide; in the research departments of multinational industries concerned with the environment (e.g., pharmaceuticals, biotechnology); in conservation, management and agricultural agencies; and in local and national governments.

Getting things done in academia

In a couple of days I’m participating in a panel to help young faculty be ready for their 3rd year review (the halfway step to tenure, which is kind of a big deal at my institution). This is the sort of thing that I normally say no to, but I’ve been to a couple of these things and I just couldn’t bear the thought of another group of young faculty being told that what they really needed to do to get tenure is to have a really spiffy tenure binder… so I’m going to talk about what they actually need to do to get tenure – get stuff done – and I thought it would be worth posting my thoughts on this here for broader consumption. This advice is targeted at assistant professors at research universities, but folks in other situations may be able to adapt it to their individual circumstances (e.g., if you’re at a small liberal arts college or other teaching centered school try swapping research and teaching below). Since the goal of the workshop is getting through the first phase of tenure, this is about what you need to do to accomplish that goal, not what you should be doing in any sort of broader philosophical sense. This advice is built on the lessons that Morgan (my wife and co-blogger for those of you new to JE; in fact she was so instrumental in developing these ideas that even though I’m using the first person singular this will be listed as a co-authored post) and I have learned during our time as assistant professors.

Read the rest of this entry

Follow

Get every new post delivered to your Inbox.

Join 151 other followers