Download presentation
Presentation is loading. Please wait.
Published byMeryl Cannon Modified over 9 years ago
1
Programming Session 6 LBSC 690 Information Technology
2
Agenda Questions The mythical person-month History of programming Object oriented programming Programming for the Web JavaScript example
3
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 –Alta Vista –Microsoft Word
4
Programming Languages Used to specify every detail of the model Special purpose –Able to specify an entire class of models Spreadsheets (Excell, Quatro Pro,...) Databases (Access, Paradox, Oracle,...) General purpose –Able to specify any possible model Pascal, C, Java, JavaScript, Perl,...
5
The Mythical Person-Month If it would take one person three months, why does it take four people SIX months? –The original estimate might have been too low –Partitioning strategy led to a long “critical path” –Training new people takes each some time –More people means more communications
6
Training Time Simple Example –Full time person = 2,000 hours/year –Part time person = 288 hours per year –No training 7 part time people –With training 10 part time people Learning the specification takes time –Learning organizational “rules” takes longer!
7
Communications Sort of like continuous training –Who needs to know what I just learned? Can be minimized by good partitioning –Limit the number of interfaces Can be facilitated by computers –Asynchronous communication techniques Email, private newsgroups, voice mail
8
Estimating Completion Time Rules of thumb –1/3 specification –1/6 coding –1/2 test planning, testing, and fixing! Add time for coding to learn as you go, but don’t take time away from the other parts! –Reread the section on “gutless estimating” if you are tempted
9
History of Programming Machine code –Zeroes and Ones Assembly language –“Assembler” changes names to machine code High-level languages –“Compiler” translates math to machine code Independent of machine “architecture” –FORTRAN, COBOL
10
History of Programming Structured Programming –Group instructions into meaningful abstractions –C, Pascal, Perl Object oriented programming –Group “data” and “methods” into “objects” –Naturally represents responses to events –C++, Java, JavaScript
11
Object Models Represent things in the world as “objects” –Simplest objects are “variables” Represented with a name (n, teacher, …) May be assigned a value (n=4, teacher=“Doug”, …) Represent actions with “methods” –Simplest methods are “operations” Represented with a symbol (+, -, *, /, …) “Classes” group objects with methods –Classes model how kinds of things behave Objects are instances of classes
12
A Simple Example Variables: Height, Weight, Shoe size Operations: Multiply, Divide Method: Shoe size=4*Weight/Height Class: Person Object: George
13
Statements Simple assignment statements Birds = Hawks + Orioles Statements that invoke a method document.write(“Hello World!”) Return a value from a method return Birds
14
Combining Statements to Make Methods Sequential {… ; …; …; …} Conditional if (i= =3) then {…} else {…} try {…} catch (exception e) {…} Loop for (i=0;i<10;i++) {…} do {…} while (i<5)
15
Events Models an external stimulus –program initiation, mouse click, mouseover, … Events result in the activation of a method –Methods register the events to which they respond Conceptually, methods can run in parallel –In practice, computers do one thing at a time
16
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 loops work naturally togther
17
Programming for the Web Common Gateway Interface (CGI) [Server side] –Forms encode field values into a URL –CGI passes field values to a Perl 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
18
Your First JavaScript Program Launch a web browser –Internet Explorer would be the best choice http://glue.umd.edu/~oard/690/select.html See how it behaves if you are 13 (or 65) View source and read the program Copy it to your../pub directory on WAM Make some changes and see how it works
19
Why Java? Java applets transfer and run faster –“Bytecode” is more compact and easier to run Java applets can send and receive data –A security policy limits what can be sent, though In Java you can create new classes –This is helpful when writing complex programs Java strictly enforces data types –This prevents some common kinds of mistakes You can stretch a statement over several lines –Put a “;” at the end of each Java statement
20
Java Bytecode “Machine language” depends on the machine –Programs compiled for a Sun won’t work on a PC Java claims “write once, run anywhere” –Without recompiling JavaScript interpreters are slow –Because they must read every character every time Java compiles to a standardized bytecode –Which is organized like most machine languages
21
The Key Ideas Programming languages can model any problem –Completely specifies output the for any input Object orientation matches human thought well –Objects and actions are paired –Simple control structures facilitate abstraction Events, sequential execution, conditional, iteration Language choice depends on the task –For the Web: CGI (Perl), JavaScript, Java
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.