|
CSE 331 Midterm Topics Winter 2012
|
|
The midterm covers everything we've done in class up to sections on Thursday, Feb. 9. That includes lectures, sections, homework assignments and projects, and readings. The calendar is the primary location to find everything, but here is a list of some of the major points.
- Reasoning about code: assertions, invariants, pre- and
post-conditions, Hoare triples, loop development
- Specifications (vs. implementations): when does an implementation satisfy a specification, stronger vs weaker specs., requires, effects, modifies, etc.
- Know how to use JavaDoc effectively/appropriately to document classes and interfaces.
- ADTs: abstraction vs implementation/representation, RI, AF, mutation, advantages of immutable data, representation exposure
- Interfaces: pure specification; interfaces, classes& types
- Class design and style issues: coupling, cohesion, etc.
- Testing: JUnit basics, unit testing vs other kinds, black-box vs white/glass-box tests, picking good tests, revealing subdomains, boundary cases, coverage (path coverage, etc., why complete coverage is often infeasible)
- Version control: basic notions (repository vs working copies, add, checkin, checkout, commit)
- Exceptions and assertions – rationale behind exceptions, basic uses; basic Java exception
notions: checked vs unchecked exceptions