Structured Programming Week 3 INFM 603. Muddiest Points Emergent behavior of the Web HTML class attribute The details of JavaScript … p.style1 { font-family:arial;

Slides:



Advertisements
Similar presentations
INFM 603: Information Technology and Organizational Context Jimmy Lin The iSchool University of Maryland Thursday, September 19, 2013 Session 3: JavaScript.
Advertisements

Java Script Session1 INTRODUCTION.
Programming TBE 540 Farah Fisher. Objectives After viewing this presentation, the learner will be able to… Given a task, create pseudocode Given pseudocode,
ITEC113 Algorithms and Programming Techniques
Programming Week 9 LBSC 690 Information Technology.
1 Outline 13.1Introduction 13.2A Simple Program: Printing a Line of Text in a Web Page 13.3Another JavaScript Program: Adding Integers 13.4Memory Concepts.
Working with JavaScript. 2 Objectives Introducing JavaScript Inserting JavaScript into a Web Page File Writing Output to the Web Page Working with Variables.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Introduction to Scripting.
Web Infrastructure Week 3 INFM 603. The Key Ideas Questions Structured Programming Modular Programming Data Structures Object-Oriented Programming.
LBSC 690 Session #10 Programming, JavaScript Jimmy Lin The iSchool University of Maryland Wednesday, November 5, 2008 This work is licensed under a Creative.
Data Structures Week 4 INFM 603. The Key Ideas Structured Programming  Modular Programming  Data Structures Object-Oriented Programming.
Programming Week 5 LBSC 690 Information Technology.
Programming Week 5 LBSC 690 Information Technology.
Structured Programming and UML Overview Session 2 LBSC 790 / INFM 718B Building the Human-Computer Interface.
XP 1 Working with JavaScript Creating a Programmable Web Page for North Pole Novelties Tutorial 10.
CIS101 Introduction to Computing Week 11. Agenda Your questions Copy and Paste Assignment Practice Test JavaScript: Functions and Selection Lesson 06,
LBSC 690: Session 10 Programming, JavaScript Jimmy Lin College of Information Studies University of Maryland Monday, November 12, 2007.
Javascript II Expressions and Data Types. 2 JavaScript Review programs executed by the web browser programs embedded in a web page using the script element.
Web Infrastructure Week 2 INFM 603. Agenda Questions XHTML CSS JavaScript.
Chapter 1 Program Design
Chapter 2: Algorithm Discovery and Design
ALGORITHMS AND FLOW CHARTS 1 Adapted from the slides Prepared by Department of Preparatory year Prepared by: lec. Ghader Kurdi.
2012 •••••••••••••••••••••••••••••••••• Summer WorkShop Mostafa Badr
CSS, Programming Intro Week 4 INFM 603. Agenda JavaScript Intro.
11 Chapter 4 LOOPS AND FILES. 22 THE INCREMENT AND DECREMENT OPERATORS To increment a variable means to increase its value by one. To decrement a variable.
Programming Games Computer science big ideas. Computer Science jargon. Show virtual dog Homework: [Catch up: dice game, credit card or other form.] Plan.
 2003 Prentice Hall, Inc. All rights reserved. CHAPTER 3 JavaScript 1.
WML II (“Son of WML”) WML WMLScript. WML - A Quick Review Document structure ,... Text and image controls ...,,..., Navigation controls ,,, Events.
High-Level Programming Languages: C++
CIS Computer Programming Logic
Created by, Author Name, School Name—State FLUENCY WITH INFORMATION TECNOLOGY Skills, Concepts, and Capabilities.
Generations of Programming Languages First generation  Machine Language Second Generation  Assembly Language Third Generation  Procedural language such.
Functions and Data Structures Week 4 INFM 603. Programming in Four Parts Structured Programming  Data Structures  Modular Programming Object-Oriented.
Goals of Course Introduction to the programming language C Learn how to program Learn ‘good’ programming practices.
Client Scripting1 Internet Systems Design. Client Scripting2 n “A scripting language is a programming language that is used to manipulate, customize,
Nonvisual Arrays and Recursion by Chris Brown under Prof. Susan Rodger Duke University June 2012.
CMPS 211 JavaScript Topic 1 JavaScript Syntax. 2Outline Goals and Objectives Goals and Objectives Chapter Headlines Chapter Headlines Introduction Introduction.
1 JavaScript in Context. Server-Side Programming.
XP Tutorial 10New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 Working with JavaScript Creating a Programmable Web Page for North Pole.
CHAPTER 4 Java Script อ. ยืนยง กันทะเนตร คณะเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยพะเยา 1.
Topic: An Introduction to JavaScript - from Beginning JavaScript by Wilton (WROX)
 2003 Prentice Hall, Inc. All rights reserved. CHAPTER 3 JavaScript 1.
By the end of this session you should be able to...
20-753: Fundamentals of Web Programming 1 Lecture 12: Javascript I Fundamentals of Web Programming Lecture 12: Introduction to Javascript.
C++ Basics C++ is a high-level, general purpose, object-oriented programming language.
ITEC113 Algorithms and Programming Techniques
CSD 340 (Blum)1 Starting JavaScript Homage to the Homage to the Square.
CS161 Topic #16 1 Today in CS161 Lecture #16 Prepare for the Final Reviewing all Topics this term Variables If Statements Loops (do while, while, for)
ECA 225 Applied Interactive Programming1 ECA 225 Applied Online Programming basics.
JavaScript, Fourth Edition
8-1 Compilers Compiler A program that translates a high-level language program into machine code High-level languages provide a richer set of instructions.
1 Chapter 3 – JavaScript Outline Introduction Flowcharts Control Structures if Selection Structure if/else Selection Structure while Repetition Structure.
CSD 340 (Blum)1 Starting JavaScript Homage to the Homage to the Square.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Introduction to Scripting.
Controlling Program Flow with Decision Structures.
Tutorial 11 1 JavaScript Operators and Expressions.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
IST 210: PHP LOGIC IST 210: Organization of Data IST210 1.
Introduction to Javascript. What is javascript?  The most popular web scripting language in the world  Used to produce rich thin client web applications.
CGS 3066: Web Programming and Design Spring 2016 Introduction to JavaScript.
XP Tutorial 10New Perspectives on HTML, XHTML, and DHTML, Comprehensive 1 Working with JavaScript Creating a Programmable Web Page for North Pole Novelties.
JavaScript Tutorial. What is JavaScript JavaScript is the programming language of HTML and the Web Programming makes computers do what you want them to.
1 Agenda  Unit 7: Introduction to Programming Using JavaScript T. Jumana Abu Shmais – AOU - Riyadh.
 2001 Prentice Hall, Inc. All rights reserved. Outline 1 JavaScript.
Programming Mehdi Bukhari.
WEB PROGRAMMING JavaScript.
T. Jumana Abu Shmais – AOU - Riyadh
Week 5 LBSC 690 Information Technology
Web Programming and Design
Intro to Programming (in JavaScript)
Presentation transcript:

Structured Programming Week 3 INFM 603

Muddiest Points Emergent behavior of the Web HTML class attribute The details of JavaScript … p.style1 { font-family:arial; color:blue} p.style2 { font-family:serif; color:red} …

Programming in Four Parts  Structured Programming Modular Programming Data Structures Object-Oriented Programming

Machine Language Everything is a binary number –Operations –Data ADD number to be added (21) memory location to add it to (86)

Assembly Language Symbolic instructions and addresses –Symbolic instruction “ADD” –Symbolic address “SUM1” For instance ADD 21, SUM1

Programming Languages Hardware Machine Language Assembly Language RubyPHPJavaC++JavaScript MOV AL, 61h compiler assembler

Programming Languages High-level languages –Specifies algorithms at a more abstract level Interpreter reads instructions, controls machine actions –Examples: JavaScript, PHP Declarative languages –Specifies desired results, but not the control flow System decides how best to get that result –Examples: HTML, SQL, Excel

High level Languages Procedural (modular) programming –Group instructions into meaningful abstractions –C, Pascal, Perl Object oriented programming –Group “data” and “methods” into “objects” –Naturally represents the world around us –C++, Java, JavaScript, PHP, Ruby

Where does the JavaScript go? My Title … … JavaScript in the header, processed before the page is loaded JavaScript in an external file, processed before the page is loaded JavaScript in the body, processed as the page is loaded

Key Ideas State –Data as a representation of the world Control flow –Flowcharts –Pseudocode

Variables Data types = things that you can operate on Boolean: true, false Number: 5, 9, String: “Hello World” Variables hold values of a particular data type Represented as symbols (e.g., x) Choose meaningful variable names “Camel Case”: numberOfSquaresInBattleship In JavaScript, var declares a variable var b = true;create a boolean b and set it to true var n = 1;create a number n and set it to 1 var s = “hello”;create a string s and set it to “hello”

The Assignment Statement x = 4 means “set x to 4” –In APL, this would be written x  4 In mathematics, x = x + 1 is nonsense –In programming, it means increment x by one –It is so common, we say x++ as shorthand x == 4 means “is x equal to 4?” –If you write x = 4 for that, you will regret it!

Expressions & Statements Things that you can do: -xreverse the sign of x (negation) 6 + 5add 6 and * 3 multiply two values “Hello” + “World” concatenate two strings The simplest statements store results of expressions: x = 5set the value of x to be 5 x += yx = x + y x *= 5x = x * 5 x++increase value of x by 1 In JavaScript, statements end with a semicolon (;)

Strings var s = “Mr. Spock” s.length is 9 s.toLowerCase() is “mr. spock” s.substr(3,4) is “ Spo” s.indexOf(“k”) is 8 s.split(“ ”) is [“Mr.”, “Spock”] s.link( ishttp://bit.ly.CUjV “ Mr. Spock ” s + “Captain Kirk” is “Mr. SpockCaptainKirk”

Working with Strings When asking input from the user, the input is always read as a string To convert types you can do: var number = Number(stringValue); var stringValue = String(number);

Interaction Input var t = prompt("message here", "default"); When asking input from the user, the input is always read as a string To convert types: var number = Number(stringValue); var stringValue = String(number); Output document.writeln("message here"); console.log("message here"); alert ("message here");

Input/Output document.writeln("Bill Calculation System "); var costPerCredit, numberOfCredits, tuitionCost; /* Reading values from the user */ costPerCredit = prompt("Enter cost per credit:"); numberOfCredits = prompt("Enter number of credits:"); // Computing cost tuitionCost = costPerCredit * numberOfCredits; document.writeln("Tuition Cost:" + tuitionCost);

Basic Control Structures Sequential –Perform instructions one after another Conditional –Perform instructions contingent on something Repetition –Repeat instructions until a condition is met

1: Sequential Control Structure var a = 2; var b = 3; var c = a * b; Something Else Do Something Third Thing

2: Conditional Control Structure if (gender == "male") { greeting = "It’s a boy!"; } else { greeting = "It’s a girl!"; } truefalse Something Else Do Something Condition Continue Note the indentation... Note, the text in red is part of the “template” of the conditional

Nested if-else clauses if ( expression ) { … } else { … } } else { … } Note this is where indentation become important…

Multiple if-else clauses if ( expression ) { … } else if ( expression ) { … } else if ( expression ) { … } else { … }

3: Iterative Control Structure (Loop) var n = 1; while (n <= 10) { document.writeln(n); n++; } for (var n = 1; n <= 10; n++) { document.writeln(n); } true false Do Something Condition Continue FYI: Computer scientists like to start at zero… Note, the text in red is part of the “template” of the loop

Boolean Operators x == y true if x and y are equal [use == not =] x != y true if x and y are not equal x > ytrue if x is greater than y x <= y true if x is smaller than or equal to y x && ytrue if both x and y are true x || ytrue if either x or y is true !xtrue if x is false

Design Tips Protect against unexpected values –Test the value of all user input –Test the value of critical function parameters Verify that every loop will always terminate –Include a bailout condition, and report it Always test for conditions explicitly –Trap unexpected conditions with the final else

Programming Tips Attention to detail! –Careful where you place that comma, semicolon, etc. Don’t get cute with the logic or the layout –Reflect the structure of your problem clearly –Use standard “design patterns” Write a little bit of code at a time –Add some functionality, make sure it works, move on Debug by viewing the “state” of your program –Print values of variables using document.writeln();

Programming Tips Details are everything! Careful where you place that comma, semi-colon, etc. Write a little bit of code at a time Add a small new functionality, make sure it works, then move on Don’t try to write a large program all at once If it doesn’t work, revert back to previous version that worked Debug by outputting the state of the program Simulate what you think the program is doing Print out the value of variables using document.writeln or console.log Is the value what you expected? Use the Chrome JavaScript console!

Documentation Tips Reflect your pseudocode in your code –Use meaningful variable names –Use functions for abstractable concepts And name those functions well –Use comments to fill remaining gaps Add a comment to identify each revision –Give author, date, nature of the change Waste space effectively –Use indentation and blank lines to guide the eye

Algorithms A finite sequence of well-defined instructions designed to accomplish a certain task Named for the Persian mathematician Al-Khwarizmi

Group Exercise Calculate the value of a $10,000 investment at the end of each year each year from a list of annual percentage gains or losses, and make a note in each year for which a constant 5% interest rate would outperform the variable rate investment. 2001−11.9% 2002−22.1% % % % % % 2008−37.0% % %

Pair Exercises Print every even number below 873 in the Fibonacci series (1, 1, 2, 3, 5 8, … see Wikipedia). Print a 9x9 lower triangular matrix of asterisks. Prompt the user to enter a date (number of the month and number of the day), check to see if the date is valid (assume February has 28 days), and reprompt until a valid date is entered.

Some Math Functions Math.abs() – Absolute value –Example: Math.abs(-10) Math.max() – Maximum of two values –Example: Math.max(10, 20) Math.sqrt() – Square root –Example: Math.sqrt(4) Math.random() – Random value between 0 and less than 1 –Example: Math.random() Constants –Math.PI – Mathematical constant pi

One More Example Write a JavaScript program that asks for a number (n) and writes an HTML table with two columns: –Column1: numbers 0 to n –Column2: square root of number For n=4

Square Root Table var currValue = 0; var maximumValue; maximumValue = Number(prompt("Enter maximum value")); document.writeln(" "); document.writeln(" Table "); document.writeln(" Number 2*Number "); while (currValue <= maximumValue) { document.writeln(" " + currValue + " " + currValue*2 +" "); currValue = currValue + 1; } document.writeln(" ");

A Look Ahead Modular programming –Functions Data structures –Arrays Object-oriented programming –The document object –Events

Functions Reusable code for complex “statements” –Takes one or more values as “parameters” –Returns at most one value as the “result” function convertToCelsius(f) { var celsius = 5/9 * (f-32); return celsius; } c = convertToCelsius(60); function convertToCelsius(f) { var celsius = 5/9 * (f-32); return celsius; } var f = 60; c = convertToCelsius(f);

Scope of a Variable In JavaScript, var “declares” a variable var mystery;create a variable without defining its type var b = true;create a boolean b and set it to true var n = 1;create an integer n and set it to 1 var s = “hello”;create a string s and set it to “hello” Variables declared in a function are “local” Same name outside function refers to different variable All other variables are “global”

Writing JavaScript Functions Convenient to put in the section –Use to prevent display of code … <!-- function calculate() { var num = eval(document.input.number.value); … document.output.number.value = total; } //--> …

Using JavaScript with Forms HTML: Please enter a number: The sum of all numbers up to the number above is JavaScript: var num = eval(document.input.number.value); document.output.number.value = 10; Reads in a value from the first form (eval method turns it into a number) Changes the value in the second form

Arrays A set of elements –For example, the number of days in each month Each element is assigned an index –A number used to refer to that element For example, x[4] is the fifth element (count from zero!) –Arrays and repetitions work naturally together

Some Useful Predefined “Methods” document.writeln(“…”); –String gets rendered as HTML –Include “ ” to force a line break window.alert(“…”); –String is written verbatim as text –Include “\n” to force a line break foo = window.prompt(“…”); –String is shown verbatim as text –Result is whatever string the user enters

Handling Events Events: –Actions that users perform while visiting a page Use event handlers to response events –Event handlers triggered by events –Examples of event handlers in Javascript onMouseover: the mouse moved over an object onMouseout: the mouse moved off an object onClick: the user clicked on an object

Before You Go On a sheet of paper, answer the following (ungraded) question (no names, please): What was the muddiest point in today’s class?