CSE 142: Computing at Home or Work


If you plan to use a computer at work, be sure that your employer knows and approves. Some employers have a policy against the use of company equipment or company time for personal use, but may make an exception for education.

Should You Try to Use Your Home Machine?

If you own a home computer, you're in luck, and if you're about to buy a home machine, you couldn't be luckier.  Students in previous 142/143 classes who have used their own machines have been very enthusiastic about their experiences.  In a survey of those students in 142 taken just after the on-campus lab (the IPL) had opened, 75% said they thought working at home was "much better" than working in the lab (94% in all said it was better or no worse), 6% said it was a little worse, and no one said it was much worse.  Among the advantages cited were more flexible working hours, no time wasted waiting for a machine, a more comfortable environment (e.g., food and music), the ability to take breaks without losing use of the machine, and no need to travel to/from the lab.

If you're already pretty familiar with your home computer, you shouldn't have much trouble doing most or all of your work using it. If you haven't used your computer much, or are just about to buy a computer for the first time, you'll have a bit more to learn (but much of that you'd have to learn if you used the on-campus IPL as well). No matter what your situation is, we're interested in helping you make use of your home system.

How hard is it to use your home computer?  Well, I'll try to explain this by analogy.  Imagine that we're talking about cars.  In this analogy, the car is the computer, and the car radio is the C/C++ compiler.  To get through the course, you have to use the car radio.  What can go wrong?  Well, your car may not have a radio at all.  In that case, you have to decide whether or not you want to buy one.  (This is analogous to having a computer, but not having a C/C+ + compiler.)  If you don't have a radio and don't want to buy one, case closed; you can't do your work at home.

If your car does have a radio, you're basically all set.  The major problem is that the information you get from us is written for the specific radio found in the cars we supply with the course and your radio might operate a bit differently.  For example, you might see an instruction in an assignment that tells you how to tune to a specific radio station.  That instruction might go something like, "Push the button labeled 'scan' repeatedly until the display shows 90.3."  Your radio may not have a button named 'scan,' but it certainly has some way to tune to 90.3, and most likely that way is performing a 'scan' by hitting a button with a somewhat different label.  Once you figure out how to do this, you'll have no trouble following the directions in future homework write-ups, but you'll have to put in a little effort initially than if you were using the radio the instructions were written for.

Of course, there are some exceptions.  If your car is very old, it might have an AM only radio, so you can forget tuning to an FM station on it.  (And, stretching the analogy a little, it might be impossible to buy a new radio that can be installed in your very old dashboard.)

Finally, it should be easy to see why you're in great shape if you don't have a car but are about to get one: you can simply buy a car with a radio that is identical to the one the homework instructions talk about. (The radio, i.e. the compiler, we use is no more expensive than any others, so if you've decided to spend enough to get a computer and compiler, getting ones like the ones we use won't limit your choices in any significant way.) Unfortunately, unlike car radios, compilers do not come factory installed, so you will have to do the installation work.  The company selling the compiler tries to make this as easy as possible;  after all, their customers are people like you, and they wouldn't be in business long if installing their product was too hard for most people.  However, you might scrape a few knuckles getting the software installed (or it might go without a hitch).

In light of all this, you should consider doing the first assignment in our lab, so that you can gain some familiarity with exactly what our homework instructions are talking about (and so you have a graceful fallback "just in case").  And always allow yourself ample time for final testing, debugging, and electronic turn-in, in case bugs or incompatibilities show up at that stage.

What Kinds of Computers Will Work?

Well, the simple answer is "almost anything." That's a correct answer, in the sense that a very experienced user will be able to make use of almost any computer we can imagine you'd have.  However, the less experience you have, the better it is (in terms of what's required for this class) to have a machine that's close to what we use in the on-campus IPL, which are PCs running Windows NT.  The compiler on those machines is Microsoft Visual C++ 6.0, which is part of Microsoft Visual Studio 6.0.  Two World Wide Web browsers are available: recent versions of Netscape Communicator 4 and Internet Explorer 4

The easiest machines to deal with are PCs running Windows 95, 98, 2000, or NT. If you're buying a new machine, almost any machine you can get will do. Make sure you get a modem! If you have an older machine but no compiler, you may find that you need a CD-ROM drive to load the compiler, or more RAM than you have to run it, or more disk space than you have to install it:

If you have a PC running Unix (of any variety), it's virtually guaranteed that you're what we consider an expert user.  We won't attempt to go into the details of that system here, as you undoubtedly know what you're up to.

If you have a Macintosh, you should be okay, assuming you have or can find a compiler that runs on it.  For newer Macs (ones with PowerPC processors), this won't be a problem, but for older Macs (ones using 680x0 processors) you'll have the same kind of problem as people with older PCs.  In any case, you need again to check the compiler's packaging to see how much disk and RAM it takes (and whether you need a CD-ROM drive to install it), and compare these to what your system has.  Students have generally been happy with CodeWarrior Professional, Release 4 or 5.

Are There Any Pitfalls?

The vast majority of students working at home do so without any significant difficulty. There are, however, between 5 and 10 students out of 600 each quarter who experience some trouble. This trouble usually falls into one of two categories:

PC Compilers

One of the most frequently asked questions we get is for a recommendation about which compiler to buy to use at home for CSE142. Simply put, you will get the most help from the staff and the maximum number of other students if you use the same software that is used in the IPL: Microsoft Visual C/C++ Version 6.0, Professional Edition.

MSVC++ 6.0 is available for a student price of about $95.00. Besides the Professional Edition, two other versions of MSVC are available. First, there is the Learning Version. This version sells for about $50 and will let you do most of the things that the Professional edition will do for about $50 less. The things that it will not let you do include:

If you honestly feel that you will only use this compiler for the convenience of working at home on projects for CSE 142/3, choosing the Leaning Edition might make some sense. However, if you go on in computer science or intend to do further programming, you may well need some or all of the features that you would get with the Professional Edition. (Of course, new versions come out every year or two, so you might be best off getting the cheaper version now and buying the more complete version at some future time.)

The other version that you possibly do not need is the Enterprise Edition. While it will work just fine for this class, it includes support for a lot of other kinds of programming (database connectivity, client-server, J++, etc.). It costs about $257.00, so save your money unless you understand what you're buying and know that you'll use the extra features.

Details on all three of these compilers can be found from the Microsoft Development Tools Web site.

The other compiler most commonly found on PCs is from Borland.  There are a number of versions of this compiler that you might have.  (New versions of all compilers come out every year or two.)  If you already have a Borland compiler, you should be able to use it.  However, because we develop our skeleton code using the Microsoft compiler, if you're relatively inexperienced on computers you will be somewhat better off buying MSVC if you don't already own a compiler.  (If you have a little experience, though, and you're prepared for the occasional hiccup getting the skeletons to run, choosing between the Borland and Microsoft compilers is a matter of taste;  both have their proponents in industry.)

To date, students have not had much luck with Symantec's C++ product for Windows. We'd suggest you avoid it, unless you already own it.

Whatever you buy, our strongly held opinion is that a first-rate symbolic debugger will be extremely valuable for this class and any subsequent work you do. For the later graphics assignments you will find it will be impossible to use DOS-based products and difficult or impossible to use older versions of the Borland and Microsoft compilers (Borland prior to version 4.0 and Microsoft prior to version 1.5).

Mac Compilers

Mac users should make sure they get a C/C++ compiler that supports ANSI standard C.

CodeWarrior Professional Release 4 or 5, sold by Metrowerks, includes all the needed pieces. It is available at the University Book Store with a student price of about $120.

Other Requirements

To be able to work outside the on-campus lab, you need to:

Stay Connected

No matter where you compute, it is required that you keep in touch (a) with what is happening in class, and (b) with announcements made through the cousrse mailing lists and newsgroups. See the email and discussion group page for details.

For (a), come to lecture and quiz section. If you have to miss one or two, check the online lecture notes and ask a friend for a synopsis.

For (b), various approaches are possible:

  1. If you have a computer and appropriate high-speed modem at home, you can get an Internet ("IP") connection by dialing into the UW modem pool. Then you could use your web browser to access the class Web, whose "URL" is: /education/courses/142 (or …/143).
  2. UW Computing and Communications provides excellent information on Connecting Your Off-Campus Computer to the Internet for all supported platforms, including how to obtain, install, and operate the necessary software.  (The $10 Internet Starter Kit includes Netscape.)

File Transfer

For many of the assignments we will provide files to you (sample code, a skeleton of the solution, test data, etc.) and expect you to provide files to us with your solutions. To fetch our files onto your computer, the simplest thing is to click on them using your web browser. If the file is displayed, you can save the file to your disk by pulling down the File menu and choosing Save. You can often save the file directly to your disk by control-clicking it, which brings up a File Save As dialog box.

To turn in files, you can do the inverse: use your browser to upload the files from your home machine, or bring a floppy written on your home machine to the IPL to submit from a lab machine.  (Note that if you have a  Macintosh bringing in a floppy to the lab will not work unless you format the floppy for use on a PC.  Even then, this will much less convenient than getting Netscape upload to work.)