Title: Object Structures
1Object Structures
2Topics 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
3About 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
4About 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
5Why 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.
6Why 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
7Why 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
8Why 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
9Why 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
10Why 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
11Why 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
12Why 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.
13Why 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
14Why 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
15Why 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
16Whole 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
17Top 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
18Top 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
19Top 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
20Top 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
21Top 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
22Top 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
23Top 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?
24QA