Learn Object Oriented Programming

Michael Crawford
crawford@goingware.com

Starting in January I'm teaching two courses at San Jose State University Professional Development in the Applied Computing series

If you live in Silicon Valley, and you're interested in getting into programming, or if you are a programmer but don't know OOP, this may be for you.

The first class, Fundamentals of Object Oriented Programming, teaches what I like to think of as the esthetics of object oriented programming - how to design your programs so they're easy to write, debug and modify, and work well.

Lots of people view OOP as a panacea but in practice it often works very poorly because OOP still lets you write bad code if you're not careful about it.

This class is taught in Java, and the lab machines run Windows, but what you learn will apply to any object oriented language and you're welcome to use whatever OS you like to do your homework.

There are classes taught by others on such subjects as the Java language itself, database access with Java and so on, and then you may be interested in my Object Oriented Programming Project.

The class meets only a few times but the project stretches out over several weeks. You'll be expected to write a real, useful program with my guidance. I have the hope you could show this program to potential employers as a demonstration of your skill - one of the things they always want in a new employee is a demonstration that you've shipped a commercial quality product.

Here's the blurb about me from the catalog:

Michael D. Crawford of GoingWare is a software consultant with 10 years experience as a programmer. He has a BA in Physics from UC Santa Cruz. He has compiled a wide variety of programming, from particle physics data analysis at CERN and operating system debugging at Apple Computer to consumer products at Working Software. He programs in a variety of languages, from assembler to C and the C++, SmallTalk and Java object oriented languages. His most recent interest is the new Be operating system, an object-oriented multimedia operating system.