Object Structures - PowerPoint PPT Presentation

object structures n.
Skip this Video
Loading SlideShow in 5 Seconds..
Object Structures PowerPoint Presentation
Download Presentation
Object Structures

play fullscreen
1 / 24
Download Presentation
Object Structures
Download Presentation

Object Structures

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Object Structures Class Introduction

  2. Topics in this Lecture • About the instructor • About each of you • Why computer science is a great place to be • Why this class is critical to your success • The whole subject in 30 minutes or less • Syllabus review • Q&A Object Structures, Lecture 1, (c) 2006 James Madison

  3. About James Madison • Computer operations in Desert Storm, 1990-1991 • Awarded the highest single medal in my unit • Central Connecticut State University, New Britain, CT • B.S. in Computer Science, changed major due to elective • Hardware track: wanted to understand down to silicon level • 1995 Computer science department honor student • Graduated 1996, 3.96 GPA, 4th in a class of 1,400+ • Rensselaer Polytechnic University, Hartford, CT • M.S. in Computer Science • Graduated 2006, 4.0 GPA • Professional experience • 10+ years in the insurance industry • Worked at nearly every layer of the technology stack Object Structures, Lecture 1, (c) 2006 James Madison

  4. About Each of You • Why are you taking this class? • From a broad perspective, not just as a requirement • What do you hope to know by the end that you don’t now? • Academic background • In general: major, special focuses, etc. • Math classes; discrete math in particular • Imperative languages you know and how much • Professional experience • Background and current status Object Structures, Lecture 1, (c) 2006 James Madison

  5. Why Computer Science • This is a transitional class, so many of you probably come from non-CS backgrounds • Welcome to a great field of endeavor • I would like to reinforce your choice in the following few slides because: • There is a great deal of misperception in the public view about our field and how great it is to be here • Our field requires hard work and can be stressful at times. I want to offer some encouraging thoughts and useful perspective for such situations. Object Structures, Lecture 1, (c) 2006 James Madison

  6. Why Computer Science • Computer science is everywhere • It provide great job security and pay • But it requires solid skills and their useful application • The outsourcing hype will pass • The outsourcing reality will require some adaptation • Freshman enrollments are down 50+% in 4 years • Reduction in supply drives up price (i.e. your salary!) • Baby boomers will be retiring • Hits all fields, but knowledge fields like CS in particular • Further reduction in supply further drives up price • The many quotes that follow are from recent issues of industry journals and support the above assertions Object Structures, Lecture 1, (c) 2006 James Madison

  7. Why CS - Job Security • “…a survey of 27,108 IT workers…show job security is on the rise.” -- ComputerWorld, front page, 6/19/06 • “…the U.S. tech unemployment rate hovering around 3%, near its record low, and tech employment above 3.4 million, near its all-time high…” -- CIO Magazine, via federal data, 6/12/06 • “According to the Bureau of Labor Statistics, one out of every four new jobs between now and 2012 will be IT-related.” -- Mark Hanny, VP of IBM’s Academic Initiative outreach program, ComputerWorld, 7/17/06 Object Structures, Lecture 1, (c) 2006 James Madison

  8. Why CS – Outsourcing Hype • “The numbers don’t add up. China and India aren’t turning out nearly as many engineers as commonly believed, Duke University researchers report. And they’re probably not as well-trained as their U.S. counter parts.” -- E-week Magazine, 6/5/06 • “…Indian software companies are facing a labor crunch similar to what U.S. companies experienced five years ago…” -- InformationWeek Daily Newsletter, 6/5/06 Object Structures, Lecture 1, (c) 2006 James Madison

  9. Why CS – Dropping Skill Supply • “The number of kids who are choosing to major in computer science has plummeted by nearly half since its peak of 3.7 percent of freshmen in 2000, according to the Higher Education Research Institute at the Graduate School of Education and Information Studies at UCLA.” -- CIO Magazine, 5/1/06 • “We’re seeing a lack of talented IT professionals looking for new positions.” -- Greg Fittinghoff, VP at Time Inc., ComputerWorld, 7/17/06 Object Structures, Lecture 1, (c) 2006 James Madison

  10. Why CS – Real Trends to Consider • But you have to be skilled and have the right kind • “Recent reports that the offshoring impact on the U.S. job is overblown—at least for IT positions requiring advanced degrees and business knowledge…” -- InformationWeek Daily Newsletter, 6/5/06 • You have the first half underway by taking this class • The business knowledge is key—need to do that too • Personally, I’m studying for an insurance underwriting exam • “…CIOs increasingly demand that their programmers understand the business…” -- Christopher Koch, executive editor of CIO Magazine, 5/1/06 Object Structures, Lecture 1, (c) 2006 James Madison

  11. Why CS – Real Trends to Consider • The grumpy-nerd-in-the-corner programmer is obsolete • The friendly-nerd-in-the-business-meeting programmer is in • “Tacit” skills are the current and future trend: • Perform analysis, handle ambiguity, be interactive, manage knowledge, communicate business value • “Tacit jobs have been growing three times faster than employment in the entire national economy…and they make up 70% of all U.S. jobs created since 1998 and 41 percent of the total labor market in the U.S.” -- CIO Magazine, via McKinsey Consulting, 5/1/06 Object Structures, Lecture 1, (c) 2006 James Madison

  12. Why CS – Real Trends to Consider • “The number of programmers employed in the U.S. has dropped by 25% since its peak in 2000, even though the total number of IT workers has increased slightly since then” -- CIO Magazine, via Bureau of Labor Statistics, 5/1/06 • To restate: • IT work is up from the peak of the dot-com hype • But the nature has changed away from just programming • So why learn programming? From same article as above: • “…but sometimes you need to be able to go into the detail. If you can’t go into the detail, you won’t be able to solve problems.” • Read that last sentence again. It is critical truth. Object Structures, Lecture 1, (c) 2006 James Madison

  13. Why CS – Real Trends to Consider • As with so many things, it’s not either/or, you need both • Programming knowledge gets to the heart of many issues and is critical to solving the most advanced problems • My day job is mostly documentation and communication, but my programming knowledge still serves me well: • Code was crashing, I figured out why just from discussion and was able to point the developers in the right direction • Threading model was heavily in dispute, so I wrote it in 16 hours over a weekend and handed it off that Monday • Had to present SOA to 30+ major business leaders; I wrote a working end-to-end system demonstration that was vastly more effective at communicating business value than would have been a presentation of just PowerPoint fluff • That is, did both the tacit and the concrete with equal focus Object Structures, Lecture 1, (c) 2006 James Madison

  14. Why This Class • This class has two major values: • Academic – positions you for: • Computability and Complexity, a mandatory class • Operating Systems, a mandatory class • Object Oriented Programming, frequently offered • Compiler Design, occasionally offered • Algorithm Analysis, occasionally offered • Professional – permeates the real-world: • Many things are object-centric, vastly more than just code • Metadata tools, rules engines, enterprise SOA • Applications performance issues are often algorithm problems • Vendor suites build on data structure principles • Libraries such as J2EE use nearly all the content of this class • Opens the black box of project and resource problems Object Structures, Lecture 1, (c) 2006 James Madison

  15. Why this Class – The CS Sandwich Business process management Management info systems (MIS) Software engineering GUI/Web programming Database systems Networking Security and cryptography Operating systems Compiler design Object oriented programming Object structures Procedural programming Computability theory (math) Assembler Microprocessor design Logic gate design Silicon design Chemistry/physics (science) Areas of Computer science that other disciplines can use for their own success Roughly speaking, the stack is most abstract at the top and gets more specific as you go down. Don’t take it too literally: Crypto can get as detail intensive as assembler, compiler design actually interacts with several layers, O.S. could be thought of as a building block, etc., but for our discussion, it’s accurate enough. The key is: Object structures is right at the heart of the foundation that delivers CS value to the non-CS world. Building blocks that underpin the external areas Important inner workings that can be abstracted from most practitioners Object Structures, Lecture 1, (c) 2006 James Madison

  16. Whole Class at Top Speed • Main topics for the semester • Algorithms • Data structures • Objects and classes • For each of these, you will be able to • Create them and use them to create programs • Use them in your program when created by others • Speak intelligently about them, in detail and high-level • Give many real examples, both simple and complex • Know they are in play based on “black box” behavior • This is my favorite…makes you a magician • This is my answer to the previous question of “what do you hope to learn by the end of the semester” Object Structures, Lecture 1, (c) 2006 James Madison

  17. Top Speed - Algorithms • An algorithm is a set of actions done in a specified manner. They are all around us: • Simple: Following a recipe when cooking dinner • Complex: A pilot going through the pre-flight routine • Computer code specifies algorithms • The programmer specifies a set of actions • The computer does those actions in a precise manner • Algorithms are based in mathematics • Algorithms can be rigorously proven • There are known limits to algorithm power • It’s not just “well, no one has figured it out yet” • This class will take you to the limits of our field • Yes, it is cool, and yes, it will make your head spin Object Structures, Lecture 1, (c) 2006 James Madison

  18. Top Speed – Data Structures • A data structure holds things. Again, life examples: • A bookcase holds books • A phone book holds phone numbers • Computers have memory structures to emulate reflect the real-world construct • The programmer creates a phone book structure • Algorithms run against data structures • The programmer writes an algorithm that searches the phone book structure for a particular number • Data structures are usually simpler to understand and work with than algorithms Object Structures, Lecture 1, (c) 2006 James Madison

  19. Top Speed – Objects & Classes • Algorithms & data structures tend to “travel in pairs” • The phone book data structure naturally needs an algorithm that searches the phone book • The phone book search is not the same as searching a warehouse for a box • But the warehouse also needs a search algorithm, and it will tend to be useful only for the warehouse • We put the algorithm and data structures together into a class of solution • Phone book algorithm and data structure into the phone book class • Warehouse algorithm and data structure into the warehouse class Object Structures, Lecture 1, (c) 2006 James Madison

  20. Top Speed – Objects & Classes • The class of phone book then has specific phone book objects • Hartford’s phone book is not the same as New York’s • The general category of phone books is a class • The specific instances of the class are objects of the class • The class of warehouses as objects of warehouse type • Wal-Mart and Target both have buildings in the class of warehouse, but their warehouse objects are different • Class and object are loosely interchanged in conversation • When the difference matters, I will be precise • Classes/objects move up and down in level of precision • The class of warehouse is a specific class based on the class of building. This leads to inheritance and subclassing Object Structures, Lecture 1, (c) 2006 James Madison

  21. Top Speed – Life Examples, Mine • Don’t think computer, just think about life. Algorithms, data structures, and classes & objects around us • For each of these bullets, mark it ‘A’, ‘DS’, or ‘C/O’ • I have a very specific schedule I follow every morning • Children are annoying, but my child is wonderful • The web is better for phone numbers than a phone book • Computer science is more fun than business management • The object structures class is easier than the operating systems class, and the latter must be taken first • You have to start the car before you put it in gear • Politicians are idiots who only care about themselves • PowerPoint doesn’t sort data as well as Excel • I need to recharge my laptop battery Object Structures, Lecture 1, (c) 2006 James Madison

  22. Top Speed – Life Examples, Yours • Make up some examples yourself, just some ideas here: • Personal • Doing yard work • Cooking in the kitchen • Last party of family reunion • Professional • Systems you have worked on • How the departments in your company interact • Universal • Planets and stars • Principles of physics • Other • Anything else that maps to the concepts discussed Object Structures, Lecture 1, (c) 2006 James Madison

  23. Top Speed – Mental Exercise • For the next week, ponder the above examples, and ask: • How would I get a computer to do that? • How were the examples similar and different? • How would they “perform”? • Would some be “fast” and others “take a long time”? • It is said that there is no bigger waste of energy than to try to do well that which should not be done at all • Would some of these get worse if we programmed them? • Should we instead fundamentally change the thought? • Might some be impossible to solve with a computer? • As noted above, there are such problems • Did you stumble on one of them? • How would you know? • How would you prove it? Object Structures, Lecture 1, (c) 2006 James Madison

  24. Q&A • Anything else? Object Structures, Lecture 1, (c) 2006 James Madison