Archive for the ‘Personal’ Category

New Car

September 30, 2007

Between not being able to purchase anything I couldn’t carry home and increasing annoyance with mediocre public transportation, I finally bit the bullet. 15 months in Cupertino without a car were enough. Yesterday morning, I picked up my new Honda Civic Hybrid with Navigation.

It feels surprisingly good just driving around. I had expected it to be a bit strange with so much time out of the driver seat, but that’s not been the case. And to the extent that I can be giddy, I am giddy about my newfound ability to get from place-to-place with ease. Trips that used to take over an hour by bus are now measured in minutes.

I’m also loving the navigation system. I’m pretty good with directions, but the navigation system lets you turn off your brain. Plus, I’m a bit of a statistics freak when it comes to traveling. I used the lap timer on my watch to keep track of travel time vs. pit stop time on family trips. Between the navigation and the hybrid statistics, that itch is scratched.

What’s Wrong with Computer Science Curricula

September 3, 2006

Philip Greenspun writes about What’s wrong with the standard undergraduate computer science curriculum. He makes good points, based on my experience in such a curriculum.

The new graduate has had four years of experience in tackling well-defined clearly specified problems that have been broken down into small tasks.

Yes. Assignments requiring any real thought or design were rare. I feel fortunate that I pursued my own projects – I know for certain that they were instrumental in my being hired into my current job. What always startled me was that my peers were satisfied limiting themselves to their schoolwork. I would expect more passion about the field to which you are devoting years of your life.

Graduates haven’t done much group work. Universities spend $billions on facilities so that students can sleep together; $0 on facilities so that students can work together.

We did a fair amount of group work, but in general it was group work for the sake of group work. It was rare for an assignment to actually require true group work. The exceptions were some of my better college experiences.

Lack of experience with user interface design and testing and no experience handling real users’ suggestions, complaints.

It is very easy to go through college without doing any user interface programming. I had only one course where it was required, and that was a graduate-level technical elective. Even there, the interface was of very secondary concern.

Our students should be able to study 48 weeks per year, …, and finish their bachelor’s degree in 30-36 calendar months

I would hate this personally. Graduates today will be working for 40 or 50 years – why compress youth even further? One of the best parts of college was that it did not take up all of my time.

I think a reasonable addition to the curriculum would be to replace some courses with extensive projects, one for each year. Together, the projects would provide a number of different experiences.

In year one, the student would choose a relatively simple project with the assistance of an advisor. It should be sufficiently complicated as to take the full two semesters to complete, but not so complex as to be overwhelming.

In year two, the student would take someone else’s project from year one and make a version 2.0. Ideally, the project should be in a different domain from their own original project. This would give the student experience in maintenance programming and dealing with other people’s code.

Years three and four would repeat this pattern, except that the students would work in small teams. The projects would be sufficiently complex that if students did not divide work efficiently, they would fail.

As best as possible, the combination of the four projects should cover a wide area of domains. User interface, networking, databases, security, testing, software design, maintenance, algorithms, data structures, and others could all easily be incorporated. Other skills are naturally developed in this model. Years three and four would require teamwork, while writing about and presenting their projects would develop communication skills.

Finally, all students would leave college having completed four sizable projects in different domains and likely different programming languages. Students should retain ownership of their projects, in case any have market potential.

Cut Own Hair

August 31, 2006

I gave myself a haircut today. I’d not done it myself before, but decided to give it a shot. I was going to enumerate the most difficult parts, but realized the whole thing was pretty difficult… For a first attempt, I think it turned out pretty well. It’s not 100% even, but it is close enough.