Jozef Goetz contribution 2012 1 Standards I would like to establish a clear system of standards ...
-
Upload
patience-potter -
Category
Documents
-
view
218 -
download
0
Transcript of Jozef Goetz contribution 2012 1 Standards I would like to establish a clear system of standards ...
Jozef Goetz contribution 2012
1
Standards I would like to establish a clear system of standards Learning standards are aligned with your expectations
and the expectations of the global marketplace
Clear visible standards. Students must have clear understandings learning
standards in the areas of learning goals lecture notes exercises assignments and getting basic academics and applications skills.
Jozef Goetz contribution 2012
2
Standards
Communication delivered over multiple channels is more efficient than communication over a single channel.
Multiple channels make it more likely that the whole message will be received.
An appropriate picture adds another channel
by making a visual connection to an abstract idea. PowerPoint makes it easy to create visuals, and by
using a template, makes it easy to be consistent.
Jozef Goetz contribution 2012
3
Research-based principles for designPower Point presentation
Educational psychologist, Richard Mayer, posits a theory of multimedia learning wherein he finds 7 research-based principles for design.
• Students learn better1. from words and pictures than from words alone (Multimedia
Principle)
2. when corresponding words and pictures are presented near rather than far from each other on the page or screen (Special Contiguity Principle)
3. when corresponding words and pictures are presented simultaneously rather than successively (Temporal Contiguity Principle)
Mayer, R. (2001). Multimedia Learning. Cambridge University Press. Rodriguez, R. (2005) Theories Into Practice with Blackboard ONLINE, University of La Verne.
Jozef Goetz contribution 2012
4
Facts:Eyes are attracted to great contrast
●Contrast should fit information relevance●Important information should have high contrast
I use color or/and color
●Less relevant details should have lower contrast
Our eyes are attracted to:●Size●Contrast●Texture●Depth●Motion
Lecture Notes presentation
Jozef Goetz contribution 2012
5
So we use to control focus:●Larger size●Greater contrast●Different color●Hierarchy
●Should be easy to ignore lower levels as familiarity increases
●Sometimes animation
A context should be hierarchical●Group related contexts● More details should be indented
Lecture Notes presentation
Jozef Goetz contribution 2012
6
Lecture Notes presentationSo we introduce1. A hierarchy of bullets
Nested bulleted and numbered lists Level 1 item 1
– Level 2 item 1 – Level 2 item 2
Level 1 item 2 1. Level 2 item 1 2. Level 2 item 2
Higher level more general info Lower level more specific info
2. Key words: nouns (objects) in red, orange and purple, important verbs in light blue, important adjectives in green important words in bold
3. Ability to learn from slides
Example: Distributed Computing
Work distributed over networks N-Tier applications
– Split parts of applications over numerous computers1. User interface2. Business-logic processing3. Database
– Different parts interact when application runs
Jozef Goetz contribution 2012
7
My Lecture Notes: Have a tutorial value: the student should be able to learn from slides,
Comply with research-based principles for design Power Point presentation
Concepts are presented visually with many diagrams and pictures.
They use visual aids (diagrams, pictures etc.) and pictures are presented near each other on the page or screen.
The context is presented in the hierarchical way, details are indented
Important key words are highlighted or written in different color
Jozef Goetz contribution 2012
Other Benefits of LN
Helps with content organization and note taking
Organizes lecture content and indicates which points were most important
Helps with faster learning, specifically with the tutorial feature
8
Jozef Goetz contribution 2012
9
2006 Pearson Education, Inc. All rights reserved.
2002 Prentice Hall. All rights reserved.
expanded by J. Goetz, 2009
Jozef Goetz contribution 2012
10Chapter 1 – Introduction to Computers, the Internet, the Web, C# and .NET
Outline ed 4
Jozef Goetz contribution 2012
11OBJECTIVES
In this chapter you will learn:
Basic hardware and software concepts.
The different types of programming languages.
Which programming languages are most widely used.
The history of the Visual C# programming language.
Some basics of object technology.
The history of the Internet and the World Wide Web.
The motivation behind and an overview of the Microsoft’s .NET initiative, which involves the Internet in developing and using software systems.
Jozef Goetz contribution 2012
12
High thoughts must have high language. Aristophanes
Our life is frittered away with detail. . . .
Simplify, simplify. Henry David Thoreau
•There are two ways of constructing a software design; one way is to make •it so simple that there are obviously no deficiencies, •and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.- C. A. R. Hoare
Jozef Goetz contribution 2012
13
My object all sublime
I shall achieve in time.
W. S. Gilbert
Man is still the most extraordinary computer of all. John F. Kennedy
The chief merit of language is clearness. Galen
Jozef Goetz contribution 2012
141.1 What is a Computer?
Computer Device capable of
Performing computations Making logical decisions
Works billions of times faster than human beings
Fastest supercomputers today Perform hundreds of billions of additions per
second
Jozef Goetz contribution 2012
15Fastest Supercomputer (2005) I.B.M. announced that the Blue Gene/L system had
attained a sustained performance of 36.01 trillion calculations per second, or teraflops, eclipsing the top
mark of 35.86 teraflops reached in 2002 by the Earth Simulator in Yokohama
Dobb’s Report 12/14/2007:Researchers from the National Center for Atmospheric Research (NCAR), the San Diego Supercomputer Center (SDSC), Lawrence Livermore National Lab (LLNL), and IBM Watson Research Center have set U.S. records for size, performance, and fidelity of computer weather simulations. Tom Spelce and Brent Gorda of Lawrence Livermore; and
Robert Walkup of IBM who set a record for "parallelism" by
running on 15,360 processors of the 103 peak teraflops IBM Blue Gene/L supercomputer.
Jozef Goetz contribution 2012
Fastest Supercomputer in October 2010
China Wrests Supercomputer Title From U.S. - October 28, 2010
FR: http://www.nytimes.com/2010/10/28/technology/28compute.html
Chinese researchers at a national defense university in Tianjin unveiled the world’s fastest supercomputer, Tianhe-1A uses a Linux-based operating system It was the fastest computer in the world from October 2010 to June 2011
The supercomputer is powered by California-based chip maker NVIDIA.
This Chinese supercomputer uses 7,168 NVIDIA graphics chips and 14,336 Intel processing chips giving it enough power to process 2,507 trillion 2.5 petaflops, or 2.5 quadrillion floating point calculations per. That is 30% faster than the previous record holder, the Oak Ridge
National Laboratory in Tennessee.
16
Jozef Goetz contribution 2012
Fastest Supercomputer in November 2011
The K computer – named for the Japanese word "kei" ( 京 ?), meaning 10 quadrillion (1016) - 10 petaflops is a supercomputer (a Linux-based operating system) produced by Fujitsu, currently installed at the RIKEN Advanced Institute for Computational Science campus in Kobe, Japan.
The K computer is based on a distributed memory architecture, with over 80,000 computer nodes. It is intended to have a variety of applications, including climate research, disaster prevention and medical research.
In June 2012, K was superseded as the world's fastest supercomputer by the American IBM Sequoia.
17
Jozef Goetz contribution 2012
Fastest Supercomputer in June 2012
IBM Sequoia is a petascale Blue Gene/Q supercomputer constructed by IBM for the National Nuclear Security Administration as part of the Advanced Simulation and Computing Program (ASC).
On 14 June 2012, the TOP500 Project Committee announced that Sequoia replaced the K computer as the world's fastest supercomputer, with a LINPACK performance of 16.32 petaflops, 55% faster than the K computer's 10.51 petaflops, using 123% more sockets than the K computer's 705,024 sockets.
Sequoia is also more energy efficient, as it consumes 7.9 MW, 37% less than the K computer's 12.6 MW.
The entire supercomputer runs on Linux, with Compute Node Linux running on over 98,000 nodes, and Red Hat Enterprise Linux running on 768 I/O nodes that are connected to the filesystem.
18
Jozef Goetz contribution 2012
191.1 What is a Computer? (II)
Programs Sets of instructions that process data Guide computer through orderly sets of actions specified
by computer programmers
Computer system Comprised of various hardware devices
Keyboard Screen (monitor) Disks Memory Processing Units Etc.
Jozef Goetz contribution 2012
201.2 Computer Organization
Every computer divided into 6 units1. Input unit
“Receiving” section of computer Obtains data from input devices
– Keyboard, mouse, disk or scanner Places data at disposal of other units
2. Output unit “Shipping” section of computer Puts processed info on various output devices
– Screens, paper printouts, speakers Makes info available outside the computer
Jozef Goetz contribution 2012
211.2 Computer Organization (II)
3. Memory unit Rapid access, low-capacity “warehouse” Temporarily retains information entered through input unit Retains info that has already been processed until it can be
sent to output unit Often called memory, primary memory, or random access
memory (RAM)
4. Arithmetic and Logic Unit (ALU) “Manufacturing” section of computer Performs calculations (addition, subtraction, multiplication
and division) Contains decision mechanisms and can make comparisons
Jozef Goetz contribution 2012
221.2 Computer Organization (III)
5. Central Processing Unit (CPU) “Administrative” section of computer Coordinates and supervises other sections (instruct ALU,
Input, Output, units)
6. Secondary storage unit Long-term, high-capacity “warehouse” Stores programs or data not currently being used by other
units on secondary storage devices
– Hard Drives, disks or CDs Takes longer to access than primary memory
Jozef Goetz contribution 2012
23Early Operating System Early Computers
Single-user batch processing Jobs on decks of punched cards One job ran at a time Results took hours to process
Operating Systems Managed transitions between jobs Increased amount of work computer could accomplish by
developing OS with more features
Multiprogramming Simultaneous operation of several jobs Computer resources split between jobs, specifically in RAM
– Achieved better utilization Still took long hours for results
Jozef Goetz contribution 2012
24Early Operating System
Timesharing Operating Systems (1960s) Computers accessed through terminals
Devices with keyboards and screens
Hundreds of people use system at once Quickly performs small portions of each person’s job Gives appearance of running simultaneously
Jozef Goetz contribution 2012
25History of Operating Systems
First generation 1945 - 1955 mechanical relays, vacuum tubes, plugboards
Second generation 1955 - 1965 transistors, batch systems
Third generation 1965 – 1980 Integrated Circuits (ICs) and multiprogramming
Fourth generation 1980 – present personal computers, laptop, tablets, smart phones PDAs (Personal Digital Assistant)
A handheld computer for managing contacts, appointments and tasks.
Jozef Goetz contribution 2012
26
History of Operating Systems
Early batch system a. bring cards to 1401 b. reads cards (batch of jobs) onto tape c. operator carries input tape to 7094 d. puts tape on 7094 which does computing e. put tape on 1401 which prints off line output
Jozef Goetz contribution 2012
27Memory Layout for a Simple Batch System
Jozef Goetz contribution 2012
28Multiprogrammed Batch Systems
Several jobs are kept in main memory at the same time, and the CPU is multiplexed among them.
Jozef Goetz contribution 2012
29Evolution of an Operating System (III)
UNIX Originally an experimental timesharing OS Developed by Dennis Ritchie and Ken Thompson
Developed at Bell Labs Written in C
Open-Source software Source code freely distributed among programmers The code is open and you can see it, change it, learn from it Created large community
Powerful and flexible Handled any task a user required Developed into many versions
– Linux– BSD
Jozef Goetz contribution 2012
30THE OPERATING SYSTEM ZOO
1. Mainframe operating systems
2. Server operating systems
3. Multiprocessor operating systems
4. Personal computer operating systems
5. Real-time operating systems
6. Embedded operating systems
7. Smart card operating systems
Jozef Goetz contribution 2012
311.3 Personal Computing, Distributed Computing and Client/Server
Computing Personal Computing
Pioneered by Apple and IBM Computer prices dropped
– Computers reasonable for personal or business use
Stand-alone units People work on personal machines
– Transported disks to share information
• “Sneakernet”
Machines linked together– Telephone lines
– Local Area Networks (LANs)
– Led to distributed computing
Jozef Goetz contribution 2012
321.3 Personal Computing, Distributed
Computing and Client/Server Computing (II)
Distributed Computing Work distributed over networks
N-Tier applications
– Split parts of applications over numerous computers
1. User interface
2. Business-logic processing
3. Database
– Different parts interact when application runs
Jozef Goetz contribution 2012
331.3 Personal Computing, Distributed Computing and Client/Server
Computing (III) Client/Server Computing Workstations - clients
High-powered desktop machines Easily share information over computer networks
Servers Store programs and data Information accessed by clients
Local Area Networks (LAN)
Capabilities (GUI) provided by modern Operating Systems Windows (98, ME, 2000, XP, Vista, Windows 7 and 8), UNIX,
Linux, Mac OS
Jozef Goetz contribution 2012
34 1.4 Hardware Trends
Improving technologies Internet community gains improvements of
Hardware Software Communications
Cost of products and services Consistently dropping over the decades Gordon Moore
– Co-founder of Intel– Moore’s Law: The costs of hardware exponentially decreases
Computer capacity and speed Doubles every two years (on average)
Microprocessor chip Laid groundwork in late 1970s and 1980s for productivity
improvements of the 1990s
Jozef Goetz contribution 2012
351.5 Microsoft’s Windows Operation System
Microsoft Dominant software company Windows operating system
A graphical user interface (GUI) built on top of DOS Most widely used operating system
Linux Operating system based on Unix Open source
Source code freely available to users Biggest competitor to Windows
Jozef Goetz contribution 2012
361.6 Machine Languages, Assembly Languages and High Level Languages
Programming Languages Hundreds exist today Fall into three categories
1. Machine languages– “Natural language” of computer component– Machine dependent
2. Assembly languages– English-like abbreviations represent computer operations– Translator programs convert to machine language
3. High-level languages– Allows for writing more “English-like” instructions
• Contains commonly used mathematical operations
– Compiler converts to machine language
4. Interpreter– Execute high-level language programs without compilation
Jozef Goetz contribution 2012
371.6 Machine Languages, Assembly
Languages and High Level Languages (II)
Machine Languages Only language understood directly by computer Defined by computer’s hardware design
Machine-dependent– Languages specific to particular computers
Difficult to understand for human Example:
+1300042774+1400593419+1200274027
Streams and numbers– Ultimately reduced to 0s and 1s
• Binary code– Instruct most elementary of operations
Slow, tedious and error-prone– Led to Assembly languages
Jozef Goetz contribution 2012
381.6 Machine Languages, Assembly
Languages and High Level Languages (III)
Assembly Languages Example:
LOAD BASEPAYADD OVERPAYSTORE GROSSPAY
English-like abbreviations Represent elementary operations of computer
Translated to machine language Assemblers convert to machine language High-speed conversion
More clear to human readers Still tedious to use
– Many instructions for simple tasks– Led to high-level languages
Jozef Goetz contribution 2012
391.6 Machine Languages, Assembly
Languages and High Level Languages (IV) High-Level Languages
Single statements accomplish substantial tasks Translated to machine language
Compilers convert to machine language Conversion takes considerable time, so
– Interpreters run programs without compiling• Used in development environment
Instructions comprehensible to humans Example:
grossPay = basePay + overTimePay
Looks mostly like everyday English Contains common mathematical notation
Procedural languages are abstractions of assembly languages
Jozef Goetz contribution 2012
40Fig. | Comparing machine, assembly and high-level languages.
Jozef Goetz contribution 2012
411.8 C, C++, Visual Basic .NET and Java
C - 1972 Developed by Dennis Ritchie
Evolved from the B language (“typelless” – every data occupied one word) at Bell Labs
Kernighan and Ritchie: “The C Programming Language”.’78, 2nd ’88
ANSI/ISO 9899 established worldwide standards for C programming called ANSI C Added data type features
Gained recognition as language of UNIX Now a widely used language
Available on most computers Language of most major operating systems Led to development of C++
Hardware-independent languages; portable to most computers
Jozef Goetz contribution 2012
421.8 C, C++, Visual Basic .NET and Java (II)
C++ - 1980 Developed by Bjarne Stroustrup at Bell Labs (1980s) Extension of C
Uses elements from Simula 67
– Simulation programming language Provides features to “spruce up” C Provides Object-oriented technology
– Hybrid language
• Possible to program structurally
• Possible to program with object-oriented technology
• Possible to use both
Jozef Goetz contribution 2012
431.8 C, C++, Visual Basic .NET and Java (III)
Object-Oriented Programming Uses objects
Reusable software components model real-world items
More productive than structured programming Easier to understand, correct and modify
Object-Oriented Languages abstract elements in the application domain that refer to “objects” communications via message.
Jozef Goetz contribution 2012
441.8 C, C++, Visual Basic .NET and Java (IV)
Visual Basic - mid 1960s Based from BASIC (mid 1960s)
Beginners All-Purpose Symbolic Instruction Code Implemented by Bill Gates at Microsoft
BASIC evolved to Visual Basic in ’91– Graphical User Interface
Included capabilities such as – object based programming,– error handling and – GUI creation
Evolved to .NET – fully OOP language Allows access to .NET libraries Improved object oriented programming
Jozef Goetz contribution 2012
451.9 C, C++, Visual Basic .NET and Java (V)
Java 1991 - announced in 05/1995 Sun Microsystems corporate research project (1991)
Code-named Green Based on C and C++ Intended for intelligent consumer-electronic devices
Lack of popularity almost causes cancellation Sudden popularity of WWW in 1993 provided new potential
Used Java to create web pages with dynamic content– Animated and interactive content
Grabbed attention of business community Now very widely used
Enhance functionality of WWW servers Provide applications for consumer devices (pagers, cell phones, PDAs, …)
Java programs Consist of pieces called classes Classes contain methods, which perform tasks
Jozef Goetz contribution 2012
461.9 C# C#
Developed at Microsoft by a team led by Anders Hejlsberg and Scott Wiltamuth
Event driven, object oriented, visual programming language
Roots in C, C++ and Java
Incorporated into .NET platform Web based applications can be distributed
– Devices and desktop computers Programs that can be accessed by anyone through any device Allows communicating with different computer languages
Integrated Design Environment (IDE) Makes programming and debugging fast and easy The process of rapidly creating an application using an IDE is
referred to as Rapid Application Development (RAD)
Jozef Goetz contribution 2012
471.9 C# (II)
C# applications can interact via the Internet using standards SOAP and XML
SOAP Simple Object Access Protocol Allows the communicating of applications
written in different languages Any .NET language
Helps to share program “chunks” over the internet
Jozef Goetz contribution 2012
48Why C# ? The integration of software components from various languages proved
difficult, and installation problems were common
b/c new versions of shared components were incompatible with old software
Developers recognized the need for software that was accessible to anyone and available from almost any type of device.
C# is fundamental language and design specifically for the .NET Microsoft key technologies and Windows, Web Services and Distributed Applications.
It has roots in C, C++ and Java, adapting the best features of each and adding new features of its own
Power of C with ease of Microsoft Visual Basic® Much cleaner than C++ More structured than Visual Basic More powerful than Java for small and medium size apps.
Jozef Goetz contribution 2012
49Why C# ? C# is object oriented language
contains a powerful class library of prebuilt components,
enabling programmers to develop applications quicklyC# and Visual Basic share the Framework Class Library (FCL) – Builds on COM+ experience
– Native support for
• Namespaces
• Versioning
• Attribute-driven development
C# was standardized by ECMA International (as Standard ECMA-334) and ISO
Jozef Goetz contribution 2012
50Why C# ? C# is appropriate for demanding application development
tasks, especially for building today’s popular Web-based applications.
The .NET platform is one over which Web-based applications can be distributed to a great variety of devices (even cell phones: Windows Phone 7) and to desktop computers.
C# is an event-driven, visual programming language in which programs are created using an Integrated Development Environment ( IDE) With the IDE, a programmer can create, run, test and
debug C# programs conveniently, thereby reducing the time it takes to produce a working program to a fraction of the time it would have taken without using the IDE.
Jozef Goetz contribution 2012
51Another Motivation to learn C#
The number of job ads on the web have reached their highest level (August 2007), with C# skills in especially hot demand.
•demand for the skill: C# as a proportion of the total demand for staff http://www.jobstats.co.uk/jobstats.d/Details.d/Trends.d/SKILL/C.hash..d/
C# as a proportion of the total demand for staff
rolling maximum
rolling average
rolling minimum
Jozef Goetz contribution 2012
52
FROM:http://old.jobstats.co.uk/jobstats.d/Details.d/Rates.d/SKILL/C.hash..d/index.html
rate offered by more than 10% of adverts
rate offered by more than 25% of adverts
Median rate
rate offered by more than 75% of adverts
Trends in the hourly rates offered for the skill: C# in £ = 1.578$
Trends in the hourly rates offered
Key
Jozef Goetz contribution 2012
53Another Motivation to learn C#
C# is easy to learn if you know C++ or Java , plus the .NET framework makes many things
easier. The class library is primarily written in C#.
Jozef Goetz contribution 2012
54 Other High Level Languages Fortran (FORmula TRANslator)
Developed at IBM (1950s) Complex mathematical computations for scientific and engineering applications Still widely used
COBOL (COmmon Business Oriented Language) Developed by computer users, manufacturers and the government
(1959) Commonly associated with business software Commercial application that require precise and efficient manipulation of large amounts of data
Pascal Structured programming Developed by Professor Nicklaus Wirth (late 1960s)
For academic use
ADA early ’80s Multitasking: Allow many activities to occur in parallel
Modula, Concurrent Pascal (multitasking) etc.
Jozef Goetz contribution 2012
55
.NET programming languages
APL Mondrian
C# Oberon
COBOL Oz
Component Pascal Pascal
Curriculum Perl
Eiffel Python
Forth RPG
Fortran Scheme
Haskell Smalltalk
Java Standard ML
Jscript Visual Basic
Mercury Visual C++
Fig. | .NET programming languages.
Jozef Goetz contribution 2012
56Structured Programming
Early Software Development Complex and costly for businesses (1960s)
Costs exceeded budgets Final products unreliable
Research led to structured programming Disciplined approach to programming Clear, easy to test, debug, and modify
– Several languages resulted from research
– C, Pascal, Ada
– Focused on actions (verbs) rather than things or objects (nouns)
Jozef Goetz contribution 2012
57Structured Programming (II)
Structured Languages Pascal
Designed for teaching structured programming Lacked features for commercial use
C Had features Pascal didn’t (e.g. pointers) Quickly adopted by programmers
Ada Developed by U.S. Department of Defense (late 1970s)
– Based on Pascal– DOD wanted one language for all its needs– Supported multitasking
• Many activities occur in parallel
Jozef Goetz contribution 2012
58Key Software Trend: Object Technology
What is Object Technology? Packaging scheme for creating software units
Units are objects (nouns) which are instances of classes
– Any noun can be represented as an object• Date object, time object, car object
– Specify general format– Have properties (attributes)
• Size, color, weight– Perform actions (verbs) - behaviors
• Moving, sleeping, drawing
• Defined in classes as methods
Jozef Goetz contribution 2012
59Key Software Trend: Object Technology (II)
Object-Oriented programming Objects based on nouns
Reflects the way world is perceived Mirrors real world entities and therefore objects are more reusable
Advantages over structured programming More natural process
– Results in better productivity Classes provide reusability
– Microsoft Foundation Classes (MFC) Easier to maintain (80% of software costs) because
– Programs more understandable– Better organized – Focus on objects– Less attention to details
Jozef Goetz contribution 2012
60History of the Internet and World Wide Web
ARPAnet Implemented in late 1960’s by ARPA (Advanced
Research Projects Agency of DOD)
Networked computer systems of a dozen universities and institutions with 56KB communications lines
Grandparent of today’s Internet
Intended to allow computers to be shared
Became clear that key benefit was allowing fast communication between researchers – electronic-mail (email)
Jozef Goetz contribution 2012
611.10 The Internet and World Wide Web (II) Internet
Developed more than four decades ago with DOD Department of Defense funding Originally for connecting few main computer systems Now accessible by hundreds of millions of computers
World Wide Web (WWW) Allows for locating/viewing multimedia-based documents
ARPA – The ARPANET was the predecessor to the Internet established by the United States Department of Defense Advanced Research Projects Agency (ARPA),
ARPA’s goals Allow multiple users to send and receive info at same time Network operated packet switching technique
Digital data sent in small packages called packets Packets contained
– data, – address info, – error-control info and – sequencing info
Greatly reduced transmission costs of dedicated communications lines Network designed to be operated without centralized control
If portion of network fails, remaining portions still able to route packets
Jozef Goetz contribution 2012
62A brief history of the Internet.
• ARPANET (50s and 60s, some universities)
• NSFNET (late 70s, all universities)
• TCP/IP (invention ’74) became the official protocol in 1983. When NSFNET and the ARPANET were connected, the growth became
exponential Many regional networks (Canada, Europe, the Pacific) joined up In mid-80s people began viewing the collection of networks as the Internet The glue that holds the Internet together is the TCP/IP reference model and
TCP/IP protocol stack
• ANS (Advanced Networks and Service) by MERIT, MCI, and IBM took over NSFNET in 1990 and form ANSNET
• ANSNET sold to American Online in 1995.
Jozef Goetz contribution 2012
63History of the Internet and World Wide Web (III)
Was used Transmission Control Protocol (TCP) Name of protocols for communicating over
ARPAnet Ensured that messages were properly routed and
that they arrived intact
Organizations implemented own networks Used both for intra-organization and
communication
Jozef Goetz contribution 2012
64History of the Internet and World Wide Web (IV)
Huge variety of networking hardware and software appeared ARPA achieved inter-communication between all
platforms with development of the IP Internetworking Protocol Current architecture of Internet
Combined set of protocols called TCP/IP
The Internet Limited to universities and research institutions Military became a big user Next, government decided to access Internet for
commercial purposes
Jozef Goetz contribution 2012
65History of the Internet and World Wide Web (V)
Internet traffic grew Businesses spent heavily to improve Internet
Better service their clients
Fierce competition among communications carriers and hardware and software suppliers Result
– Bandwidth (info carrying capacity) of Internet increased tremendously
– Costs plummeted (dropped)
Jozef Goetz contribution 2012
66History of the Internet and World Wide Web (VI)
WWW Is GUI (graphical user interface) to info stored on servers Allows computer users to locate and view multimedia-based
documents Introduced in 1990 by Tim Berners-Lee
Developed information system based on hyperlinked text documents
– HyperText Markup Language (HTML)
– Developed communication protocols as backbone
WWW today Makes info instantly accessible Merges computing and communication technologies
Jozef Goetz contribution 2012
67Internet Usage
In ’93 development of Mosaic by Marc Anderson, the first graphics-based web browser at NCSA This created an interface to the Web that was easy to use – just
point and click instead of remembering text commands This set the stage for easier information sharing and retrieval
The ch-r of the network was changed from an academic and military playground to a public utility
Jozef Goetz contribution 2012
68World Wide Web Consortium (W3C)
W3C - 1994 Founded in 1994 by Tim Berners-Lee
Devoted to developing non-proprietary and interoperable technologies for the World Wide Web and making the Web universally accessible
W3C Goals Specify the role, syntax and rules of a technology
User Interface Domain Technology and Society Domain Architecture Domain and Web Accessibility Initiatives
Standardization W3C Recommendations: technologies standardized by W3C include
– Extensible HyperText Markup Language (XHTML),– Cascading Style Sheets (CSS) and – the Extensible Markup Language (XML)
Document must pass through – Working Draft (specify an evolving draft), – Candidate Recommendation (industry can begin to implement) and – Proposed Recommendation (i.e. has been implemented and tested over a period
of time) phases before considered for – W3C Recommendation (standards)
Jozef Goetz contribution 2012
69World Wide Web Consortium (W3C) (II)
W3C Structure Comprised of 3 Hosts
Massachusetts Institute of Technology (MIT) France’s INRIA (Institut National de Recherche en
Informatique et Automatique) Keio University of Japan
400 Members (including Deitel & Associates) that provide the primary financing
W3C homepage at www.w3.org
Jozef Goetz contribution 2012
701.11 Extensible Markup Language (XML).
XML Resulted from HTML’s limitations Data independence
HTML (Hypertext Markup Language) limitations Lack of extensibility
Inability to add or change features– Developers become frustrated– Code becomes erroneous
Led to more development on HTML W3C created Cascading Style Sheets (CSS) as temporary solution
– New technology for formatting documents
Led to research for a standardized extensible language– W3C developed Extensible Markup Language (XML)
• Combined power of Standard Generalized Markup Language (SGML) with simplicity of HTML
• Developed XML-based standards for style-sheets and advanced hyperlinking
Jozef Goetz contribution 2012
711.11 Extensible Markup Language (XML)
Here's an example of the above data in XML:<Customers> <Customer> <LastName>JONES</LastName> <FirstName>JOHN</FirstName> <Telephone>5555551212</Telephone> <Address>9902 BROADWAY</Address> <City>NEW YORK</City> <State>NY</State> <Zip>10010</Zip> </Customer> <Customer> <LastName>SMITH</LastName> <FirstName>MABEL</FirstName> <Telephone>5555559999</Telephone> <Address>674 ANYSTREET</Address> <City>CHICAGO</City> <State>IL</State> <Zip>60614</Zip> </Customer> </Customers>
Jozef Goetz contribution 2012
721.11 Extensible Markup Language (XML) (II)
Become the universal technology for data representation XML features
Data independence
Separation of content from its presentation– Because an XML document describes data in ASCII,
any application can process XML documents • Improves Web functionality and interoperability• XML documents can be easy manipulated by any app that can
process text so it reduces server load and network traffic
Integration with applications not only via Web services– Communication between applications employ XML– Structure allows easy integration with database applications
Jozef Goetz contribution 2012
731.11 Extensible Markup Language (XML) (III)
Communication using XML Simple Object Access Protocol (SOAP)
Technology for transmissions of objects over the internet.
A Framework for – expressing application semantics, – encoding that data and – packing it in modules
Structured into three parts– Envelope
• Describes content and recipient of SOAP message– Encoding rules
• Which are XML-based– Remote Procedure Call (RPC) representation
• Commands other computers to perform a task
Jozef Goetz contribution 2012
741.11 Extensible Markup Language (XML) (III)
Since SOAP’s foundation are in XML and HTTP (Hypertext Transfer Protocol)
The key communication protocol of the Web
Jozef Goetz contribution 2012
751.12 Introduction to Microsoft .NET
.NET initiative1. Introduced by Microsoft (June 2000)
Vision for embracing the Internet in software development Reusable application software components that can be used over the Internet
2. Independence from specific language or platform Applications developed in any .NET compatible language
– Visual Basic .NET, Visual C++ .NET, C# , J# and more Programmers can contribute to applications using the language in which they
are most competent
3. Architecture capable of existing on multiple platforms
4. New program development process Can lead increased productivity
Jozef Goetz contribution 2012
761.12 Introduction to Microsoft .NET
(II)5. Key components of .NET
1. Web services Applications used over the Internet
2. Software reusability Web services provide solutions for wide variety of companies
– Cheaper than developing one-time solutions that can’t be reused• Single applications perform all operations for a company such as
manage taxes refunds, loans, bills, investments and etc. using WEB services from various companies
• reservation system – many earliness have access to the same reservation system
• Dollar Rent a Car’s reservation data base system (Microsoft based) is available as Web Services (service components) for the airlines (Unix based systems)
• centralized database system – not to have many unsynchronized copies, access via any devices or PCs
Pre-packaged components (buttons, text boxes and scrollbars)– Make application development quicker and easier– Developers no longer need to be concerned with details of components
(buttons, text boxes and scrollbars)
Jozef Goetz contribution 2012
771.12 Introduction to Microsoft .NET (III) - .NET initiative
3. Keys to the WEB services interaction XML and SOAP
“Glue” that combines various Web services to form applications– XML gives meaning to data– SOAP allows communication to occur easily
6. Universal data access Data formatted appropriately for display on various devices
– Same document seen on PC, PDA, cell phone and other devices Eliminates need to synchronize files
– Updating multiple copies of same file to the most recent Data resides at one central location
– Accessible by anyone with connection and proper authorization
Additional information available at Microsoft Web site www.microsoft.com/net
Jozef Goetz contribution 2012
78.NET Framework Architecture
Windows COM+ Services
Common Language Runtime CLR
Base Class Library
ADO.NET and XML
ASP.NET Windows Forms
Common Language Specification
VB C++ C# JScript …
Visu
al Stu
dio
.NE
T
NET Framework includes:
Common Language Specification (CLS): Information about
storage of data types and objects and so on
Common Language Runtime (CLR) – virtual machine: Programs compiled
into machine specific language
Microsoft Intermediate Language (MSIL) plays a crucial role
for language interoperability
Just-In-Time Compiler (JIT): Translates MSIL into machine-
language code when application executes
Jozef Goetz contribution 2012
79.NET Framework
Framework Class LibraryFramework Class LibraryFramework Class LibraryFramework Class Library
ADO.NET
Network
XML
Security
Threading
Diagnostics
IO
Etc.
Common Language RuntimeCommon Language RuntimeCommon Language RuntimeCommon Language Runtime
Memory Management Common Type System Lifecycle Monitoring
C# VB.NET C++.NET OtherC# VB.NET C++.NET OtherC# VB.NET C++.NET OtherC# VB.NET C++.NET Other
VisualVisual
StudioStudio
.NET.NET
VisualVisual
StudioStudio
.NET.NET
Common Language SpecificationCommon Language SpecificationCommon Language SpecificationCommon Language Specification
Windows FormsWindows FormsWindows FormsWindows FormsASP.NETASP.NETASP.NETASP.NET
Web Services
ASP.NET Application Services
Web Forms ControlsControls Drawing
Windows Application Services
Figure : The .NET Framework class libraries
.NET Framework
Jozef Goetz contribution 2012
801.13 .NET Framework and the Common Language Runtime
.NET Framework Heart of .NET strategy
Manages and executes applications and Web services Provides
– security, – memory management and – other programming capabilities
Includes: Framework class library (FCL)
Pre-packaged classes ready for reuse Used by any .NET language
Details contained in Common Language Specification (CLS) about the storage of data type, objects and so on Submitted to European Computer Manufacturers Association for
standardization to make the blueprint of the framework- – that anyone can build the framework on other platforms following the
specification • .NET under development on Linux and MAC OS X operating systems
– open source Mono http://www.mono-project.com/Main_Page based on the Ecma standards for C#• DotGNU Portable.NET - http://www.dotgnu.org/
Executes programs by Common Language Runtime (CLR)
Jozef Goetz contribution 2012
811.13 .NET Framework and the Common Language Runtime (II)
Common Language Runtime (CLR) - environment for MSIL Central part of framework
Executes Visual .NET programs
Compilation process Two compilations take place
– Programs written in different languages compiled to Microsoft Intermediate Language (MSIL) unified, single program
• Defines instructions for CLR
– MSIL code translated into machine code
• Machine code for a particular platform
Other advantages of CLR Execution-management features
Manages memory, security and other features– Relieves programmer of many responsibilities (garbage collector)
• More concentration on program logic
Jozef Goetz contribution 2012
82.NET Compilations
C#
Code
VB
Code
VBCompiler
COBOL
Code
COBOL
Compiler
IL (MSIL)JIT
Compiler
NativeCode
Run TimeC#Compiler
JITer (Just in Time compiler)
Host machine Microsoft Intermediate Language (MSIL) plays a crucial role for language
interoperability Just-In-Time Compiler (JIT):
Translates MSIL into machine-language code when
application executes
Jozef Goetz contribution 2012
83Common Language Runtime CLR Architecture
Class Loader
IL to NativeCompilers
CodeManager
GarbageCollector
Security Engine Debug Engine
Type Checker Exception Manager
Thread Support COM Marshaler
Base Class Library Support The CLR is responsible for run-time services such as:
• Language integration
• Security enforcement
• Memory
• Process
• Thread management.
• Versioning
Jozef Goetz contribution 2012
84The Common Language Runtime Interoperability
How does the interoperability work in practice? The first key idea is to map all software to the .NET
Object Model. Once compiled, classes don't reveal their language of
origin.
5/8
C++ C# Eiffel
Object model
Platform
Compilers
…
Jozef Goetz contribution 2012
851.13 .NET Framework and the Common Language Runtime (III)
Why two compilations? Platform independence
.NET Framework can be installed on different platforms Execute .NET programs without any modifications to code
Language independence .NET programs are not tied to particular language Programs may consist of several .NET-compliant
languages Old and new components can be integrated
Jozef Goetz contribution 2012
86Java platform vs .NET
Linux and MAC OS X
Jozef Goetz contribution 2012
87keywords comparison
C# Java
base super
bool boolean
Is instanceof
sealed final
internal private
: extends
: implements
namespace package
readonly const
using import
Jozef Goetz contribution 2012
881.14 Test-Driving a C# Application http://www.microsoft.com/express/Downloads/#
Test-Driving the Drawing Application Checking your setup Locating the application directory Running the Drawing application (Fig. 1.2) Changing the brush color (Fig. 1.3) Changing the brush size (Fig. 1.4) Finishing the drawing (Fig. 1.5) Closing the application
Jozef Goetz contribution 2012
89
RadioButtons
GroupBoxes
Panel
Fig. 1. 3 | Visual C# Drawing application.
Jozef Goetz contribution 2012
90
Fig. 1. 4 | Drawing with a new brush color.
Jozef Goetz contribution 2012
91
Fig.1. 5 | Drawing with a new brush size.
Jozef Goetz contribution 2012
92
Fig.1. 6 | Finishing the drawing.
Jozef Goetz contribution 2012
93Software Engineering Observation 1.1
Reuse of existing classes when building new classes and programs saves time, money and effort.
Reuse also helps programmers build more reliable and effective systems, b/c existing classes and components often have gone through extensive testing, debugging and performance tuning.