August 28, 2009

Wealth And Health

Teachers don't make much money. Poor people are have short lifespans. There is a well-established relationship between wealth and health. Reasons for this are many, but I think one factor is the differences in the quality of housing that people can afford. We teachers have made a deliberate trade-off between income and how we spend our workdays. Housing quality is one thing we are giving up, and along with it, our health. I've been renting for ten years because I don't have the financial strength to buy a house, and each place I've rented has been less than ideal. These observations are from the places I've lived:
  • For three years, I lived in rental units next to paper mills and could frequently smell the emissions.
  • My college dorms did not have a usable kitchen, forcing us to eat the only moderately healthy fare served in the cafeteria for a year, causing some of my classmates to gain the infamous freshman fifteen.
  • One rental property was in a basement with the upstairs owner's cat's litter box right outside the door, which they never changed. This owner, one day without warning, decided to re-varnish the floor upstairs. His family escaped the fumes by taking a week-long camping trip, leaving us basement renters to either suck in the fumes or take to the streets.
  • One place had an untested private well, producing water so bad that it was impossible to drink. The only option was to buy bottled water from the local Wal-Mart.
  • Every multi-unit building I've been in has had a smoker in the building.
  • In one rental, the vents from each unit were connected, so that when one person smoked, everyone in the building got it.
  • My new unit has a leaky gas oven which I'm currently fighting about with the landlord. It may be enough for me to break the lease if it's not fixed.
  • Several rentals have been very old, with plumbing and electrical systems to match. The electrical outlets do not have ground wires. The plumbing systems might contain lead. There is undoubtedly exposed lead paint.

I hesitate to play the victim game because I probably could have avoided some of these problems had I been more diligent and selective in my housing search. But some of these things truly were beyond my control – information that I couldn't have found out until I was actually living in the place, and by that time, it was legally impossible to get out of the lease (trust me, I tried).

Many of us, especially those of us in the business content area, could be making much more money if we pursued careers in the private sector. We all knew about the income hit when we took this job, but did we consider the hit to our health? Is it worth it?

August 24, 2009

New Class Lists

I raced through all of my new class lists today, scanning for names of students I know. I became very afraid when I saw some of the names! I had one of those classes from hell last year at the middle school, and I was really hoping that some of the students (incoming freshmen this year) would decide to take someone's classes other than mine. Lo and behold, some of these challenging students decided they liked me so much that they want to spend another whole semester with me!

I'm going in with an open mind, and I'm not going to pre judge them. But these one or two students have the ability to single handedly destroy an entire class if the teacher lets them. I'm not going to be the teacher who lets them this year.

I'll have to be careful not to single them out. I won't treat them any differently from anyone else, UNLESS they give me a reason to. I'll be much quicker in administering disciplinary measures than I was in the past. When students get away with one thing, they basically have license to keep misbehaving. My goal will be to create an atmosphere of LEARNING from the very first day. I'll have to be vigilant to maintain this atmosphere throughout the term.

I want to emphasize that most of my students are great. I'm just talking about one or two here, but that's all it takes to destroy a learning atmosphere sometimes.

Another random observation about my class lists: each year, there are more and more students whose names I can't pronounce. We have a pretty high population of immigrant families in this community. This is one extra challenge that I didn't have to face at the rural district I taught at two years ago. Overall, these students are very hard working and well behaved, it's just that learning their names takes some extra effort. Effort that is well spent.

August 11, 2009

Has Jeff Atwood Jumped The Shark?

Full disclosure: I love Jeff Atwood's blog and think he is a great asset to the programming community. A lot of what I know about programming, I've learned from him. His new business, Stack Overflow, has helped programmers all over the world get answers to their technical questions.


But I sometimes wonder how his business has become so successful when his business knowledge is so apparently lacking. Here are summaries of a few of his recent posts:

Software Pricing: Are We Doing It Wrong?

Jeff thinks that if Microsoft would radically lower the price of its Windows operating system, the increased sales volume would more than make up for the lower margins.

I teach this concept in my Marketing classes, and it's called Elasticity of Demand. I draw a demand curve on the board for elastic products and inelastic products, and show the differing sizes of the rectangles under each curve when the price changes, and then we eventually conclude that revenue is maximized when the price is set to the point on the demand curve where elasticity = 1.

Had he known this, Mr. Atwood would probably realize that Microsoft has certainly considered the question of pricing very carefully and set their prices very deliberately. He would also realize that the price elasticity of demand for Microsoft Windows does not make his suggestion feasible.

Oh, You Wanted "Awesome" Edition

Here, he says that the Microsoft marketing department is run by weasels because they charge different prices for different editions of their software. As if charging different prices for essentially the same product is some new and radical thing.

I teach this to ninth graders in Intro To Marketing, too. Companies do this with all sorts of products, from breakfast cereals and computers to rock concerts and plane rides. It turns out that there are good and valid reasons for this. But Mr. Atwood chalks it up to "marketing weasels".

