Object Structures - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Object Structures

Description:

Object Structures, Lecture 1, (c) 2006 James Madison. 2. Topics in this Lecture ... 3. About James Madison. Computer operations in Desert Storm, 1990-1991 ... – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 25
Provided by: rh2
Category:

less

Transcript and Presenter's Notes

Title: Object Structures


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
  • QA

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

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
    dont 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

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.

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

7
Why CS - Job Security
  • a survey of 27,108 IT workersshow 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 IBMs Academic Initiative
    outreach program, ComputerWorld, 7/17/06

8
Why CS Outsourcing Hype
  • The numbers dont add up. China and India
    arent turning out nearly as many engineers as
    commonly believed, Duke University researchers
    report. And theyre 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

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
  • Were seeing a lack of talented IT professionals
    looking for new positions.
  • -- Greg Fittinghoff, VP at Time Inc.,
    ComputerWorld, 7/17/06

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 overblownat 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 keyneed to do that too
  • Personally, Im 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

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
    economyand 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

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 cant go into the detail, you
    wont be able to solve problems.
  • Read that last sentence again. It is critical
    truth.

13
Why CS Real Trends to Consider
  • As with so many things, its 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

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

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)

Roughly speaking, the stack is most abstract
at the top and gets more specific as you go
down. Dont 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, its
accurate enough. The key is Object
structures is right at the heart of the
foundation that delivers CS value to the non-CS
world.
Areas of Computer science that other
disciplines can use for their own success
Building blocks that underpin the external areas
Important inner workings that can be
abstracted from most practitioners
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 favoritemakes you a magician
  • This is my answer to the previous question of
    what do you hope to learn by the end of the
    semester

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
  • Its 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

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

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

20
Top Speed Objects Classes
  • The class of phone book then has specific phone
    book objects
  • Hartfords phone book is not the same as New
    Yorks
  • 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

21
Top Speed Life Examples, Mine
  • Dont 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 doesnt sort data as well as Excel
  • I need to recharge my laptop battery

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

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?

24
QA
  • Anything else?
Write a Comment
User Comments (0)
About PowerShow.com