Chapter 1 - Intro to Computers, Internet and Java
Central Processing Unit (CPU)
"administrative" section coordinates and supervises the operation of other sections. (page 6 for more info)
Input Unit?
"receiving" section obtains information (data and Computer Programs) from input devices and places it at the disposal of the other units for processing (page 5 for more info)
Output Unit?
"shipping" section takes information the computer has processed and places it on various output devices to make it available for use outside the computer (page 5 for more info)
Using Java, you can write programs that will run on a great variety of computer systems and computer-controlled devices. This is sometimes called?
"write once, run anywhere"
What is the World Wide Web?
(simply called "the web") is a collection of hardware and software associated with the Internet that allows computer users to locate and view documents with various combinations of text, graphics, animations, audios and videos on almost any subject.
Popular Programming Languages
- Ada - Basic - C - C++ - C# - COBOL - Fortran - JavaScript - Objective-C - Pascal - PHP - Python - Ruby on Rails - Scala - Swift - Visual Basic
Buzzwords in software development community:
- Agile software development - Refactoring - Design patterns - LAMP - Software as a Service (SaaS) - Platform as a Service (PaaS) - Cloud Computing - Software Development Kit (SDK) - Alpha - Beta - Release Candidates - Final Release - Continuous beta
Fields?
- Composed of characters or bytes - This is a group of characters that conveys meaning - For example, a field consisting of uppercase and lowercase letters could be used to represent a person's name, and a field consisting of decimal digits could represent a person's age.
Characters?
- Decimal digits, upper/lowercase letters, and special symbols - The computer's character set is the set of all the characters used to write programs and represent data items on that device. - Computers process only 1s and 0s, so every character is represented as a pattern of 1s and 0s. (Composed by Bits) - Java uses Unicode® characters that are composed of one, two or four bytes (8, 16 or 32 bits).
Popular Java IDEs?
- Eclipse - IntelliJ IDEA - NetBeans
Key organizations in open-source community?
- Eclipse Foundation - Mozilla Foundation - Apache Software Foundation - Github
Types of Logical Units:
- Input Unit - Output Unit - Memory Unit - Arithmetic and Logic Unit (ALU) - Central Processing Unit (CPU) - Secondary Storage Unit
Various editors depending on operating system?
- Linux: vi and emacs - Windows: Notepad - macOS: TextEdit - Freeware online: Notepad++, EditPlus, TextPad, and jEdit
Three general types of translation languages:
- Machine Languages - Assembly Languages - High-Level Languages
Prior to Java SE 8, Java supported what three programming paradigms?
- Procedural Programming - Object-Oriented Programming - Generic Programming
Records?
- Several related fields can compose this - for instance in a pay role system, record for an employee might consist of following fields: - Employee ID (whole #) - name (string of characters) - address (string of characters) - Hourly pay rate (number with decimal point) - year-to-date earnings (number with a decimal point) - A record is a group of related fields. In the previous example, for instance, all fields belong to same employee
Bits?
- Smallest data item in computer. - Short for Binary Digit. - impressive functions performed by computers involve only the simplest manipulations of 0s and 1s—examining a bit's value, setting a bit's value and reversing a bit's value (from 1 to 0 or from 0 to 1).
File?
- group of related fields, it contains arbitrary data in arbitrary data in arbitrary forms - In some operating systems, a file is viewed simply as a sequence of bytes—any organization of the bytes in a file, such as organizing the data into records, is a view created by the application programmer.
What are the five phases of Java development?
1. edit 2. compile 3. load 4. verify 5. execute
*Phase 1: editing a file with an editor program*
1. ◦Using the editor, you type a Java program (source code). 2. ◦Make any necessary corrections. 3. ◦Save the program. 4. ◦Java source code files are given a name ending with the .java extension indicating that the file contains Java source code.
According to Oracle's 2016 JavaOne conference keynote presentation (http://bit.ly/JavaOne2016Keynote), there are now...?
10 million Java developers worldwide and Java runs on 15 billion devices (Fig. 1.1), including two billion vehicles and 350 million medical devices.
Java is the key language for developing Android apps. Java has also become the most widely used general-purpose programming with more that ....?
10 million developers
Apple, founded in _____ by Steve Jobs and Steve Wozniak, quickly became a leader in personal Computing
1976
That GUI served as inspiration for Apple' Macintosh, launched with much fanfare in memorable Super Bowl ad in _____
1984
Steve Jobs left Apple in ____ and founded NeXT Inc.
1985
In ____, NeXT licensed Objective-C from StepStone and developed an Objective-C compiler and libraries which were used as the platform for the NeXTSTEP operating system's user interface, and Interface Builder—used to construct graphical user interfaces
1988,
In ____, Tim Berners-Lee of CERN (the European Organization for Nuclear Research) began developing HyperText Markup Language (HTML)—
1989
}According to statista.com, there are already over __ billion IoT devices in use today and there are expected to be over 50 billion IoT devices in 2020.
22
}According to Statista.com, as of Q3 2016, Android had _____ of the global smartphone market share, compared to 11.5% for Apple
87.8%
Machine dependent?
A particular machine language can be used on only one type of computer
Java Class Libraries?
Also known as the Java APIs (Application Programming Interfaces), this is the rich collection of existing classes and methods
_________ is used in smartphones, e-reader devices, tablets, in-store touch-screen kiosks, cars, robots, multimedia players and more.
Android
}The Android operating system was developed by ______, Inc., which was acquired by ________ in 2005.
Android, Google
Final release?
Any bugs that appear in the release candidate are corrected, and eventually the final product is released to the general public. Software companies often distribute incremental updates over the Internet.
C#?
Based on C++ and Java. It was developed to integrate the web into computer applications, and is now widely used to develop enterprise applications and for mobile application development
C++?
Based on C, developed by Bjarne Stroustrup in early 1980s by Bell Laboratories. C++ provides several features that "spruce up" C language, but most importantly, provides capability for object- oriented programming
Ada?
Based on Pascal, Developed by U.S. Department of Defense (DOD) during 1970s and early 1980s, Named after Lady Ada Lovelace. Ada supports object-oriented programming.
Computer Programs?
Computers process data under the control of sequences of instructions
Data Hierarchy?
Data items processed by computers form this. It becomes larger and more complex in structure as we progress from the simplest data items (called "bits") to richer ones, such as characters and fields.
Big Data
Deal with such massive amounts of data and this field is growing quickly, creating lots of opportunity for software developers.
Basic?
Developed 1960s at Dartmouth College to familiarize novices with programming techniques. Many latest versions are object oriented
C?
Developed in the early 1970s by Dennis Richie at Bell Laboratories. Initially became widely known as UNIX operating system's development language. Today, most code for general-purpose operating systems are written in C or C++
COBOL (COmmon Business Oriented Language)?
Developed in the late 1950s by computer manufacturers, U.S. govt and industrial computer users, based on a language developed by Grace Hopper. COBOL is widely used in computer applications that require precise and efficient manipulation of large amounts of data. Its latest version supports object-oriented programming
Alpha?
Earliest release of a software product that is still under active development. Often buggy, incomplete and unstable to be released to relatively small number of developers for testing new features, getting early feedback, etc. Also called early access software
Assembly Language?
English-like abbreviations that represent elementary operations
_____________________ case programs to terminate immediately without having successfully performed their jobs
Fatal runtime errors
The amount of data produced worldwide is enormous and growing explosively. According to IBM, approximately 2.5 quintillion bytes (2.5 exabytes) of data are created daily }According to Salesforce.com, as of October 2015 90% of the world's data was created in just the prior 12 months
Figure 1.4 on page 9
Machine Languages
Generally consist of strings of numbers (ultimately reduced to 1s and 0s) that instruct computers to perform their most elementary operations one at a time.
Tim Berners-Lee also wrote communication protocols such as ...?
HyperText Transfer Protocol (HTTP)
Software as a Service (SaaS)
If you want to run an application, you buy a software package from a software vendor - often CD, DVD, or web download. You then install that software on your computer and run it as needed. As new versions appear, you upgrade your software, often at considerable time and money
Attributes are specified by the class's _________ _________
Instance Variables
Microprocessors also have had a profound impact in intelligent- consumer-electronic devices, including the recent explosion in the "_______ __ _____"
Internet of Things
The Internet is no longer just a network of computers—it's an __________________?
Internet of Things (IoT)
Java is also widely used for implementing?
Internet-based applications and software for devices that communicate over a network.
ARPA implemented what quickly became known as the ARPAnet, the precursor of today's ________.
Internet. Its main benefit proved to be the capability for quick and easy communication via e-mail.
Visual Basic?
Introduces in early 1990s by Microsoft to simplify the development of Microsoft Windows applications. Features comparable to those of C#
}Recognizing this early on, Sun Microsystems in 1991 funded an internal corporate research project led by _______ _______, which resulted in a C++-based object-oriented programming language that Sun called Java.
James Gosling
For many organizations, the preferred language for meeting their enterprise programming needs is ...?
Java
If you receive "bad command or filename," "javac: command not found" or "'javac' is not recognized as an internal or external command, operable program or batch file" why do you get this?
Java software installation was not completed properly. System's PATH command was not set properly. On some systems, you may need to reboot your computer or open command prompt after correcting the PATH for these settings to take effect
Linux source code (the program code) is available to the public for examination and modification and is free to download and install. Linux has become extremely popular on servers and in embedded systems, such as Google's Android-based smartphones.
Linux users benefit from a huge community of developers actively debugging and improving the kernel, and the ability to customize the operating system to meet specific needs.
Secondary storage unit
Long-term, high-capacity "warehousing" section. Programs or data not actively used by other units are normally placed in secondary storage devices until they are used again
}Every year or two, the capacities of computers have approximately doubled inexpensively. This remarkable trend is often called ________ ____.
Moore's Law, named by Gordon Moore, Co-founder of Intel
JavaScript?
Most widely used scripting language primarily used to add programmability to web pages - animations and interactivity with the user. All major web browsers support it
Jobs returned to Apple in 1996 when Apple bought NeXT. Apple's macOS operating system is a descendant of ________________
NeXTSTEP
Inheritance?
New class of objects can be created by this. The new class (called the subclass) starts with the characteristics of an existing class (called the superclass), possibly customizing them and adding unique characteristics of its own.
___________________________ allow programs to run to completion, often producing incorrect results
Nonfatal runtime errors
Python?
Object-oriented scripting language, released publicly in 1991. Developed by Guido van Rossum of National Research Institute for Mathematics and Computer Science in Amsterdam, Python draws heavily from Modula-3 - systems programming language. This programming language is extensible and can be extended through classes and programming interfaces
PHP?
Object-oriented, open-source "scripting" language supported by a community of developers and used by numerous websites. PHP is platform independent - implementations exist for all major UNIX, Linux, Mac and Windows operating systems.
The ___________-___ programming language, created by Brad Cox and Tom Love at Stepstone in the early 1980s, added capabilities for object-oriented programming (OOP) to the C programming language
Objective-C
method?
Preforming a task requires this, it houses the program statements that actually perform its tasks
These software programs guide the computer through ordered actions specified by people called computer?
Programmers
Beta?
Released to a larger number of developers later in the development process after most major bugs have been fixed and new features are nearly complete. Beta software is more stable, but still subject to change
Ruby on Rails?
Ruby created in mid 1990s by Yukihiro Matsumoto is an open-source, object-oriented programming language with a simple syntax that us similar to Python. Ruby on Rails combines scripting language Ruby with the Rails web-application framework developed by the company 37Signals. Many Ruby on Rails developers have reported productivity gains over other languages when developing database-intensive web applications
Scala?
Short for "scalable language" - was designed by Martin Odersky, a professor at Ecole Polytechnique Federale de Lausanne (EPFL) in Switzerland. Released in 2003, Scala uses both object oriented programming and functional programming paradigms and is designed to integrate with Java. Programming in Scala can reduce the amount of code in your applications significantly
Computers that might have filled large rooms and cost millions of dollars decades ago are now inscribed on _____ ______ smaller than a fingernail, costing perhaps a few dollars each.
Silicon Chips
_________ technology has made computing so economical that computers have become a commodity.
Silicon-chip
Interpreters?
Since compiling programs take a long time, These ____ programs developer to execute high-level language programs directly, avoid the delay or compilation, although they run slower than compiled programs.
High-level Languages?
Single statements accomplish substantial tasks.
Operating systems?
Software systems that make using computers more convenient.
Some popular Java and general programming forums include:
StackOverflow.com Coderanch.com The Oracle Java Forum—https://community.oracle.com/community/java </dream.in.code>—http://www.dreamincode.net/forums/forum/32-java/
Java Micro Edition (Java ME)
Subset of Java SE. Many devices use it and its Geared toward developing applications for resource-constrained embedded devices, such as: - Smartwatches - MP3 Players - Tv set-top boxes - smart meters (for monitoring electric energy usage) - and much more
In 2014, Apple introduced its new Swift programming language, which became open source in 2015. The iOS app-development community is shifting from Objective-C to _____.
Swift
Each Internet-connected- device has an IP address—a unique numerical identifier used by devices communicating via ___/__ to locate one another on the Internet.
TCP/IP
assemblers?
Transistor Programs convert early assembly-language programs to machine language
______________________________________ is the most widely used graphical scheme for modeling object-oriented systems.
The Unified Modeling Language (UML)
Information hiding?
The practice of hiding the details of a module with the goal of controlling access to the details of the module.
Transmission Control Protocol (TCP)?
The protocol (set of rules) for communicating over the ARPAnet.
Memory Unit?
The rapid-access, relatively low-capacity "warehouse" section of the computer, which stores data temporarily while an application is running (page 6 for more info)
Bytecodes are portable. What does this mean?
The same bytecode instructions can execute on any platform containing a JVM that understands the version of Java in which the bytecode instructions were compiled.
Kernel?
The software that contains the core components of the operating system
*|| 1.13 Getting Your Questions Answered ||*
There are many online forums in which you can get your Java questions answered and interact with other Java programmers.
}The Internet Protocol (IP) created a true "network of networks," the current architecture of the Internet.
This combined set of protocols is now called TCP/IP
Businesses rapidly realized that by using the Internet, they could improve their operations and offer new and better services to their clients.
This generated fierce competition among communications carriers and hardware and software suppliers to meet the increased infrastructure demand.
Why do Java API classes and methods improve program performance?
This is because they are written to perform efficiently, shortening program development time
class?
We create this type of program in Java to house the set of methods that perform the class's tasks.
Instantiation?
When an object is referred to an instance of its class. !!!! Just as someone has to build a car from its engineering drawings before you can actually drive a car, you must build an object of a class before a program can perform the tasks that the class's methods define.
In 1994, Berners-Lee founded ____________________________________ devoted to developing web technologies?
World Wide Web Consortium (W3C)
A thing is any object with an IP address and the ability to send data automatically over the Internet:
a car with a transponder for paying tolls, monitors for parking-space availability in a garage, a heart monitor implanted in a human, monitors for drinkable water quality, a smart meter that reports energy usage, radiation detectors, item trackers in a warehouse, mobile apps that can track your movement and location, smart thermostats that adjust room temperatures based on weather forecasts and activity in the home intelligent home appliances and many more.
Database
a collection of organized data organized for easy access and manipulation. Most popular database model is relational database in which data is stored in simple tables Tables includes records and fields. ◦For example, a table of students might include first name, last name, major, year, student ID number and grade point average fields. ◦The data for each student is a record, and the individual pieces of information in each record are the fields. You can search, sort and otherwise manipulate data based on its relationship to multiple tables or databases
Java Virtual Machine (JVM)?
a part of the JDK and the foundation of the Java platform—executes bytecodes.
Virtual Machine (VM)?
a software application that simulates a computer ◦Hides the underlying operating system and hardware from the programs that interact with it.
LAMP?
acronym for the open-sourced technologies that many developers use to build web apps inexpensively. It stands for Linux, Apache, MySQL, and PHP (or Perl or Python). More info on page 30
If the same VM is implemented on many computer platforms, applications written for that type of VM can be used on?
all those platforms
Object-oriented Programming (OOP)?
allows you to implement an object-oriented design as a working system.
What are Mashups?
an applications-development methodology in which you can rapidly develop powerful software applications by combining (often free) complementary web services and other forms of information feeds. * Look at figure 1.15
Follow a detailed _____ process for determining your project's _________ (i.e., defining what the system is supposed to do)
analysis, requirements
A bank-account object has a balance ______ that represents the amount of money in the account.
attribute
A car has _______ such as size, color, model. number of doors. The car's ______ are represented as part of its design in its engineering diagrams.
attributes
Almost any noun can be reasonably represented as software object in terms of ______ (name, color, size) and _______ (calculating, moving, communicating)
attributes, behaviors
Today's personal computers can perform _________ of calculations in one second—more than a human can perform in a lifetime.
billions
Windows ______ from many concepts (such as icons, menus and windows) developed by Xerox PARC and popularized by early Apple Macintosh operating systems.
borrowed
Use ______-______ approach to creating your programs. Avoid reinventing the wheel-use existing high-quality pieces wherever possible. This software reuse is a key benefit of object-oriented programming
building-block
Java drew the attention of the _______________ community because of the phenomenal interest in the Internet.
business
Java compiler translates Java source code into __________ that represent the tasks to execute.
bytecodes
Java Standard Edition contains?
capabilities needed to develop desktop and server applications.
◦An object, has attributes that it carries along as it's used in a program. ◦Specified as part of the object's _____.
class
Just as car manufacturers implement capabilities differently, _______ may implement an interface's methods differently.
classes
How will you create the _____ (i.e., the program instructions) for your programs?
code
Interfaces?
collections of related methods that typically enable you to tell objects what to do, but not how to do it
One challenge was to enable these different networks to?
communicate with each other.
Provide services that allow each application to execute safely, efficiently and __________ (i.e., in parallel) with other applications.
concurrently
With open-source development, individuals and companies _______ their efforts in developing, maintaining and evolving software in exchange for the right to use that software for their own purposes, typically at no charge
contribute
Compilers?
convert high-level language programs into machine language. Allow you to write instructions that look almost like everyday English and contain commonly used mathematical notations.
Apache Software Foundation?
creators of the Apache web server used to develop web-based applications
Mozilla Foundation?
creators of the Firefox web browser
Examples of objects?
date objects, time objects, audio objects, video objects, automobile objects, people objects, etc.
Open source software?
departs from the proprietary software development style that dominated software's early years
Develop a _____ that satisfies them }(i.e., specifying how the system should do it).
design
In 2007, the Open Handset Alliance was formed to _________, _________ and _______ Android, driving innovation in mobile technology and improving the user experience while reducing costs
develop, maintain, evolve
FORTRAN (FORmula TRANslator)
developed by IBM Corporation in mid-1950s to be used for scientific and engineering applications that require complex mathematical Computations. It's still widely used, and its latest versions to support object-oriented programming.
Hardware?
devices like computers or phones
In the late 1960s, ARPA—the Advanced Research Projects Agency of the Department of Defense—rolled out plans to network the main computer systems of approximately a ______ ARPA-funded universities and research institutions.
dozen
Computing costs are ______ dramatically, owing to rapid developments in hardware and software technologies.
dropping
Classes (and their objects) _________, encase, their attributes and methods
encapsulate
When the JVM encounters these compiled parts again, the ______ machine-language code executes.
faster
}Open-source code is often scrutinized by a much larger audience than proprietary software, so errors often get removed ____
faster
Release Candidates?
feature complete and bug free and ready for use by the community
HyperText Transfer Protocol (HTTP)?
form the backbone of his new hypertext information system, which he referred to as the World Wide Web.
Java Enterprise Edition (Java EE)?
geared toward developing large-scale, distributed networking applications and web-based applications.
}In our car analogy, an object of class "convertible" certainly is an object of the more _______ class "automobile," but more specifically, the roof can be raised or lowered.
general
Mid-1980s: Microsoft developed the Windows operating system, consisting of a ______ user interface built on top of DOS—an enormously popular personal-computer operating system that users interacted with by typing commands.
graphical
In 1979, Jobs and several Apple employees visited Xerox PARC (Palo Alto Research Center) to learn about Xerox's desktop computer that featured a __________________________________
graphical user interface (GUI)
Linux operating system?
greatest success of the open-source movement
A computer consists of various devices such as keyboards, screen, mouse. These devices are referred to as?
hardware
Objects may communicate with one another, but they are normally not allowed to know how other objects are implemented—implementation details can be ______ within the objects themselves.
hidden
Computers can perform calculations and make logical decisions phenomenally faster than?
human beings can
Apple's proprietary operating system, ____, is derived from Apple's macOS and is used in the iPhone, iPad, iPod Touch, Apple Watch and Apple TV devices.
iOS
A class _______ zero or more interfaces, each of which can have one or more methods, just as a car implements separate interfaces for basic driving functions, controlling the radio, controlling the heating and air conditioning systems, and the like.
implements
Software Development Kit (SDK)?
include the tools and documentation developers use to program applications
Open source also encourages __________. Enterprise systems companies, such as IBM, Oracle and many others, have made significant investments in Linux open-source development
innovation
Once you know how to use this _______ for turning, accelerating and braking, you can drive many types of cars, even though manufacturers may implement these systems differently.
interface
In parallel with the early evolution of the Internet, organizations worldwide were implementing their own networks for both ________________ (that is, within an organization) and ______________ (that is, between organizations) communication.
intraorganization, interorganization
Swift?
introduced in 2014, its Apple's Programming language of the future for developing iOS and OS X applications (apps). Contemporary language that includes popular programming-language features from languages such as Objective-C, Java, C#, Ruby, Python and others. One of most popular Programing Languages (According to Tiobe Index) and its open-source to all non-Apple platforms as well
Refactoring?
involves reworking programs to make them clearer and easier to maintain while preserving their correctness and functionality. Widely employed w. agile development methodologies. Many IDEs contain built-in refactoring tools to do major portions of the reworking automatically
The JVM is invoked by the java command. To execute a Java application called Welcome, you'd type the command...?
java Welcome
The Linux _____ is the core of the most popular open-source, freely distributed, full-featured operating system Developed by a loosely organized team of volunteers and is popular in servers, personal computers and embedded systems (such as the computer systems at the heart of smartphones, smart TVs and automobile systems)
kernel
Java SE 8 added the beginnings of functional programming with?
lambdas and Streams
Computers can be envisioned as divided into various _______ ______ or sections.
logical units
Any computer can directly understand only its own ______ language, defined by its hardware design
machine
Moore's Law and related observations apply especially to the amount of ...
memory that computers have for programs, the amount of secondary storage (such as solid-state drive storage) they have to hold programs and data over longer periods of time, and their processor speeds—the speeds at which they execute their programs (i.e., do their work).
When you drive a car, pressing its gas pedal sends a ______ to the car to perform a task—that is, to go faster. Similarly, you send messages to an object.
message
Each message is implemented as a ______ ______ that tells a method of the object to perform its task.
method call
}Software development groups can use a modular, object-oriented design-and-implementation approach to be much more productive than with earlier popular techniques like "structured programming"—object-oriented programs are often easier to understand, correct and _______.
modify
Languages like Java are...
object oriented
Objective-C
object-oriented language based on C. Developed early 1980s and later acquired by NeXT, then in turn, acquired by Apple. Key programming language for OS X operating system and all iOS-powered devices
Analyzing and designing your system from an object-oriented point of view is called an ________________________________
object-oriented-analysis-and-design (OOAD) process.
Each bank-account object knows the balance in the account it represents, but not the balances of the _____ accounts in the bank.
other
Every car maintains its ____ attributes. Each car knows how much gas is in its own gas tank, but not how much is in the tanks of other cars.
own
The microprocessor revolution's most important contribution to date is that it enabled the development of _______ computers.
personal
Bytecode instructions are?
platform independent
Arithmetic Logic Unit (ALU)
preforms calculations, such as addition, subtraction, multiplication, and division. It also contains decision mechanism that allow the computer to compare two items from memory unit to determine if they are equal. ALU is part of CPU. (page 6 for more info)
Goal of object Oriented Programming?
programming methodology that's enhancing programmer productivity, thereby reducing software development costs
Windows is a ______ operating system—it's controlled by Microsoft exclusively. Windows is by far the world's most widely used operating system.
proprietary
Design Patterns?
proven architectures for constructing flexible and maintainable object-oriented software. Field of design patterns tries to enumerate those recurring patterns, encourage software designers to reuse them to develop better-quality software using less time, money and effort
What are Integrated development environments (IDEs)?
provide tools that support the software development process, such as editors, debuggers for locating logic errors that cause programs to execute incorrectly and more.
Platform as a Service (PaaS)
provides a computing platform and a solution as a service. Clients use the platform and environment to build applications and services over the internet
Github?
provides tools for managing open-source projects—it has millions of them under development
This is true even on today's Internet, with e-mail, instant messaging, file transfer and social media such as Facebook and Twitter, enabling billions of people worldwide to communicate ______ and _____.
quickly, easily
After you learn Java, you'll find it ______ straightforward to begin developing and running Android apps.
relatively
the classes object come from essentially ______ software components
reusable
Errors such as division by zero occur as a program runs, so they are called ...?
runtime errors or execution time errors
}Supercomputers are already performing thousands of trillions (quadrillions) of instructions per ______!
second
Agile Software development?
set of methodologies that try to get software implemented faster and using fewer resources
Continuous Beta?
software that's developed using this approach generally does not have version numbers
}Programmers write instructions in various programming languages, some directly understandable by computers and others requiring intermediate translation ____.
steps
Pascal?
structured programming language (disciplined approach to writing programs that are clearer, easier to test and debug and easier to modify than programs produced with previous techniques). This language was developed by Professor Niklaus Wirth in 1971. Popular for teaching structured programming for several decades
What does TCP ensured?
that messages, consisting of sequentially numbered pieces called packets, were properly routed from sender to receiver, arrived intact and were assembled in the correct order.
Eclipse Foundation?
the ____ Integrated Development Environment helps programmers conveniently develop software
Android?
the fastest growing mobile and smartphone operating system—is based on the Linux kernel and Java.
What is bandwidth?
the information-carrying capacity of communications lines—on the Internet has increased tremendously, while hardware costs have plummeted.
Software?
the instructions you write, controls hardware
Now used to develop large-scale enterprise applications, such as what?
to enhance the functionality of web servers, to provide applications for consumer devices, to develop robotics software and for many other purposes.
A goal of W3C?
to make the web accessible to everyone regardless of disabilities, language or culture.
Cloud Computing?
use of web services to perform functions that were traditionally performed with software on an individual computer; i.e. Flickr, Google Docs, etc.
}In the car analogy, a "basic-driving-capabilities" interface consisting of a steering wheel, an accelerator pedal and a brake pedal would enable a driver to tell the car _____ to do.
what
Java is ...
world's most used programming language
Carefully review the design (and have your design reviewed by other software professionals) before ...
writing any code.
Similar growth has occurred in the communications field as
}Costs have plummeted as enormous demand for communications bandwidth (i.e., information-carrying capacity) has attracted intense competition. This improvement fosters Informational Revolution
Reuse?
}Just as a car's engineering drawings can be reused many times to build many cars, you can reuse a class many times to build many objects. }Reuse of existing classes when building new classes and programs saves time and effort. }Reuse also helps you build more reliable and effective systems, because existing classes and components often have undergone extensive testing, debugging and performance tuning. } Just as the notion of interchangeable parts was crucial to the Industrial Revolution, reusable classes are crucial to the software revolution that has been spurred by object technology.
Benefit for developing Android Apps?
}openness of the platform—the operating system is open source and free.
HyperText Markup Language (HTML)?
}the technology for sharing information via "hyperlinked" text documents
High-level language example...
◦A payroll program written in a high-level language might contain a single statement such as: grossPay = basePay + overTimePay
*Phase 4: Bytecode Verification*
◦As the classes are loaded, the bytecode verifier examines their bytecodes ◦Ensures that they're valid and do not violate Java's security restrictions. }Java enforces strong security to make sure that Java programs arriving over the network do not damage your files or your system (as computer viruses and worms might).
Continuing the analogy of Automobile as an object...
◦Enables people with little or no knowledge of how engines, braking and steering mechanisms work to drive a car easily. ◦Before you can drive a car, it must be built from the engineering drawings that describe it. ◦A completed car has an actual accelerator pedal to make it go faster, but even that's not enough—the car won't accelerate on its own (hopefully!), so the driver must press the pedal to accelerate the car.
Java programs go through two compilation phases:
◦One in which source code is translated into bytecodes (for portability across JVMs on different computer platforms) and ◦A second in which, during execution, the bytecodes are translated into machine language for the actual computer on which the program executes.
Automobile as an object analogy...
◦Suppose you want to drive a car and make it go faster by pressing its accelerator pedal. ◦Before you can drive a car, someone has to design it. ◦A car typically begins as engineering drawings, similar to the blueprints that describe the design of a house. ◦Drawings include the design for an accelerator pedal. ◦Pedal hides from the driver the complex mechanisms that actually make the car go faster, just as the brake pedal hides the mechanisms that slow the car, and the steering wheel "hides" the mechanisms that turn the car.
*Phase 5: Execution*
◦The JVM executes the program's bytecodes. ◦JVMs typically execute bytecodes using a combination of interpretation and so-called just-in-time (JIT) compilation. ◦Analyzes the bytecodes as they're interpreted ◦A just-in-time (JIT) compiler—such as Oracle's Java HotSpot™ compiler—translates the bytecodes into the underlying computer's machine language. Look at figure 1.10 page 22
*Phase 3: Loading a Program into Memory*
◦The JVM places the program in memory to execute it—this is known as loading. ◦Class loader takes the .class files containing the program's bytecodes and transfers them to primary memory. ◦Also loads any of the .class files provided by Java that your program uses. }The .class files can be loaded from a disk on your system or over a network.
*Phase 2: Compiling a Java Program into Bytecodes*
◦Use the command javac (the Java compiler) to compile a program. For example, to compile a program called Welcome.java, you'd type "javac Welcome.java" ◦If the program compiles, the compiler produces a .class file called Welcome.class that contains the compiled version. * While Compiling, secondary storage creates bytecodes and stores them in a file with name ending in .class