Programming Week 9 LBSC 690 Information Technology.

Slides:



Advertisements
Similar presentations
Introducing JavaScript
Advertisements

INFM 603: Information Technology and Organizational Context Jimmy Lin The iSchool University of Maryland Thursday, September 19, 2013 Session 3: JavaScript.
Java Script Session1 INTRODUCTION.
 2005 Pearson Education, Inc. All rights reserved Introduction.
Programming Creating programs that run on your PC
LBSC 690 Session #7 Structured Information: Databases Jimmy Lin The iSchool University of Maryland Wednesday, October 15, 2008 This work is licensed under.
CS 898N – Advanced World Wide Web Technologies Lecture 14: JavaScript Chin-Chih Chang
Web Infrastructure Week 3 INFM 603. The Key Ideas Questions Structured Programming Modular Programming Data Structures Object-Oriented Programming.
The Analytical Engine Module 6 Program Translation.
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.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Programming Week 5 LBSC 690 Information Technology.
Structured Programming and UML Overview Session 2 LBSC 790 / INFM 718B Building the Human-Computer Interface.
LBSC 690: Session 10 Programming, JavaScript Jimmy Lin College of Information Studies University of Maryland Monday, November 12, 2007.
Databases Week 7 LBSC 690 Information Technology.
Week 6 LBSC 690 Information Technology
LBSC 690: Session 7 Relational Databases
Programming Week 6 LBSC 690 Information Technology.
Introduction to a Programming Environment
A High-Level Model For Software Development
Introduction to C Programming
Chapter 3 Software Two major types of software
2012 •••••••••••••••••••••••••••••••••• Summer WorkShop Mostafa Badr
CS102 Introduction to Computer Programming
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
CHAPTER 4: INTRODUCTION TO COMPUTER ORGANIZATION AND PROGRAMMING DESIGN Lec. Ghader Kurdi.
JavaScript Form Validation
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
CS 0004 –Lecture 1 Wednesday, Jan 5 th, 2011 Roxana Gheorghiu.
COMPUTER PROGRAMMING Source: Computing Concepts (the I-series) by Haag, Cummings, and Rhea, McGraw-Hill/Irwin, 2002.
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;
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
Chapter 1: Introduction to Computers and Programming.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 1: Introduction to Computers and Programming.
INFM 603: Information Technology and Organizational Context Jimmy Lin The iSchool University of Maryland Wednesday, March 5, 2014 Session 6: Relational.
Client Scripting1 Internet Systems Design. Client Scripting2 n “A scripting language is a programming language that is used to manipulate, customize,
Most Difficult and Confusing Topics Pre-Class Face-to-Face Meeting LIS 7008 Information Technologies LSU/SLIS.
CS 114 – Class 02 Topics  Computer programs  Using the compiler Assignments  Read pages for Thursday.  We will go to the lab on Thursday.
1 JavaScript in Context. Server-Side Programming.
Visual C++ Programming: Concepts and Projects
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
Databases Week 5 LBSC 690 Information Technology.
CS CS Computing for Business Instructor:David Tucker GTA:Batul Mirza.
Relational Databases Week 11 LBSC 671 Creating Information Infrastructures.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
Overview of Form and Javascript fundamentals. Brief matching exercise 1. This is the software that allows a user to access and view HTML documents 2.
ECA 225 Applied Interactive Programming1 ECA 225 Applied Online Programming basics.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
1) PHP – Personal Home Page Scripting Language 2) JavaScript.
Computer and Programming. Computer Basics: Outline Hardware and Memory Programs Programming Languages and Compilers.
Web Programming Overview. Introduction HTML is limited - it cannot manipulate data How Web pages are extended (include): –Java: an object-oriented programming.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Programming Session 6 LBSC 690 Information Technology.
Data Modeling Session 12 INST 301 Introduction to Information Science.
Relational Databases (Part 2) Session 14 INST 301 Introduction to Information Science.
1 Agenda  Unit 7: Introduction to Programming Using JavaScript T. Jumana Abu Shmais – AOU - Riyadh.
IST 210: PHP Basics IST 210: Organization of Data IST2101.
Java Programming: From the Ground Up
“Under the hood”: Angry Birds Maze
Software Programming J. Holvikivi 2014.
Chapter 10 Programming Fundamentals with JavaScript
T. Jumana Abu Shmais – AOU - Riyadh
Week 5 LBSC 690 Information Technology
Tonga Institute of Higher Education IT 141: Information Systems
Tutorial 10: Programming with javascript
Tonga Institute of Higher Education IT 141: Information Systems
Presentation transcript:

Programming Week 9 LBSC 690 Information Technology

Outline Programming Javascript Project description presentations (if time allows) Finishing up databases

Software Software models aspects of reality –Input and output represent the state of the world –Software describes how the two are related Examples –Ballistic computations –Google –Microsoft Word

Types of Software Application programs (e.g., Powerpoint) –What you normally think of as a “program’’ Compilers and interpreters –Programs used to write other programs Operating system (e.g., Windows Vista) –M anages display, CPU, memory, disk, tape, E mbedded program (e.g., TiVO) –P ermanent software inside some device

Programming Languages Used to specify every detail of the model Special purpose –Able to specify an entire class of models Spreadsheets (Excel,...) Databases (Access, Oracle,...) General purpose –Able to specify any possible model JavaScript, Java, Perl, C, C++,...

History of Programming Machine language –Language that machine can understand Assembly language –Assembler changes names to machine code High-level languages –Compiler/Interpreter translates to machine language –FORTRAN, COBOL, C, C++, Javascript Visual programming language –Visually arrange the interface components –Visual Basic, …

Programming Languages Hardware Machine Language Assembly Language COBOLCJavaC++JavaScript

