You might be ready for CSE 143 if you know about the following topics in Java or a similar language:
To help you decide, look at past quarters' CSE 142 and CSE 143 web sites. Look at the old 142 midterm and final exams. 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.
There are lots of things you can do. You can go to the 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.
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.
There are lots of resources available to help you. For example:
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'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.
Lecture attendance is optional, so you may miss a lecture 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.
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.
This information can be found at the UW Academic Calendar for this year.
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.
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.
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.
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.
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 applicant review process and CSE admission requirements.
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.