*correctness*of a program was our primary goal. In CS61B, we're concerned also with

*engineering*. An engineer, it is said, is someone who can do for a dime what any fool can do for a dollar. Much of 61B will be concerned with the tradeoffs in time and memory for a variety of methods for structuring data. We'll also be concerned with the engineering knowledge and skills needed to build and maintain moderately large programs.

*A Practical Guide to The Unix System (3rd edition)*by Mark Sobell (Addison-Wesley, 1994).

**We've found that with the increasing ability to work anywhere has come an increasing tendency for students to go off by themselves and fall behind.**Don't make this mistake. Keep up with homework and lab work and above all

*let us know when you don't understand something!*

*Head First Java, 2nd Edition*by Sierra and Bates (O'Reilly, 2005). This book is recommended to those of you with no Java experience. It's an easy read and super cheap for a textbook.

*Algorithms, 4th Edition*by Wayne and Sedgewick.

*not*sufficient cause include having job interviews, having a plane ticket that you (or your parents) bought without consulting the schedule, having exams or assignments in other courses at nearby times, being behind in your reading, being tired, or being hung over.

If you do especially poorly on Midterm 1 (fewer than 10 points), then you will have an opportunity to take a makeup midterm 1 that can boost your score to a maximum of 10 points. Your midterm 1 score will be the better of your actual midterm 1 and the makeup.

If your midterm grades are statistically much worse than your final, we'll replace your midterm grade.

Midterm (both MT1 and MT2) grades can be "shadowed" (aka a weaker version of what Dan Garcia calls "clobbering") by the final. The way it works is that if you are X standard deviations from the mean, your midterm scores will be replaced by a score equivalent to X - 0.5 standard deviations from the mean. This policy can only help, and cannot hurt your score.

Effectively, this only applies if you improve substantially on your final: an improvement of over 0.5 standard deviations.

For example, suppose Bilbo scored 0.4 standard deviations above the mean on MT1, 0.9 standard deviations above the mean on MT2, and 1.1 standard deviations above the mean on the final. Then Bilbo's midterm scores will be replaced by 1.1 - 0.5 = 0.6 standard deviations above the mean, as long as this is an improvement.

Since Bilbo already got 0.4 above the mean on MT1, his score would be replaced by 0.6. However, his score on MT2 would not be changed (since he is already 0.9 above the mean).

As another example, suppose Bilbo is -1.1 above the mean on MT1, -0.1 on MT2, and 0.3 on the final, his midterm scores would be replaced by -0.2 (0.3 - 0.5) if that helps. In Bilbo's case, his MT1 score would be replaced by -0.2, and MT2 score would be untouched (since it is already better).

Or in pseudocode:

your_devs = (your_final_score - final_mean) / final_stddev your_potential_replacement = (your_devs - 0.5) * midterm_stddev + midterm_mean your_shadowed_midterm_score = max(your_midterm_score, your_potential_replacement)

*there is no curve.*Your grade will depend solely on how well you do, and not on how well everyone else does.

Category | Percentage | Points |
---|---|---|

Homework/Labs | ~22% | 84 |

Projects | ~26% | 100 |

Midterms | ~26% | 100 |

Final Exam | ~26% | 100 |

Total | 100% | 384 |

A+ | A | A- | B+ | B | B- | C+ | C | C- | D+ | D | D- | F |

374 | 348 | 327 | 309 | 285 | 270 | 248 | 215 | 184 | 160 | 135 | 100 | 0 |

*only*for dire medical or personal emergencies that cause you to miss the final, and only if your work up to that point has been satisfactory. Do

*not*try to get an incomplete simply as a way to have more time to study or do a project. That is contrary to University policy.

- 1 point each for projects 1 and 2. Details in project specs.
- 1 point for mid-semester survey.
- 3 point for taking our end-of-semester survey.
- 2 points for taking the HKN survey.