Thursday, May 16, 2019

Computer Science And x

For most of my teaching career I have been focused on teaching computer science in stand alone computer science classes. And  I really like teaching computer science as a standalone class. But lately I have been thinking more about where CS can/should fit into the greater education process. This is not completely new thinking for me. I’ve always thought that computing tools are great for teaching other disciplines.

Spreadsheets are awesome for dealing with data in science classes, math classes, and even social studies (think graphing population growth) for example. Even early in my teaching time I said that there is a time for teaching tools to learn the tool but eventually using the tool to learn other things is or should be the goal.

We teaching reading as an independent subject in the early years but over time it become less an independent subject and more a tool for learning other things. The same is largely true of mathematics.  I believe that computer science in academia will be at its best when we reach a point where it is more and more a tool for learning other subjects.

CS teachers like to believe that somehow the knowledge and problem solving schools in CS transfer magically to other disciplines. Research show that any transfer is minimal at best. We in computer science have to stop ignoring that research is we really want to add value to education. Helping teachers on other disciplines learn to use CS in their teaching has to be part of that.

Mark Guzdial, who has taught me more about how to teach computer science than any other individual, is focusing his current research on to help teachers in other disciplines integrate computing into their teaching. This is important research in my not so humble opinion. I think that a lot of us who are already teaching CS need to start thinking about this as well.

At one point I thought technology integration specialists would carry this load. Many of these people are computer science people but many more are not. SO far I see computer science being integrated across the curriculum mostly in elementary and some middle schools. I really admire the K-8 teachers who have taken on the task of learning CS, largely on their own, and finding ways to incorporate it in to their teaching. There is little if any room for an independent CS course in elementary schools. There is a bit more in middle schools but the time is limited in most of them.

I don’t see much work on integrating CS in high school courses. The Physics department at my school would like to see us teach Python as they are seeing more of that in use by physicists. That my be an opening and we may add Python to our program at some point. Change is slow in education. Even sometimes in computer science.

Still, change has to happen. Change has to happen not just in standalone courses but who computer science departments in schools support other departments. For transfer of skills and knowledge to transfer it has to have context. And context doesn’t just happen. We have to make it happen.

PS: I really should have included this from the start. Bootstrap has courses aimed at algebra, statistics, business, social studies, science AND physics. GO check it out. It’s the sort of thing we really need.


N. Plotnick said...

Part of my work has been to bring CS to the other content areas in my school. I have written some short programs for geometry, algebra, chemistry and physics. Give me an equation and I can typically code some Python to make it part of a lesson.

Algebra - distance formula.
Geometry - area and circumference of a circle.
Physics - Ohms law.
Chemistry - ideal gas law.

The above are only a sample. As a co-teacher at my high school, I work in multiple content areas every year. There is no better way to know how CS can impact other classes than by actually sitting in the room along with another teacher. I also use my common planning time to work on cross-curriculum lessons.

Garth said...

I have tried to do some integration like this and hit a few walls. The classroom teacher is the big one. Introducing something new in the curriculum is met with a lot of resistance. Established teachers do not want to change anything. The new thing pushes something else out and what ever it might push out is critical to the future life of the students. They will be homeless on the streets if that topic is downsized or dropped. Introducing a programming thread also requires the teacher learn programming. Not going to happen. Many teachers are extremely resistant to learning something out of their field. Weird. I always though teaching involved a lot of learning.

The other big wall was the tech itself. Tech dies. Usually 2 minutes before the lesson starts. The teacher has to learn how to troubleshoot. Opps, back to paragraph 1.

Then there is the students themselves. Personally I feel some kids cannot learn how to code. There is a particular level of mental maturity required, an almost anal attention to detail that is needed. They might have it by age 25, but not at age 16.

The solution is pre-service training. Require pre-service teachers to take a CS course applicable to their major. Now there is the problem of finding instructors to teach the teachers. Chicken or the egg.

Something I did this year was stop using the TI calculator in my Stats class. Require them to use a spreadsheet. Google Sheets is pretty good for Stats. By the end of the year the students knew how to Google how to do things in Sheets. They expected to have to do their own digging on the internet for the "How to". Yes, I would do a quick show-and-tell of a particular Sheets task but then they were on their own.

Cole Ely said...

It's fun to code the Pythagorean theorm but solve for a or b. Then you can demonstrate the 1/2 power as sqrt.