cs2220: Engineering Software Class 1: Engineering Software? Fall
cs2220: Engineering Software Class 1: Engineering Software? Fall 2010 University of Virginia David Evans Menu Can we engineer software? About this Course Managing Complexity
Can we engineer software? What is engineering? flickr cc:dpblackwood Websters Definitions engineering ( n j -nr ng) n. 1a. The application of scientific and mathematical principles to practical ends such as the design,
manufacture, and operation of efficient and economical structures, machines, processes, and systems. b. The profession of or the work performed by an engineer. 2. Skillful maneuvering or direction: geopolitical engineering; social engineering. Design Under Constraint Engineering is design under constraint Engineering is synthetic - it strives to
create what can be, but it is constrained by nature, by cost, by concerns of safety, reliability, environmental impact, manufacturability, maintainability and many other such 'ilities.' ... William Wulf and George Fisher Computing Power 1969-2010 300,000,000 250,000,000
Moores Law: computing power roughly doubles every 18 months! 200,000,000 150,000,000 100,000,000 50,000,000
1 1 1 2 2 2 2 Constraints Software Engineers Face Not like those for real engineers: Weight, physics, etc.
Complexity of what we can understand Most important constraints: Limits of human memory Cost of human effort This class is about managing complexity to efficiently produce reliable complex software systems. How is engineering software different from engineering bridges?
where cs1120 ends I think that its extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customer got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don't think we are. I think were responsible for stretching them, setting them off in new directions, and keeping Software Engineering: taking customer
fun in the house. I hope the field of computer science never loses its sense ofcomplaints fun. Whats inseriously! your hands, I think and hope, is intelligence: the ability to see the machine as more than when but, it should still be fun and stretching what one can do with computers! you were first led up to it, that you can make it more. Alan Perlis, preface to Abelson & Sussman, Structure and Interpretation of Computer Programs Small, Fun Programs (cs1120)
vs. Big, Important Programs (simulated in cs2220) Small, Fun Programs Important Programs Small, Fun Programs If it doesnt work on some input, no big
deal Happy if it works once flickr cc:foolswisdom Important Programs If it doesnt work on just one input people may die, $$$ $ lost Must work on all
inputs flickr cc: scottvanderchijs Small, Fun Programs Manage complexity mostly by memory Written by a few people over a short period of time
Important Programs Written by many people over many years Need to design and document well to manage complexity How Big are Big Programs? Largest program in cs1120: ~1000 lines of code F-22 Steath Fighter Avionics Software: 1.5M loc Linux: 10M lines of code
Windows (XP): ~50M lines of code Amazon.com: ~100M lines of code Modern automobile: ~100M lines of code Typical estimate: $18 per line of code Typical estimate: 1 bug per 1000 lines of (production) code Goal of cs2220 Develop the concepts and skills necessary to successfully build important software. Grading
A+: I would be willing to fly in a plane running software you designed and wrote A: I would be willing to shop in an ecommerce store you built B: I would trust you to manage programmers working on important software (See syllabus for grading details.) Course Summary Main ideas: Abstraction
Using and designing data abstractions Specification Understanding and writing declarative specifications Analysis Static: reasoning about behavior Dynamic: developing and executing testing strategies Learn by doing: 5 smallish software projects (problem sets 1-5) individually, in small teams, 1-2.5 weeks each 1 larger team project: (almost) anything you want
Expected Background Prerequisite: cs1120/cs150 You should be able to: Write and understand short programs Write and understand recursive definitions Use procedures as parameters and results Analyze the asymptotic running-time of a procedure Understand replacement (BNF) grammars If you dont have this background, you may still be able to take the class (talk to me).
Course History 2002: First offered (cs201j) Developed with support from National Science Foundation Spring 2006: BACS Degree launched Fall 2006: cs205 Fall 2007, 2008, 2009: cs205 (taught by Paul Reynolds) Fall 2010: cs2220
Course Pledge Not the classroom pledge! The whole point of being at a University is so you can: Learn from your classmates Learn better by teaching your classmates READ, sign and return the cs2220 Pledge next class (Thursday) If you disagree with anything, this is your chance to object There may be questions about the pledge on a quiz!
Help Available Me: David Evans Office hours: Mondays, 1:15-2:30pm Thursdays, 11am-noon Blog comments: http://www.cs.virginia.edu/cs2220 Please use this for things that would be useful for everyone Email:[email protected] (anytime) Dont be afraid to ask for help! Assistant Teacher:
Web site: http://www.cs.virginia.edu/cs2220 Almost Everything goes on the web Charge This class is about: Managing complexity: modularity, abstraction, specification Engineering dependability: analysis, redundancy, design By 5pm Tomorrow: submit registration survey Thursday: Print, read, and return cs2220 pledge
Beginning of class Tuesday: Problem Set 1 Due If you do not satisfy the prereq for this course but want to stay in it, please talk to me now (or Thursday 11-noon, or arrange another time.
phet.colorado.edu. 6. You are flying from Denver to Boston, and you bring along a ½ full bottle of shampoo that was well sealed before you left Denver. You land in Boston and proceed to your hotel. The number of air...
Learning Information Fulfillment Entertainment GOAL #1: Strengthen students' experience in reading courses GOAL #2: Promote BCTC Literacy GOAL #3: Advance reading across curricula and campuses GOAL #1: Strengthen students' experience in reading courses Reading tutor and contact for Compass Reading...
Sexual Motivation. Short-term hormonal changes have little effect on desire. Large shifts that occur due to the aging process have a much greater effect. As sex hormones decline with age, frequency of sexual fantasies reduce and the desire for intercourse...
Tin has ten stable isotopes. Unstable Isotope. An element whose nucleus decomposes, or decays, by losing particles and energy. Radioactive. The energy or particles that are emitted from the nucleus is called radiation. 3 Types of radiation: Alpha, Beta, Gamma.
Complexity of Life Cycle (I) Haplobiontic Haploid (has zygotic meiosis) Haplobiontic Diploid (has gametic meiosis) Diplobiontic (has sporic meiosis) -- isomorphic or heteromorphic -- in heteromorphic either the n or 2n phase can be the dominant one Haplobiontic Haploid Life...
Overview of Alvin W. Penn Law. 1999: Connecticut enacts The Alvin W. Penn Racial Profiling Prohibition Act (Public Act 99-198) that prohibits any law enforcement agency from stopping, detaining, or searching any motorist when the stop is motivated solely by...
Stories touch people in different ways. Some readers might like "Seventh Grade" by Gary Soto because they recognize themselves in Victor. Others might like "Zebra" by Chaim Potok because they admire Zebra's strength.
Ready to download the document? Go ahead and hit continue!