Problem sets will be generally posted every Friday. Some of
the problems in each set will be covered in the following week's
recitation. *Other problems, not in the posted sets, may also be covered
during recitation.*

There are generally three categories of problems in a problem set: unmarked ones which are basically straightforward, those marked * that require some thought, and those marked ** that require considerably more thought.

At a minimum, you must be able to do all the unmarked problems in order to pass the class. And you must do reasonably well with the * problems in order to get a satisfactory grade.

The best way to approach the problem sets is to do the unmarked ones by yourself. For the *'d ones, spend sufficient time working on them by yourself (remember, you must be able to do them reasonably well) and then work with a friend to verify your answer or exchange ideas if need be. For the **'d ones, spend some time thinking through possibilities, and then definitely discuss ideas with a friend.

For each problem set, solutions to selected problems will be posted after you have had sufficient time to work through the problems on your own. However, problems covered in recitations that are not in the problem sets will NOT have solutions posted. For that, you will need to attend recitation.

- Fri, Mar 9: PS 8 - Binary Tree, Huffman Coding
- Fri, Mar 2: PS 7 - AVL Tree - Solution posted Fri, Mar 9

- Fri, Feb 23: PS 6 - Binary Search Tree - Solution posted Fri, Mar 2
- Fri, Feb 16: PS 5 - Stack, Array List, Queue - Solution posted Fri, Feb 23
- Fri, Feb 9: PS 4 - Sequential Search, Binary Search - Solution posted Fri, Feb 16
- Fri, Feb 2: PS 3 - Linked Lists, Recursion - Solution posted Fri, Feb 9

- Fri, Jan 26: PS 2 - Linked Lists - Solution posted Fri, Feb 2
- Fri, Jan 19: PS 1 - Big O - Solution posted Fri, Jan 26