CMPSC 24 Lecture Notes - Lecture 2: Functional Decomposition, Information Hiding, Control Flow
Document Summary
Disciplined approach to the design, development, and maintenance of computer programs. Uses tools that help to manage the size/complexity of the resulting software products. A standard, integrated set of software engineering tools/techniques used on a project or by an organization. Given a big task, you break it up into smaller units (modules) that can be tested independently. Figure out the number of times each statement is executed and input size (n) --> determine how this affects efficiency / running time. Don"t use the best case when comparing the efficiency of algorithms. This course will focus on the worst case behavior. Ignores certain levels of detail while capturing the growth of running time. Not necessarily the absolute value of the running time. How rapidly the running time grows as input size increases f(n) = o(g(n)), if there exists constant c and n0 such that f(n) (cid:3409) cg(n) for all n (cid:3410) n0 g(n) is sometimes referred to as an upper bound.