Assignments

Due Wednesday, January 29:
Finish the Chapter 1 Study Guide
1. Ana Howlett 2. Eileen Wiedbrauk
Software engineering
Steps to establish the correctness of an algorithm
Modularity
Problem solving
Mathematical induction/base case/inductive step
Modifiability
3. Andrew Thomas 4. Josh Coats
Solution
Coding
Ease of use
Algorithm
Testing
Fail-safe programming
5. Chad Homan 6. Chris Brolsma
Life cycle
Refining the solution
Extensive use of functions
Specification
Production
Use of private data members
7. Ashley Ahern 8. Kunle Olowoyeye
Prototype program
Maintenance
Avoidance of global variables in functions
Design
Abstraction/functional abstraction/data abstraction
Proper use of reference arguments
9. Wesley Anderson 10. Ramdai Subedi
Modules
ADT
Proper use of functions
Loosely-coupled
Data structures
Error handling
11. Morgan Bates 12. Mike Oren
Interfaces
Public
Readability
Highly cohesive
Private
Documentation
13. Stephen Chambers 14. Jack Wilkinson
Modularity
Information hiding
Initial comments
Data flow
Objects/Object-oriented
Initial comments in each class
15. Evan Goad 16. Steve Burch
Contract
Encapsulation
Initial comments in each function
Preconditions
Class/object/instance
Comments in the body of each function
17. Mike Duffee 18. Ryan Fenstermaker
Postconditions
Data members/data fields/ attributes/methods/functions
Debugging functions
Risk analysis
Top-down design
Debugging "loop" statements
19. Mike Spiegel 20. Eric Gibson
Verification
Structure chart
Debugging "if" statements
Assertion/invariant/loop invariant
Design guidelines
Using "cout" statements
Homework 1, due Wednesday, February 5
Homework 2, due Monday, February 10
Programming Project 1, due Monday, February 17
For Wednesday, March 19: Chapter 3, Self-Test Exercise 2 and Exercises 2 & 3 (page 157)
Programming Project 2, due Monday, April 7
Programming Project 3, due Monday, May 5
Take-Home Final, due Thursday, May 15