3. Before we start talking about development:
what is algorithm
What is algorithm? Set of instructions to perform some task or solve some problem
in finite time.
Where the name did come from? From latinized version of name of Muhammad ibn
Musa al-Khwarizmi (780-850) a PersianUzbek mathematician, astronomer and
geographer, the author of "Dixit algorizmi" ("So said al-Khwārizmī") or "Algoritmi de
numero Indorum" ("al-Khwārizmī on the Hindu Art of Reckoning") - basic book about
arythmetic operations algorithms on Indian numbers (positional number system
operations)
6. The earliest algorithms
1.Euclidean algorithm, described in Euclid's Elements (300 BC)
2.Sieve of Eratosthenes (Introduction to Arithmetic by Nicomachus, 60–120
AD)
9. Implementation
Most algorithms are intended to be implemented as computer programs. However,
algorithms are also implemented by other means, such as:
1. in a biological neural network (for example, the human brain implementing
arithmetic or an insect looking for food)
2. in an electrical circuit
3. or in a mechanical device
10. Computer program
By wikipedia, a computer program is a sequence of instructions that
performs a specific task when executed by a computer. A computer requires
programs to function, and typically executes the program's instructions in a
central processing unit.
I would just simplify this to: a computer program is an algorythm
implemented in code understandable for computer
11. First developer ever: Ada Countess of Lovelace
Augusta Ada King, Countess of Lovelace a British
mathematician and writer, chiefly known for her work on
Charles Babbage's early mechanical general-purpose
computer, the Analytical Engine. Her notes on the engine
include what is recognised as the first algorithm intended
to be carried out by a machine. Because of this, she is
often regarded as the first computer programmer.
Ada was born 10 December 1815 as the only legitimate
child of the poet George Gordon, Lord Byron and his wife
Anne Isabella Milbanke, Baroness Wentworth
12. The earliest programmable machine
In 1801, Joseph-Marie Jacquard devised a loom
that would weave a pattern by following a series of
perforated cards. Patterns, including flowers and
leaves, could be weaved and repeated by arranging
the cards.
У 1801 Жаккард винайшов ткацький
верстат, який би плів шаблон слідуючи
серії перфорованих карт. Шаблони, у
тому числі квітів і листя, можуть бути
виткані і повторені розміщуванням
карток.
13. Babbage Analytical Engine
In 1837, Charles Babbage was inspired by Jacquard's loom to attempt to build the
Analytical Engine. The names of the components of the calculating device were
borrowed from the textile industry. In the textile industry, yarn[пряжа] was brought
from the store[магазин,припас] to be milled[розмелювати,фрезерувати]. The device
would have had a "store"—memory to hold 1,000 numbers of 40 decimal digits each.
Numbers from the "store" would then have then been transferred to the "mill" [млин]
(analogous to the CPU of a modern machine), for processing.
14. Babbage Analytical Engine
It was programmed using two sets of perforated cards—one to direct the
operation and the other for the input variables. However, after more than
17,000 pounds of the British government's money, the thousands of cogged
wheels and gears never fully worked together.[тисячі зубчастих коліс і
шестерень ніколи повністю не працювали разом] During a nine-month
period in 1842–43, Ada Lovelace translated the memoir of Italian
mathematician Luigi Menabrea. The memoir covered the Analytical Engine.
The translation contained Note G which completely detailed a method for
calculating Bernoulli numbers using the Analytical Engine. This note is
recognized by some historians as the world's first written computer program.
15. Babbage Analytical Engine
The Analytical Engine was a proposed mechanical general-purpose computer
designed by English mathematician and computer pioneer Charles Babbage. It
was first described in 1837 as the successor to Babbage's difference engine, a
design for a mechanical computer. The Analytical Engine incorporated an
arithmetic logic unit, control flow in the form of conditional branching and loops,
and integrated memory, making it the first design for a general-purpose
computer that could be described in modern terms as Turing-complete.
16. Babbage Analytical Engine
In other words, the logical structure of the Analytical
Engine was essentially the same as that which has
dominated computer design in the electronic era.
Babbage was never able to complete construction of
any of his machines due to conflicts with his chief
engineer and inadequate funding. It was not until the
1940s that the first general-purpose computers were
actually built, more than a century after Babbage had
proposed the pioneering Analytical Engine in 1837.
17. Types of programming languages
A computer program is usually written by a computer programmer in a programming
language. From the program in its human-readable form of source code, a compiler
can derive machine code—a form consisting of instructions that the computer can
directly execute. Alternatively, a computer program may be executed with the aid of an
interpreter.
Compiled ( Assembler, Pascal, Delphi, C#, C++, Java etc)
Interpreted (PHP, Ruby, Python, Javascript etc)
18. Computer program types
A part of a computer program that performs a well-defined task is known as an
algorithm. A collection of computer programs, libraries and related data are
referred to as software. Computer programs may be categorized along
functional lines, such as application software or system software.
Application software (called also Software or Soft)
Programming languages to write such: Pascal, Delphi, C#
System software (called also Hardware)
Programming languages: C++, Assembler
19. World Wide Web
The World Wide Web (WWW) is an open source information space where
documents and other web resources are identified by URLs, interlinked by
hypertext links, and can be accessed via the Internet. It has become known
simply as the Web. The World Wide Web was central to the development of the
Information Age and is the primary tool billions of people use to interact on the
Internet.
The World Wide Web was invented by English scientist Tim Berners-Lee in
1989. He wrote the first web browser in 1990 while employed at CERN in
Switzerland
20. Web Development
Web development is a broad term for the
work involved in developing a web site for
the Internet (World Wide Web) or an
intranet (a private network). Web
development can range from developing
the simplest static single page of plain text
to the most complex web-based internet
applications, electronic businesses, and
social network services.
21. Domain-specific language vs. general-
purpose language
Предметно-орієнтовані мови супроти мов загального призначення
GPL: C, Java or Python
DSL: Apex (Salesforce), HTML, ASP, JSP, Matlab, Maple
22. Cloud computing
Cloud computing, also known as 'on-demand computing', is a kind of Internet-
based computing, where shared resources, data and information are provided
to computers and other devices on-demand. It is a model for enabling
ubiquitous, on-demand access to a shared pool of configurable computing
resources (e.g., networks, servers, storage, applications and services) that can
be rapidly provisioned and released with minimal management effort. Cloud
computing and storage solutions provide users and enterprises with various
capabilities to store and process their data in third-party data centers.
24. Why is it called “cloud”?
The origin of the term cloud computing is unclear. The word "cloud" is commonly used
in science to describe a large agglomeration of objects that visually appear from a
distance as a cloud and describes any set of things whose details are not inspected
further in a given context. Another explanation is that the old programs that drew
network schematics surrounded the icons for servers with a circle, and a cluster of
servers in a network diagram had several overlapping circles, which resembled a
cloud.
25. Service models: SAAS, PAAS, IAAS
Though service-oriented architecture
advocates "everything as a service" (with
the acronyms EaaS or XaaS or simply aas)
cloud-computing providers offer their
"services" according to different models,
which happen to form a stack:
infrastructure-, platform- and software-as-a-
service.
27. What is Salesforce?
Salesforce.com is a cloud computing and social enterprise software-as-a-service
(SaaS) provider based in San Francisco. It was founded in March 1999, in part by
former Oracle executive Marc Benioff.
28. What is Apex on Force.com platform?
Apex is a strongly typed, object-oriented programming language that allows
developers to execute flow and transaction control statements on the Force.com
platform server in conjunction with calls to the Force.com API. Using syntax that looks
like Java and acts like database stored procedures, Apex enables developers to add
business logic to most system events, including button clicks, related record updates,
and Visualforce pages. Apex code can be initiated by Web service requests and from
triggers on objects.
29. What is Visualforce?
Visualforce is a framework that allows developers to build sophisticated,
custom user interfaces that can be hosted natively on the Force.com platform.
The Visualforce framework includes a tag-based markup language, similar to
HTML, and a set of server-side “standard controllers” that make basic database
operations, such as queries and saves, very simple to perform. In the
Visualforce markup language, each Visualforce tag corresponds to a section of
a page, a related list, or a field. The behavior of Visualforce components can
either be controlled by the same logic that is used in standard Salesforce
pages, or developers can associate their own logic with a controller class
written in Apex.
30. Salesforce Object Query Language (SOQL)
Use the Salesforce Object Query Language (SOQL) to search your organization’s
Salesforce data for specific information. SOQL is similar to the SELECT statement in
the widely used Structured Query Language (SQL) but is designed specifically for
Salesforce data. With SOQL, you can construct simple but powerful query strings in
the following environments: In the queryString parameter in the query() call In Apex
statements In Visualforce controllers and getter methods In the Schema Explorer of
the Force.com IDE
35. Further readings
1. My blog: https://patlatus.wordpress.com/category/salesforce/
2. http://sug-lviv.blogspot.com/2014/02/salesforce.html (in Ukrainian)
3. https://developer.salesforce.com/docs/