CSE 142/143 Frequently Asked Questions (FAQ)

At the start of the quarter:

Q: I have some prior programming experience, but I am not sure whether it's enough. Should I be in CSE 142 or 143?

A: You might be ready for CSE 143 if you know about the following topics in Java or a similar language:

  • basic programming: variables, parameters, loops, if/else, etc.
  • arrays
  • reading data from files
  • defining classes and objects

To help you decide, look at past quarters' CSE 142 and CSE 143 web sites. Look at the old 142 page's midterm and final exam. Would you do well on them? Look at CSE 143's first one or two assignments. Do they look fairly doable with your current experience?

If you feel confident after this investigation, you should consider taking CSE 143. If you're still not sure, you can email further questions to the instructor or contact our helpful academic advisors at ugrad-advisor@cs.washington.edu.

Q: What can I do to help make sure I'm ready for CSE 143?

A: There are lots of things you can do. You can go to my most recent CSE 142 web site and read the slides and look over the lecture programs to get a feel for what we are doing lately in 142. The web site also has our sample midterm and final exams, which you can look at to see the kinds of questions we asked there. You could even try doing some of the homework assignments to see if you can still solve them.

You could also buy the course textbook, Building Java Programs, and read roughly chapters 1-9 to refresh what we do in 142. Or you could work on some smaller practice Java problems (similar to test questions or discussion section exercises) on our Practice-It web site.

Q: The course (or the section I want) appears to be full. How do I add CSE 142/143 to my schedule? How do I change sections?

A: Contact our course administrator, Pim Lustig (pl@cs.washington.edu), for all registration issues such as adding the course or changing sections. He will be happy to help you.

Q: I'd like to buy a used textbook, and I found one online, but it has a different ISBN. Is that still the right textbook? Is it okay to buy that textbook anyway?

A: There have been four ISBNs for our Building Java Programs textbook. Two of these are considered acceptable / recommended, and two are not:

  • ISBN 0536240167: 1st edition of the textbook, with an access key to our online video resources (the videos cover CSE 142 material from Chapters 1-8). Highly recommended.
  • ISBN 0321382838: 1st edition of the textbook. No access key provided. Highly recommended.
  • ISBN 0321500024, 0536336555: Prior "Custom" editions of the textbook. These were partially completed versions of the book that were used only at UW while the book was being written. These versions of the book are missing major sections, contain fewer practice problems, and the section numbers don't match up with the real 1st edition, so it may be harder for you to figure out which section corresponds to the assigned reading given in class. Not recommended.

During the quarter:

Q: I need help with my homework! What should I do?

A: There are lots of resources available to help you. For example:

  • There is probably someone in the IPL today, or maybe the instructor has office hours. If so, go see them.
  • Check the message board; your question may have been answered there.
  • Read the relevant chapters and sections of the textbook, especially the large "Case Study" example at the end of the relevant chapter. The case study programs are larger examples, created step-by-step, that bear a lot of similarity to each assignment.
  • Look at the in-class lecture examples and slides.
  • Look at this week's section handout problems and their solutions.
  • Try solving some smaller problems first to understand the relevant concepts, such as the ones at the ends of the textbook chapters or in the Practice-It! tool.
  • Send us a message on AIM, if available. (AIM is better for small questions; anything that involves looking at code is better done by email.)
  • Start early! We get swamped the day assignments are due.
  • Don't panic. You have late days, and even if you run out, it is only -1 point for each day late.

Q: The IPL and other resources are not enough! I need more help, such as a personal tutor. Can I get this kind of help?

A: In general, no. We in CSE do not provide individual private tutoring; there are too many students and not enough resources. We also feel that you must demonstrate your own ability and not be walked through substantial parts of the course by a private tutor. We also do not permit you to be regularly tutored "on the side" by your CSE 142/143 TA, whether or not the TA is being paid to do so.

There are some other services on campus do provide limited individual tutoring to certain students. You may want to check out links such as the following:

Q: The homework in this class is very difficult and takes me a lot of time to finish. I see other students in the class who have past programming experience, and they say the programs are easy for them. Is it hopeless for me? Do I need to be one of those people to do well in this course?

A: There's a certain "tortoise and hare" phenomenon that occurs a lot in 142/143. There is a group of hotshots who come in with past experience at programming. We allow those people to go straight to 143 if they want to. But some of them stay in 142. This can worry the other students because there are people about who seem to already know all of the course material. This has the danger of potentially ruining the curve of an exam or pushing the expectations of the instructor/TAs too high.

One thing we have seen many times over the years is that actually a lot of the "hares" with past experience don't do as well as they thought they would. Certainly, some hares finish at the top of the class rankings. But some of them are sloppy and careless in their programming because they don't think they need to read the directions carefully. They very quickly finish and submit a program that solves the overall problem, but maybe they don't bother to read the homework spec to match the intended programming style. Note that we explicitly mark down students who turn in programs that use "advanced material" that has not yet been taught in class. Also a careless student is less likely to try out all of the provided test cases or perform his own testing to make sure that the program really works for all cases before turning it in.

Another thing that often happens to "hares" is that their past knowledge only carries them so far. They probably know most of CSE 142's material pretty well, but some of it toward the end (arrays and objects) they may not. And most hares haven't really seen much of the CSE 143 material at all, so their advantage is largely negated there. 143 is a more level playing field in this regard because most self-taught or hobbyist programmer types have not bothered to teach themselves the particular material that 143 covers. 143 is a place where the former tortoise may truly start to outpace the hare.

This is a very challenging course, and there are some folks in the room that can make the average student feel uneasy. But we try our best to make it so that it is possible to succeed in the course even if you have never seen this material before. And we also put lots of little pitfalls that could still trip up a person who has seen it all before. :-) It's important to focus on how you are doing and be pleased with your own accomplishments in the course, instead of trying to compare to other students. If you're learning a lot and are able to solve the assignments (even if it takes a long time) and get decent scores on them, then you are doing great so far. And the further you keep going in computer science and studying, the more this issue fades away and the more you become the expert.

Q: I have a scheduling conflict and need to miss a lecture or section on a particular day. Is this okay? How can I find out what I missed?

A: Lecture and section attendance is optional, so you may miss a lecture or section without penalty (so long as no exam takes place on that day). To find out what you missed, look at the Lectures section of the course web site. All slides and program code from lecture will be posted there. Section handouts will be given out only in section, so you'll have to attend if you want a copy.

Q: I got a low score on homework and/or exams, and I'm worried about doing poorly in the course. How much impact will my past low score(s) have on my grade? What can I do?

A: You can compute for yourself the impact of your past scores on your grade. The grading weights are listed on the course syllabus.

If you want to raise your grade, the best way is to do well on future assignments and exams. We generally do not offer much extra credit nor any way to directly make up or replace low scores on past assignments or exams.

Don't forget that the final exam usually has a higher weight than the midterm, so there are still plenty of points left to be earned. Consult the grade formulas on the syllabus to figure out whether your desired grade is still attainable.

If you don't think you will be able to raise your grade enough, you may need to consider dropping the course or switching to a Satisfactory/Not Satisfactory (S/NS) option. See UW's Grading System web page for more information about grades, S/NS, and other options.

Q: When is the last date to drop the course? When is the last date to switch to Satisfactory/Not Satisfactory (S/NS)?

A: This information can be found at the UW Academic Calendar for this year.