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 (cse143@uw.edu), for all registration issues such as adding the course or changing sections. He will be happy to help you.

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.
  • 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 -2 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 check out the following http://www.cs.washington.edu/students/ugrad/tutoring.

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). You will not be elligible to submit section homework but you have several "free" misses throughout the quarter. 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 and you can use the granenator.

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.

At the end of the quarter:

Q: I don't like my grade. Why is it so low?

A: See the syllabus for information about how grades are calculated. Generally grades are actually shifted upward from the promised ranges on the syllabus, so it could be worse.

Q: I know of another student who got only (small amount) higher percentage than I did, and they get a (higher grade than mine)! Please raise my grade.

A: We're sorry; the cut-off points between grades have to go somewhere. Each grade range has a highest and lowest student. Sometimes that student ends up being you. We do not choose cut-off points with a goal of including or excluding any particular student; it's just the way the numbers worked out in this particular case.

Q: What can I do to raise my grade? Can I do some extra credit work now, maybe? Or re-submit a past homework assignment to earn some points back?

A: Unless we made some kind of mathematical or clerical mistake, your grade is what it is. We are not willing to let you somehow change it after the quarter's over by doing more work.

Q: I would like you to re-grade my final exam, my last several homeworks, my midterm, etc. in the hopes of raising my grade. How do I go about doing that?

A: We do re-grade final exams, and you can ask for a re-evaluation of a homework assignment within 2 weeks of the date you got back your score on it. But you should do this only if you genuinely think something specific was mis-graded. If you submit for a regrade saying things like, "I am asking for a regrade because I really need a 2.0," or, "I just want to see if I can get any more points back," you are not likely to be considered very seriously. Frivolous regrade requests do not lead to a happy regrader. Recall that regrades have the capability to -lower- your score if any missed deductions are discovered.

Q: Why didn't I pass the course? I turned in most/all of the homework, I took both exams, and I showed up to class most of the time. Shouldn't that be enough to pass?

A: Passing the course is based on getting an overall percentage above some threshold that is set each quarter, generally in the low 50s. If you do not attain that percentage, you do not pass the course, even if you did come to class and did submit the assignments. Our grades are not given solely based on attendance or participation.

Q: Can I meet with you in person to discuss my grade? This is very important.

A: Yes, you can meet with us. But not until next quarter, when we're back in our offices. Until then, we can only communicate with you by email. If something is wrong with your grade, we'll make sure it gets fixed. Grades can be changed after submission if necessary, even in the following quarter. But we do not come in to campus during the between-quarter break to meet with students who are upset about their grades. We will have to resolve the matter by email or by a meeting during the next quarter.

Q: What grade do I need to get in this course to be admitted into the CSE major?

A: Whether or not you would be admitted to CSE depends on many factors, including your CSE 142/143 grades as well as several other course grades and other aspects of your application and background. There is no fixed mark that is needed or expected, but recent application cycles have generally admitted students who earned grades of around 3.4-3.5 or higher in CSE 143. See these links for more info about our admissions process.

Q: If I didn't get a high enough grade or don't think I'll get into the CSE major, is there any way that I can still study computer science in my future?

A: First of all, it is possible that you could still get into our major by retaking courses or taking further courses to improve your academic record. Some students underestimate their chances of success at being admitted into the department, and we certainly don't want to discourage you. Consider emailing our undergraduate advisors to ask about your possible options for application to the major and/or chances of being admitted.

If our major is not an option for you for whatever reason, there are lots of ways to study computing and computer science outside of the UW CSE department. We don't currently offer a minor in CSE (though we may in the future), but there are several available courses for non-CSE majors to take if you want to learn more about computer science. You could consider a major at UW outside of CSE that incorporates computing, such as the iSchool (INFO), Applied and Computational Math Sciences (ACMS), Digital Art and Experimental Media (DXARTS), and more. If you truly want to study computer science itself, you could choose to do so by enrolling in CSS courses at UW Bothell or UW Tacoma, both of which have strong programs in our field; or you might consider enrolling in computing courses at one of the many community colleges in the area.