UW in the High School

This page will collect together various resources for the teachers involved in the UW in the High School program. The faculty liason is Stuart Reges.

Quick Links

Intro Courses at UW

The Computer Science & Engineering Department at the University of Washington is consistently rated in the top 10 departments by the Computing Research Association, US News & World Report, and GRE Guide. The department has produced several videos featuring our students and faculty that address the question of Why major in CS?".

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.

Message Board

We will be using a message board to collect together common questions and to discuss issues that we need to resolve as a group. You can reach the message board as https://catalysttools.washington.edu/gopost/board/reges/11908/.

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.

CSE142 Course

CSE142 is the CS1 course at the University of Washington and is very similar to AP/CS A. Stuart last taught CSE142 in Winter of 2009. The main class page can be found here. Of particular interest is the "Calendar/Lecture" link that includes sample programs and lecture slides and the "Assignments" link that includes all assignment resources. Below is an overview of the course from an instructor point of view (most of these resources are not publicly available):

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

CSE143 Course

CSE142 is the CS2 course at the University of Washington and is very similar to what used to be the B part of AP/CS AB. Stuart last taught CSE143 in Spring of 2009. The main class page can be found here. Of particular interest is the "Calendar/Lecture" link that includes sample programs and lecture notes and the "Assignments" link that includes all assignment resources. Below is an overview of the course from an instructor point of view (most of these resources are not publicly available):

Week Major topics Tue Section Thu Section Assigned Key Criteria
1 review of arrays, classes arrays binary search, ArrayIntList assignment #1: SortedIntList SortedIntList.java criteria
2 exceptions, iterators, Comparable iterators Comparable assignment #2: LetterInventory LetterInventory.java criteria
3 linked lists linked list before/after easy linked list assignment #3: Assassin AssassinManager.java criteria
4 stacks, queues, interfaces hard linked list stacks, queues assignment #4: Sieve Sieve.java criteria
5 recursion, Maps recursive tracing recursive programming assignment #5: Random Sentence Generator GrammarSolver.java criteria
6 midterm review inheritance midterm review midterm midterm key criteria
7 recursive backtracking TA's choice backtracking assignment #6: Anagrams AnagramSolver.java criteria
8 binary trees easy binary tree hard binary tree assignment #7: 20 Questions QuestionNode.java
QuestionTree.java
criteria
9 Huffman, inheritance inheritance to extend functionality generic binary search tree assignment #8: Huffman
Huffman bonus
HuffmanNode.java
HuffmanTree.java
HuffmanTree2.java
criteria
10 hashing linked list review final exam review final exam final key criteria

AP/CS AB Course

The College Board no longer offers the exam, but we have a detailed course description in the form of the 2008 acorn booklet. The default assumption should be that this is the course we are offering. It is close enough to the UW 142/143 courses that we are happy to give UW credit for them.

Homework Grading for AB Option

In the UW courses, homework counts for 40% of the grade. The homework is where 90% of the learning takes place, but we make it worth just 40% because we have greater confidence that we can consistently grade students through exams. In a similar manner, we don't want to dictate in great detail what programming assignments instructors should give and how they should be graded. As a result, homework will be worth only 20% of the computed grade for students in the dual credit option. Instructors should stress with their students that even though the homework is worth only 20%, it is essential to complete the homework to prepare to do well on the exams.

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:


Stuart Reges
Last modified: Mon Jun 29 13:09:03 PDT 2009