01+-+Introduction - 5/4/2009 Ve 280 Manifesto Ve 280...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
5/4/2009 1 Introductio Ve 280 Programming and Introductory Data Structures Introduction Ve 280 Manifesto y Mathematics , especially as used by physics, is the formalism we use to describe “what is” y The physical world is modeled by equations. y Solutions to these equations give us insight into the world. y Classical mathematics however does not say anything about how Classical mathematics, however, does not say anything about how these processes unfold. For that, we need something else… y Computer Science is the formalism we use to describe “how to” y The computer science world uses algorithms to do this. y Algorithm : An abstract sequence of actions composed to solve a problem. y Program : A concrete set of program statements which implement some algorithm. The Task of Programming y Accept a possibly incomplete and/or imprecise specification of the problem. y Design an effective algorithm that: y Correctly satisfies the specification. y Is efficient in its (asymptotic) usage of space and time (i.e. how does it behave when we change problem parameters). y Implement the algorithm correctly and efficiently y An implementation of an algorithm is correct if it behaves as the algorithm is intended for all inputs and in all situations. Correctness is never negotiable. The Task of Programming (Implementation Cont’d) y There are three notions of an efficient implementation y The implementation has (concrete) space/time requirements asymptotically similar to the more abstract requirements of the corresponding algorithm. y Of ll f th " t ti ll d" ibl i l t ti Of all of the "asymptotically good" possible implementations, this one is among the better ones in absolute, concrete terms. y It does not take an undue amount of effort for a programmer to: y Write the implementation in the first place (simplicity). y Improve/adapt the implementation to more general or closely related algorithms (elegance). y So, efficient can mean fast, simple, and/or elegant. The Task of Programming y Two more pieces of the programming puzzle: y Testing y Maintenance y These are often be overlooked when a deadline approaches. However, they are very important and are covered in greater detail in later courses. The Task of Programming y This doesn’t seem too difficult, right? y What's the big deal?
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
5/4/2009 2 Programming Challenges Conflicting goals y Engineering Goals: Faster , Better Cheaper ( pick two ) y Unfortunately, our goals are often in conflict.
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 10/26/2009 for the course EECS 280 taught by Professor Jeff during the Summer '09 term at University of Michigan-Dearborn.

Page1 / 5

01+-+Introduction - 5/4/2009 Ve 280 Manifesto Ve 280...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online