Machine Language Everything is a binary number –Operations –Data For instance ADD first number (21) second number (86)

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

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

Programming for the Web PHP [Server side] –Forms encode field values into a URL –Web server passes field values to a PHP program –Program generates a Web page as a response JavaScript [Client-side, interpreted] –Human-readable “source code” sent to the browser –Web browser runs the program Java applets [Client-side, compiled] –Machine-readable “bytecode” sent to browser –Web browser runs the program

Variables Data types –Boolean: true, false –Number: 5, 9, –String: “Hello World” A “variable” holds a value of a specific data type –Represented as symbols: x, celsius 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”

Operators -xreverse the sign of x (negation) 6+5Add 6 and 5 (numeric) “Hello” + “World” Concatenate two strings 2.1 * 3 Multiply two values x++increase value of x by 1 x = 5set the value of x to be 5 x += yx = x + y x *= 5x = x * 5

Statements In JavaScript, instructions end with a semicolon –If missing at end of line, it is automatically inserted Simple assignment statements celsius = 5/9 * (f-32); Statements that invoke a method Temperature.toCelsius(104); Return a value from a method return celsius;

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);

Algorithms A sequence of well-defined instructions designed to accomplish a certain task Derived from the name of the Persian mathematician Al-Khwarizmi

Basic Control Structures Sequential –Perform instructions one after another Conditional –Perform instructions contingent on something Repetition –Repeat instructions until a condition is met Not much different from cooking recipes!

Sequential Control Structure a = 2 b = 3 c = a * b

Conditional Selection Control Structure if (gender == “male”) { greeting = “Hello, Sir” } else { greeting = “Hello, Madam” }

Generating Boolean Results x == y true if x and y are equal 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

Repetition Control Structure Program Example 1: n = 1 while ( n <= 10) { document.writeln(n) n++ } Program 2: For (n = 1; n <= 10; n++) { document.writeln(n) }

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

JavaScript My first script document.write("Hello, world!") Try it at

Placement JavaScript is usually in the section … <!-- function calculate() { var num = eval(document.input.number.value); … document.output.number.value = total; } //--> …

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

HTML “Forms” Accept input and display output for JavaScript In HTML Please enter a number: The sum of all numbers up to the number above is JavaScript code var num = eval(document.input.number.value); document.output.number.value = 10; Reads in a value eval function turns it into a number Changes the value in the textbox

Hands On: Adopt a JavaScript Program Launch a Web browser – See how it behaves if you are 13 (or 65) View source and read the program Save a local copy Make some changes and see how it works

Programming Tips Attention to detail! –Careful where you place that comma, semi-colon, etc. Write a little bit of code at a time –Add some functionality, make sure it works, move on –Don’t try to write a large program all at once Debug by viewing the “state” of your program –Print values of variables using document.write –Is the value what you expected?

JavaScript Resources Google “javascript” –Tutorials: to learn to write programs –Code: to do things you want to do Engineering and Physical Sciences Library

Term Project Goal is to learn some things deeply –By doing something real At least two key technologies –Web, database, programming, synchronized media 4-minute overview talk next week –3 slides (goals, mockup, scope) 12-minute presentation in final class session –Written report due by 2 days later

Some Details About Access Joins are automatic if field names are same –Otherwise, drag a line between the fields Sort order is easy to specify –Use the menu Queries form the basis for reports –Reports give good control over layout –Use the report wizard - the formats are complex Forms manage input better than raw tables –Invalid data can be identified when input –Graphics can be incorporated

Databases in the Real World Some typical database applications: –Banking (e.g., saving/checking accounts) –Trading (e.g., stocks) –Airline reservations Characteristics: –Lots of data –Lots of concurrent access –Must have fast access –“Mission critical”

Source: Technology Review (July/August, 2008) Database layer: 800 eight-core Linux servers running MySQL (40 TB user data) Caching servers: 15 million requests per second, 95% handled by memcache (15 TB of RAM)

Database Integrity Registrar database must be internally consistent –Enrolled students must have an entry in student table –Courses must have a name What happens: –When a student withdraws from the university? –When a course is taken off the books?

Integrity Constraints Conditions that must always be true –Specified when the database is designed –Checked when the database is modified RDBMS ensures integrity constraints are respected –So database contents remain faithful to real world –Helps avoid data entry errors

Referential Integrity Foreign key values must exist in other table –If not, those records cannot be joined Can be enforced when data is added –Associate a primary key with each foreign key Helps avoid erroneous data –Only need to ensure data quality for primary keys

Concurrency Thought experiment: You and your project partner are editing the same file… –Scenario 1: you both save it at the same time –Scenario 2: you save first, but before it’s done saving, your partner saves Whose changes survive? A) Yours B) Partner’s C) neither D) both E) ???

Concurrency Example Possible actions on a checking account –Deposit check (read balance, write new balance) –Cash check (read balance, write new balance) Scenario: –Current balance: $500 –You try to deposit a $50 check and someone tries to cash a $100 check at the same time –Possible sequences: (what happens in each case?) Deposit: read balance Deposit: write balance Cash: read balance Cash: write balance Deposit: read balance Cash: read balance Cash: write balance Deposit: write balance Deposit: read balance Cash: read balance Deposit: write balance Cash: write balance

Database Transactions Transaction: sequence of grouped database actions –e.g., transfer $500 from checking to savings “ACID” properties –Atomicity All-or-nothing –Consistency Each transaction must take the DB between consistent states. –Isolation: Concurrent transactions must appear to run in isolation –Durability Results of transactions must survive even if systems crash

Making Transactions Idea: keep a log (history) of all actions carried out while executing transactions –Before a change is made to the database, the corresponding log entry is forced to a safe location Recovering from a crash: –Effects of partially executed transactions are undone –Effects of committed transactions are redone the log

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?

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