The University of Washington teaches a fairly traditional CS1/CS2 course combination called CSE142/CSE143 that is similar to what AP/CS has called A and B. We teach them in a large lecture format with 250 to 450 students in a single lecture hall meeting three times a week and a discussion section with 20 students each. CSE142 has one section a week and CSE143 has two sections a week. Sections provide the small-group experience where students can ask questions and work on problems.
Intro enrollment at UW has increased significantly in recent years and has now reached record levels. Approximately 1,650 students take CSE142 each year and approximately 1,050 students take CSE143 each year. Approximately 25% of the undergraduates at UW take CSE142. We have been attracting more women to our courses in recent years. CSE142 is now up to 30% women and CSE143 is up to 24% women. Historical charts of intro enrollment can be found here.
When you first go to the message board, you will be required to set up a user id. You should select the ProtectNetwork option and create an id for yourself. Be sure to email this id to Stuart so that he can add you to the list of authorized users for the message board (just your user name, not your password). Once you've been added to the list of authorized users, you will be able to access the message board. This should be helpful for ongoing questions as well as an archive of old questions.
When you go to the message board, you can click on "Profile" to edit your profile information. It will ask you for your first and last name. It will also give you an option to set "Notifications". I suggest that you request "Daily Digest", which sends you a daily summary of activity. That way you won't have to check the board. If some new topic is being discussed, you will get an email message about it and you'll know to check out the board. If the board is quiet, you'll get no notifications and you can just ignore it.
| Week | Major topics | Section | Assigned | Key | Criteria |
|---|---|---|---|---|---|
| 1 | println, static methods | section #1 | assignment #1: Song | Song.java | criteria |
| 2 | variables, expressions, for loops | section #2 | assignment #2: Rocketship | DrawRocket.java | criteria |
| 3 | parameters, graphics | section #3 | assignment #3: Cafe Wall | CafeWall.java | criteria |
| 4 | Scanner, if/else, return | section #4 | assignment #4: Admissions | Admit.java | criteria |
| 5 | while loops, random, assertions | section #5 | assignment #5: Guessing Game | Guess.java | criteria |
| 6 | midterm review | section #6 | midterm | midterm key | criteria |
| 7 | file processing | section #7 | assignment #6: Baby Names | Names.java | criteria |
| 8 | arrays | section #8 | assignment #7: Personality Test | Personality.java | criteria |
| 9 | defining classes | section #9 | assignment #8: Critters | Lion.java Tiger.java Bear.java |
|
| 10 | review for final | section #10 | final exam | final key | criteria |
When we evaluate courses for transfer credit, we generally require that we see a nontrivial programming assignment for each of the following topics:
This list should be thought of as a bare minimum. We would also expect to see assignments that require students to define their own classes and assignments that require them to be clients of built-in Java data structures (maps, sets, lists).
In our grading, we emphasize programming style heavily. We ask that instructors do the same in grading homework for dual credit. In particular, assignments should be graded roughly 50% from external correctness (it seems to behave properly) and roughly 50% from internal correctness and style. Internal correctness has to do with satisfying various constraints that the assignment has placed on them. For example, you might have required them to throw exceptions or to meet a certain big-Oh complexity. Style has to do with good programming practices: good comments, encapsulated objects (private fields), no extraneous fields, using interfaces for types when possible, avoiding redundant code, writing concise boolean expressions, and so on.
Below are some style resources that we make available to our students:
Ideally homework scores will average in the 85 to 90 percent range. If you are having trouble reaching that goal, please contact Stuart to discuss the situation. We won't force this grading scale on a teacher who has a particularly strong group of students, but we would like to try to achieve this consistency across schools if possible.
Below are two examples of graded homework from CSE143: