1
|
- Week 9
- LBSC 690
- Information Technology
|
2
|
- Programming
- Javascript
- Project description presentations
- (if time allows) Finishing up databases
|
3
|
- 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
|
4
|
- 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)
- Manages display, CPU, memory, disk, tape,
- Embedded program (e.g., TiVO)
- Permanent software inside some device
|
5
|
- 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++, ...
|
6
|
- 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, …
|
7
|
|
8
|
- Everything is a binary number
- For instance
- 00001000 ADD
- 00010101 first number (21)
- 01010110 second number (86)
|
9
|
- Symbolic instruction codes and addresses
- Symbolic instruction code “ADD”
- Symbolic address “SUM1”
- For instance
|
10
|
- 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
|
11
|
- 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
|
12
|
- Data types
- Boolean: true, false
- Number: 5, 9, 3.1415926
- 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 =3D true; create a boolean b and set it to true
- var n =3D 1; create a number n and set it to 1
- var s =3D “hello”; create a string s and set it to
“hello”
|
13
|
- -x reverse the sign of x (negation)
- 6+5 Add 6 and 5 (nu=
meric)
- “Hello” + “World” Concatenate two strings<=
/li>
- 2.1 * 3 Multiply two values
- x++ increase value of x by 1
- x =3D 5 set the value of x to be 5
- x +=3D y x =3D x + y
- x *=3D 5 x =3D x * 5
|
14
|
- In JavaScript, instructions end with a semicolon
- If missing at end of line, it is automatically inserted
- Simple assignment statements
- celsius =3D 5/9 * (f-32);
- Statements that invoke a method
- Temperature.toCelsius(104);
- Return a value from a method
|
15
|
- Reusable code for complex “statements”
- Takes one or more values as “parameters”
- Returns at most one value as the “result”
|
16
|
- A sequence of well-defined instructions designed to accomplish a cer=
tain
task
- Derived from the name of the Persian mathematician Al-Khwarizmi
|
17
|
- Sequential
- Perform instructions one after another
- Conditional
- Perform instructions contingent on something
- Repetition
- Repeat instructions until a condition is met
|
18
|
|
19
|
- if (gender =3D=3D “male”) {
- greeting =3D “Hello, Sir”
- }
- else {
- greeting =3D “Hello, Madam”
- }
|
20
|
- x =3D=3D y true if x and y are equal
- x !=3D y true if x a=
nd y are
not equal
- x > y true if x is greater than y
- x <=3D y true
if x is smaller than or equal
to y
- x && y true if both x and y are true
- x || y true if either x or y is true
- !x true if x is false
|
21
|
|
22
|
- 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
|
23
|
- <HTML>
- <HEAD>
- <TITLE>My first script</TITLE>
- </HEAD>
- <BODY BGCOLOR=3DWHITE>
- <H1>
- <SCRIPT LANGUAGE=3DJAVASCRIPT TYPE=3D"TEXT/JAVASCRIPT"=
>
- document.write("Hello, world!")
- </SCRIPT>
- </H1>
- </BODY></HTML>
- Try it at
http://www.umiacs.umd.edu/~oard/teaching/690/fall08/notes/9/firstscr=
ipt.html
|
24
|
- JavaScript is usually in the <head> section
|
25
|
- 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
|
26
|
- Accept input and display output for JavaScript
|
27
|
- Launch a Web browser
- http://www.umiacs.umd.edu/~oard/teaching/690/fall08/hw/hw5/selector=
.htm
- 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
|
28
|
- 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?
|
29
|
- Google “javascript”
- Tutorials: to learn to write programs
- Code: to do things you want to do
- Engineering and Physical Sciences Library
|
30
|
- Goal is to learn some things deeply
- 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 email 2 days later
|
31
|
- Joins are automatic if field names are same
- Otherwise, drag a line between the fields
- Sort order is easy to specify
- 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
|
32
|
- 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”
|
33
|
|
34
|
- 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?
|
35
|
- 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
|
36
|
- 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
|
37
|
- 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
|
38
|
- 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 che=
ck
at the same time
- Possible sequences: (what happens in each case?)
|
39
|
- Transaction: sequence of grouped database actions
- e.g., transfer $500 from checking to savings
- “ACID” properties
- Atomicity
- 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
|
40
|
- Idea: keep a log (history) of all actions carried out while executing
transactions
- Before a change is made to the database, the corresponding log entr=
y is
forced to a safe location
- Recovering from a crash:
- Effects of partially executed transactions are undone
- Effects of committed transactions are redone
|
41
|
- On a sheet of paper, answer the following (ungraded) question (no
names, please):
- What was the muddiest point in today’s class?
|
42
|
- On a sheet of paper (no names), answer the following question:
- What was the muddiest point in today’s class?
|