Not too easy. Not too difficult.
If you have a basic knowledge of Java (from AP Comp Sci) and/or C++, or any other similar language (C,C#, etc.), then you should be fine for the first 6 weeks. You could essentially read the textbook, although there are some minute differences from Java and C that you should be aware of. In the seventh week, he starts talking about C strings and pointers, which you should try to go to lecture to learn more about (unless you already have knowledge of them). Overall, Smallberg's projects are very elegant. They will take time to finish so make sure you don't procrastinate. Always test your code, and make sure you read the project specs before, during, and after writing your code. One little error can turn your 100% into a 50%! The midterms are fine. If you can think logically and know the material, you can finish in half the time allotted (he gives you an hour), and have ample time to check your answers. Overall, Smallberg is great.
If you've taken AP Comp Sci, you would just be learning everything you learned in that class in the first 6 weeks of this course, except in C++. There are some small differences (including the header) that you should be aware of, but if you bought the textbook, you should be fine in knowing those small differences. Start going to lecture around the end of 6th week, beginning of 7th week. There are some new things he starts to go over, such as C strings. Also know that CS 32 includes sorting and other algorithms, which are probably not going to be talked about in CS 31.
Hours per week:
Advice for students:
1) Don't procrastinate! 2) Read over the project specs very carefully! 3) Turn in your project well before the deadline, even if it's not finished. If you fail to make the deadline, at least you'll have something and will get partial credit.