830 likes | 996 Views
Programming Methodology and Web Rapid Prototyping (Session 1). TC101 , 5 Sessions course, Conducted by Solvith http://solvith.com/ACJC. Today. Session 1 [25 May] Introduction to computing ( 30 mins ). History and Trends Overview of Web Service Delivery (1.5 Hours)
E N D
Programming Methodology and Web Rapid Prototyping (Session 1) TC101 , 5 Sessions course, Conducted by Solvith http://solvith.com/ACJC
Today Session 1 [25 May] • Introduction to computing (30 mins). • History and Trends • Overview of Web Service Delivery (1.5 Hours) • Server-Side Language , dynamic web pages. The web infrastructure. HTTP protocols. Client-side Language • Lab setup (30 mins) • Acjctc.com lab setup • Introduction to PHP language (1.5 hour) • Control flows (If,loopsetc). Logic • Take-home Lab (3 Questions)
The Computing Story • The Shortage Of Computing Professionals “According to one recent report, in the next decade American colleges will mint 40,000 graduates with a bachelor's degree in computer science, though the U.S. economy is slated to create 120,000 computing jobs that require such degrees. ” “Singapore is experiencing a severe drought of mobile app developers, much less skilled ones, according to industry voices ”
The Computing Story • Tumblr $1.1B, David Karp (26 Years Old) • Summly , $30M ,Nick D’Aloisio (17 Years Old) • FB ,Zuckerberg, $13.3b net worth , (29 years old) • YT , Chad Hurley, 1.65b (now 35 years old) • Instagram , Kevin Systrom1b acqusition (29 years old) (Reading: Facebook Effect , Chp1)
History • http://www.youtube.com/watch?v=UHGF_BQi1PM
1945 – Vannevar Bush writes about “memex”, a futuristic, automatic, personal library system 1960s – Advanced Research Projects Agency (ARPA) does research on “internetwork”, connecting small and large networks
“The Demo” 1968 – Doug Engelbartdemonstrates NLS, a hypertext system that uses a “mouse” http://technologyyz.blogspot.com/2012/12/engelbart-mouse.html
1969 – ARPANET goes online with 4 nodes Dec 1969 June 1970 Dec 1970 Sept 1971 Aug 1972 June 1975 http://www.mappingcyberspace.com/gallery/figure1_2.html
1971 – Ray Tomlinson sends first e-mail (sent to himself and probably read “QWERTYUIOP”) • 1972 – Telnet allows user to login to a remote computer • 1973 – FTP (File Transfer Protocol) allows files to be transferred between computers • 1981 – ARPANET (Internet) has 200 nodes
1982 – ARPANET standardizes its use of TCP/IP (Transmission Control Protocol / Internet Protocol) to send data packets across the network • 1984 – Over 1000 nodes on Internet • 1986 – Over 10,000 nodes on Internet. Govt splits ARPANET into MILNET (military-only network) and turns over ARPANET to NSF (National Science Foundation).
1988 – Over 100,000 nodes on Internet • 1988 – First Internet worm by Robert Tappan Morris crashes 6% of servers on Internet Figure by Roy Brander at http://www.cuug.ab.ca/~branderr/csce/Ihistory.html
Images: http://www.radford.edu/sjennings15/text.htm http://en.wikipedia.org/wiki/Tim_Berners-Lee • 1990 – Tim Berners-Lee and others at CERN develop the WorldWideWeb (WWW), HTML documents transmitted over the Internet by a web server to web browsers using URIs and HTTP (1st web page online on Aug 6, 1991)
Image: http://en.wikipedia.org/wiki/File:NCSAMosaic1.0Mac.png • 1992 – ViolaWWW browser for UNIX. 50 web servers • 1993 – 500 web serversMosaic web browser – multi-platform and1st browser to display inline images, written by Marc Andreesen
1994 – 2,500 web serversWWW Consortium (W3C) beganNetscape 1.0 Yahoo! Web directory started by Jerry Yang and David Filo
Image: http://en.wikipedia.org/wiki/File:Internet_Explorer_1.0.png • 1995 – VRML (Virtual Reality Markup Language) releasedNetscape 2.0 – Supported plug-ins, frames, Java applets, JavaScriptInternet Explorer 1.0 released by Microsoft
1996 – Macromedia Flash 1.0 (previously called FutureSplash Animator) Internet Archive begins archiving the Web
“Netscape 72, Microsoft 18” Image: http://home.snafu.de/tilman/mozilla/stomps.html 1997 – HTML 4.0 de facto standardBrowser Wars I: Netscape vs. IE
1998 – Network Solutions registers 2 millionth domain nameEmergence of <XML>Google founded by Larry Page and Sergey Brin
1999 – Over 5 million domain namesInternet growth rate is approximately one computer added per secondInternet2 (code name Abilene) debuts • 2000 – Napster sued over music sharingWeb size estimates by NEC-RI and Inktomi surpass 1 billion indexable pages.XHTML 1.0 recommended by W3C
2002 – Approximately 45 million web sitesBlogs become popular The Political Blogosphere and the 2004 U.S. Election by Adamic & Glance
Image: http://www.engadget.com/2007/10/16/apple-officially-cuts-drm-free-track-prices-to-99/ • 2003 – iTunes.com and other legal Internet music downloading services appear. iTunes.com registers 25th million song download in Dec (“Let It Snow! Let It Snow! Let It Snow!” by Frank Sinatra).
Image: http://www.lbl.gov/ITSD/CIS/compnews/2003/August/01-Sobig-worm.html • 2003 – Securityproblems • SQL Slammer worm - largest and fastest spreading distributed denial of service (DDoS) attacks ever • Sobig.F virus - the fastest spreading virus ever • Blaster (MSBlast) worm – one of the most damaging worms ever
2004 – MySpace and Facebook popularize online social networking
Image: http://www.usatoday.com/tech/news/2006-10-11-youtube-karim_x.htm • 2005 – YouTube founded by three former PayPal employees and sold to Google the next year for $1.65B
2006 – Time Magazine’s person of the year: You. Acknowledges significance of user- generated content (Web 2.0)
2007 – One of the first massive cyber attacks: Estonian websites attacked by Russian hackers after relocating the Bronze Solider of Tallinn monument Image: http://en.wikipedia.org/wiki/File:Tallinn_Bronze_Soldier_-_May_2006_-_029.jpg • 2006 – Twitter launches 140 character limit micro-blogging service; ignites use of URL shortening serviceshttp://bit.ly/c1htE
Image: http://en.wikipedia.org/wiki/File:Browser_Wars.svg 2008 – Firefox 3 sets Guinness World Record for the “largest number of software downloads in 24 hours.” (8 million downloads)
Image: http://www.google.com/googlebooks/chrome/big_04.html 2008 – Google releases their own web browser called Chrome
2008 – W3C releases First Public Working Draft of HTML5 spec 2012 – Mobile devices account for 10% of all web page views (StatCounter)ICANN reveals 1,410 new generic top-level domains (gTLDs) like .apple, .catholic, and .dad
http://www.youtube.com/watch?v=eZSPWDMn730&list=PLC40D55C3253816C3http://www.youtube.com/watch?v=eZSPWDMn730&list=PLC40D55C3253816C3
Big Trend • Data Analytics (Very Hot !) • Big Data • AI Financial Traders • Energy Analytics • Business Intelligence • Wearable Computers • Google goggles • Cloud Computing
The Anatomy Of A Web Request • “Many Requests” • Request 1 • Download page (Now it knows it has to download pictures and video) • Request 2 • Download the Pictures • Request 3 • Request for Video Stream TEXT Pictures VIDEO
Client Scripting Web Service Delivery Infrastructure WWW Database Server GET facebook.com (HTTP) (Query Language) Eg: SQL (Server-sided Scripting) Eg: PHP Facebook HTTP Server DNS SERVER CGI Server (User Agent) eg: Firefox Browser FILE SERVER
HTTP Request Example1: GET / HTTP/1.1 <blank line> Example2: HEAD / HTTP/1.1 Accept: */* Connection: Keep-Alive Host: somehost.com User-Agent: Generic <blank line>
HTTP Request • Mainly two types of HTTP Request • GET , POST • Get is usually through url • Eg: www.example.com?page=page_1 • Post is through forms (Chrome Demo)
Client-Sided Scripting • Scripting that occurs on the client side • Processed by the browser • We use HTML , Hyper Text Marked Up Language • And sometimes Javascript • AJAX is a javascript component.
Server-Sided Scripting • Scripting that occurs on the Server side • Processed by the server(Or generally shifted to cloud) • Sometimes called CGI • Typically more complex, sometimes involve connection to DB • EG: PHP , ASP.NET , .JS etc..
Computing Methodology • An algorithm is a well-defined computational procedure consisting of a set of instructions, that takes some value or set of values, as input, and produces some value or set of values, as output. Algorithm Input Output
Algorithm • Each step of an algorithm must be exact. • An algorithm must terminate. • An algorithm must be effective. • An algorithm must be general. • Can be presented in pseudo-code or flowchart.
Find maximum and average of a list of numbers (1/2) • Pseudo-code sumcount 0 // sum = sum of numbers // count = how many numbers are entered? max 0 // max to hold the largest value eventually for each num entered, countcount + 1 sumsum + num if num > max then maxnum avesum / count print max, ave Are there any errors in this algorithm?
Find maximum and average of a list of numbers (1/2) Terminator box • Flowchart start Process box sumcount 0 max 0 Decision box end of input? Yes No increment count sum sum + num ave sum/count No Yes print max, ave max num num > max? No end
Data Representation • Internal representation: bits (binary digits) 0 and 1 • 1 byte = 8 bits • We will not deal with bit level and bit operations • Data types (lists here are not exhaustive): • Integers: • Real numbers: • Characters: char • Strings • A variable holds some data and it belongs to a data type and occupies some memory space, shown as a box in the following slides.
Variables used: num1 num2 final1 final2 Algorithm: Example • Example : Arrange two integers in increasing order (sort). Algorithm A: enter values for num1, num2 // Assign smaller number into final1, // larger number into final2 if (num1 < num2) then final1num1 final2num2 else final1num2 final2num1 // Transfer values in final1, final2 back to num1, num2 num1final1 num2 final2 // Display sorted integers print num1, num2
Euclidean algorithm • First documented algorithm by Greek mathematician Euclid in 300 B.C. • To compute the GCD (greatest common divisor) of two integers. • Let A and B be integers with A > B ≥ 0. • If B = 0, then the GCD is A and algorithm ends. • Otherwise, find q and r such that • A = q.B + r where 0 ≤ r < B • 4. Replace A by B, and B by r. Go to step 2.
Prime Number Checker • Prompt Student for pseudo code..
Step-wise Refinement (1/3) • From the examples, we see that in general an algorithm comprises three steps: • Input (read data) • Compute (process input data to generate some answers) • Output (display answers) • The ‘compute’ step is the most complex. • Step-wise refinement – break down a complex step into smaller steps.
The History of PHP • Rasmus Lerdorf • Not a trained computer scientist • Consultant building dynamic web sites - got tired of doing the same thing over and over in C • Reusable bits + HTML Templates http://www.vimeo.com/6215179
Science Calculations System System C uses curly braces { } for code blocks. Scripting/ Interpreted http://en.wikipedia.org/wiki/History_of_programming_languages
Request / Response Cycle • You enter http://server.com into your browser’s address bar. • Your browser looks up the IP address for server.com. • Your browser issues a request for the home page at server.com. • The request crosses the Internet and arrives at the server.com web server. • The web server, having received the request looks for the web page on its hard disk. • The web page is retrieved by the server and returned to the browser. • Your browser displays the web page.