- (15 points): Fill in the blanks for the following questions:
- prototype-instance The object model in Javascript is not called
a class-instance model but is instead called what?
- expat parser If you simply need to make a single pass through
an XML document to convert the tags
from one set of names to a
different set of names, which XML parser should
you use?
- simple XML parser Which PHP XML parser allows you to accomplish 80%
of what you want to do with 20% of the effort?
- javascript Which language, among the languages we discussed
in this course, allows you to dynamically add
new properties or methods to an object?
- schema What XML tool allows you to specify both the
structure of an XML document and the data types
of elements in that XML document?
- (20 points) Choose the best answer from the following set of choices:
compiled language, like C | HTML | CSS |
XML | SQL | XPath |
Perl | Javascript | PhP |
DTD | Schema | Regular Expressions |
- XPath The query language for XML.
- javascript The best language to use for client-side scripting.
- compiled language The best language to use for computationally intensive
problems.
- HTML The best and simplest language for specifying the
structure of a web page.
- CSS The language to use for specifying the appearance of a
web page.
- PHP The most modern language for perform server-side scripting.
- XML The language best used for marking up the data content
of a document.
- SQL The language best used to store your data when your
data is well organized
into a consistent set of fields and efficiency is of
the essence.
- Perl The language that along with TCL ushered in the era
of scripting languages. Also known for its report
extraction capabilities via regular expressions.
- Regular Expressions A compact notation that allows you to easily specify
type checking expressions for data.
- (5 points) In three sentences or less, explain the importance
of AJAX to web scripting (please do not tell me what the acronymn stands
for).
It enables Javascript to update a portion of a web-page without having
to reload the entire page. It thus makes web-pages seem more
interactive, and able to provide real-time information.
- (12 points) Early in the semester we discussed a number of features
of scripting languages that allow programmers to more rapidly develop
and debug code than with corresponding conventional languages. List 4
of these features, and for each one describe how it makes program
development more efficient.
My answer has more than 4 features--you could choose any of these:
- Interpreted rather than compiled: makes it easy to rapidly debug
programs and to try out fragments of code.
- Sophisticated pattern-matching and string manipulation: Makes it
easy to type-check data and to extract information from documents.
- High-level data structures, such as lists and hash tables, and
high-level control constructs, such as foreach loops, are
part of the language: Allows for programs to be specified compactly,
so they can be written quickly
- No need to declare variables: Allows for programs to be specified
compactly, so they can be written quickly
- Variables are dynamically typed: Allows variables to hold
heterogeneous types of data, such as either text or icons for a
button.
- Easy access to system facilities: Makes it easy to glue together
different modules to rapidly accomplish a task.
- Automatic memory management: The memory for both objects and
for data structures, such as
lists, arrays,
and hash tables are automatically allocated and de-allocated for
you.
- (8 points): Why does a language like Javascript allow the case
branches of switch statements to contain numbers, strings, and variables,
while a compiled language like C allows only integers?
C strives for computational efficiency so it allows only integers in
order to allow it to use jump tables that allow it to jump in O(1) time to
the right branch of a switch statement. It thus limits the
flexibility of the case statement and forces the programmer to write
out if-then-else statements for strings or values that can only be
determined at run-time. Javascript strives for
programmer efficiency by allowing code to be expressed compactly,
so it allows switch statements to contain all
types of labels, since programmers often want to use strings or
dynamically determined values as labels. This compromises computational
efficiency because now the interpreter must examine all branches of
the switch statement as though it were a series of if-then-else
statements, thus potentially requiring the case statement to take O(n)
time to find the right branch of the switch statement to execute.
- (5 points): What makes PHP a better language than Perl for
creating dynamic web pages?
PHP can be embedded within the HTML code, so the static parts can be
written as they normally would be in a static html document and only
the dynamically generated content needs to be written in PhP. In
contrast Perl has to use print
statements to generate both the static and dynamic parts of the web-page.
Other advantages of PHP, although they were not asked for in this question,
is that PHP was designed for server side scripting and so many constructs
are embedded in the language to make it work seamlessly with
client side scripts, such as session variables and associative tables
for accessing the contents of forms. With Perl, you have to import a
CGI module, worry about getting permissions to use it for server-side
scripting, changing the file extension from .pl to .cgi--in other words,
it's not as seamless as it is with PHP.
- (15 points): This question has two parts:
- Describe two client-side and two server-side
solutions to keeping session information using PHP, and describe the
advantages of each. Use no more than three sentences for each solution.
- Hidden form elements (client-side): Easy for embedding promotional
codes or other information that the user does not need to see.
Works when cookies are disabled.
- Cookies (client-side): Allows session information to be stored
on the client's computer so that session information does not have
to be passed back and forth over the internet between the server
and client, thus speeding up the perceived interactivity of the
application.
- Session variables: Protects the security of session information
from modification by malicious users, without having to resort
to dealing with the complexity of a database.
- Databases: Protects the security of session information from
modification by malicious users, maintains state information if
necessary across multiple sessions, and can handle multiple
servers (session variables typically only work with a single
server).
- Is it better
to keep session information on the client-side or the server-side?
Why?
It is better to keep session information on the server-side for
security purposes. Session information kept on the client-side
can be modified by a malicious user but session information kept
on the server-side should be free from tampering.
- (10 points): Describe what advantages XML has over a database
and what advantages a database has over XML.
XML provides more flexibility in the mark-up of data content, meaning
that data can have multiple items or that there can be different
blocks of data depending on the type of the data (e.g., a professor
might have a block of data about a professor and a student might have
a block of data about a student). In XML the data content is also
human readable, which makes it easier for two entities to exchange
data. A database provides faster access to data, more
security, read-write locks, and more compact data storage.
- (10 points): This question has three parts:
- What are the advantages of using cascading style
sheets to create the appearance and page layout of a web document
over specifying the appearance in each html document?
Using cascading style sheets it is easy to specify the appearance
of an entire web-site in a single file and to
change the appearance of a web-site by modifying a couple statements
in a single file. If you hard-code the appearance of an html
document, then you will need to change each html page if you want
to change the appearance of your web-site.
- Are cascading style sheets better at specifying the visual
appearance of a web document or the page layout of a web document?
Justify your answer.
They are much better at specifying the visual appearance of a web
document. For page layout they are pretty much limited to specifying
the horizontal layout of a page and a designer may have to do
perform a bunch of kludges to get vertical alignment correct,
to horizontally center content, or to get columns to line up
correctly and extend to the bottom of the page without overlapping
other columns.
- What element in HTML is often used to perform page layout and
may well be superior to anything that CSS offers?
The table element. It makes both horizontal and vertical layout
fairly easy. CSS has recently been expanded to include table
elements for layout purposes and future releases of browsers will
support these extensions.