What's totally baffling, though, is that he's doing this with his own product, the Stack Exchange engine, even after decrying the practice.

Jeff Atwood is a great blogger, teacher, and programmer. But some of his opinions (including his suggestion to open source his product and destroy his own income stream) show a lack of knowledge of basic, fundamental business concepts.

America is prosperous because of entrepreneurs like Jeff Atwood. One day, some of our students will become entrepreneurs. Let's give them the knowledge they need to be successful. There is value in high school business education.

Makes you wonder who else has jumped the shark.

Photo courtesey Stack Overflow

August 3, 2009

Are You A Workaholic?

Most teachers are goal-oriented people. Most are either guardians or idealists. We are not in this profession for the money; we have a deeply rooted dedication to our students and our jobs.

I've been doing some reflecting lately and have discovered that I just might be one of those workaholics we're always reading about. I'm really excited for the upcoming school year. I've been planning, updating, and organizing. I started the summer starting a software company that fell through. Even in my time off, I'm productive.

But I do it because I like my work. In Rise of the Creative Class, Richard Florida argues that workers today choose careers for different reasons than we did a generation ago. Money is no longer the biggest motivator. People in the creative professions choose jobs that they intrinsically enjoy. Creativity does not always happen from 9 to 5. Creative workers are churning ideas even on their time off. Creative people like their work.

I've always been goal oriented. I've accomplished a lot of difficult goals, including getting my pilot's license and starting a business. My life, to a large extent, is based around projects. If I'm not doing something productive, I don't quite feel alive. But I do know how to relax – on the weekends, all of my projects are suspended and I'm out enjoying the weather, my friends, and my family. Also, not all of my projects are work related.

That I'm always working on projects and goals, and that a lot of these projects and goals are related to my career, might be a symptom of workaholism. Or it might just mean that I'm doing what I love. I'm not sure.

August 1, 2009

Computer Science: Which Language To Teach?

Arguing about which language to teach is a favorite pastime of computer science teachers. This is one of those religious wars that will never go away, like Mac/Windows. It should be a language that:
  • Teaches fundamental object oriented programming concepts
  • Teaches functional programming concepts
  • Teaches algorithms and data structures
    Allows students to get results fairly quickly (with a relatively shallow learning curve)
  • Is widely used in industry
  • Allows students to create graphical user interfaces fairly quickly


This has been extensively discussed elsewhere on the web, and experts have offered varying opinions:

C/C++

Many modern languages derive their syntax from C, so learning C first makes it easy to learn other languages later. C supports pointers, recursion, and data structures, and introduces students to memory management. Higher level languages abstract away these concepts, but it's still important that students understand them. C++ is fully object oriented. Both are still widely used. The main benefit of using these languages is that they introduce students to core computer science topics.

On the con side, they have a steep learning curve and a cumbersome syntax. They are low level languages, which means that it take much more effort to create a working solution, such as a full featured GUI app.

Java

Java is fully object oriented and is a great language to choose if your goal is to teach OOP. It has some vocal critics who argue that students miss out on learning functional programming. It's platform independent and used all over the place. This is the language used in the AP Computer Science curriculum. I think it's a great place to start. Its major weakness is that creating GUI applications is very difficult in Java.

Another great thing about Java is that it is free and open source. There are many free editors and IDEs available as well.

C# .NET

Microsoft Visual Studio makes it easy for developers to create event-driven GUI applications. The language C# is very similar to Java. It's very widely used in the commercial sector. This would probably be my first choice, because it includes all of the benefits of Java with an easy to use GUI creator. The major downside is that Microsoft charges big licensing fees to use it. Some teachers don't like the fact that Visual Studio almost makes coding too easy, the way it automatically corrects errors as you type and gives you syntax hints along the way.

There are ways to code C# for free with the SharpEdit tool and Mono, but they're more cumbersome that Visual Studio

Visual Basic .NET

VB uses the same development environment as C# but has a different syntax which some say is easier for beginners to understand. However, learning Visual Basic first will make it more difficult for students to transition to languages with a syntax derived from C later.

PHP

PHP has many critics too, but I think it's a good choice, especially since version 5, which is fully object oriented. There are several reasons I don't use it in my classes:
  • It requires a deep knowledge of XHTML, which my students don't have.
  • The only types of programs it allows you to make are web apps (unless you also learn GTK)
  • Debugging is difficult
  • A semester course would give students just enough knowledge to create web apps but not enough knowledge to make SECURE web apps. I don't want students to hang themselves.

Python

I don't know much about Python other than the fact that it is becoming increasingly popular in high schools and universities.

Others: Ruby, Scheme, Haskell, Delphi/Pascal, Assembler, LISP

These languages have some great strengths but are missing a few bullet points on what I consider to be essential characteristics of a first programming language. They are either difficult to use, not used in industry, or have very limited scopes.

Conclusions

For now, Java is a great choice, but it will undoubtedly be displaced by something else in the future. C# has a lot of strengths, but it's expensive.