Practice Questions For 15.561 Final Examination Spring 2005
Practice Questions For 15.561 Final Examination Spring 2005
Practice Questions For 15.561 Final Examination Spring 2005
CLARIFICATION: This is not a practice final but a collection of questions similar to those likely to
be on the final.
Question 1: Digital technologies are rapidly replacing analog technologies in applications ranging from data
communication to telephony, television, audio reproduction etc. List three advantages of digitally encoded data
relative to data encoded in analog form.
Question 2: Consider the following simple analogy used to describe how the Internet works:
“Imagine a complex highway system on which millions of cars are always moving. There are groups of cars that
belong to the same travel party heading to the same place. Before getting into the highway, each individual driver
consults a map and marks an itinerary from origin to final destination. Each driver is doing this independently.
Therefore, it is possible that different cars belonging to the same travel party may follow different itineraries.
Eventually, however, a car arrives at its destination. It waits for other members of the same travel party to arrive,
and then they all do something useful together.”
Compared with the way the Internet actually works, the above analogy contains an important inaccuracy. Can you
explain what it is?
Packet-switching networks, such as the Internet, do not plan a route for each
destination only. Based on this information, each router in the network first
The “best” router is the one, which is “closest” to the packet’s final
destination. The process is repeated until the packet reaches its final
destination.
Question 1: There are tradeoffs between programming in a high-level language vs. assembly language.
Compare these by giving at least one advantage of working at each level.
natural, and usually easier to specify what you want the computer to do. The
higher level hides more details of how things work at lower levels; the human
programmer doesn’t have to know so much about the computer itself (i.e., its
lower levels) and can achieve a task (e.g., specify how to do it) with less
Programming in assembly language gives more control over the details of what
the machine actually does – if one has the patience and expertise to properly
exploit this control. This means that you can often write assembly language
programs that require less running time and/or less memory space than the
that is lower-level.
Question 2: For each of the following approaches to developing software, please list one advantage and
one disadvantage of the approach:
Prototyping
•Advantages
–Especially useful when exact requirements are hard to know in advance
»user interfaces
»decision systems
»electronic commerce?
–Encourages user involvement
•Disadvantages
Packaged software
•Advantages
–By amortizing development and maintenance costs over many organizations, it
is possible to get superior solutions at much lower cost
•Disadvantages
–Customizing software can be very time-consuming and expensive
–May have to change organization to fit software, rather than vice versa
The Sloan Career Development Office has hired you as a consultant to help design a system using a
relational database to maintain placement statistics for graduating MBA students. The database schema
(tables and fields) has already been designed by someone else (see below). Your job is to define a set of
queries for the system.
As you specify these queries on the following page, please bear in mind the following:
1. For each query, please fill in the spaces as you would in the Microsoft Access Query Design
View.
2. If your query does not need to use the row labeled “Total”, please cross out that row.
3. If your query does need to use the row labeled “Total”, you need to fill in something in that row
for each column you use. The possible values you can use are:
a. Group by
b. Sum
c. Avg
d. Min
e. Max
f. Count
g. StDev
h. Var
i. First
j. Last
k. Expression
l. Where
4. If your query needs something in the row labeled “Sort”, you can use either of the two following
values:
a. Ascending
b. Descending
5. In the row labeled “Show”, you can either leave the box blank or put a “E” in it.
6. Use the following data schema for all the queries in this section:
5
1. Create an alphabetical list of students, together with the total number of offers each student
received.
2. Create an alphabetical list of the students who received offers from the company named
“McKinsey”.
3. Create a table showing all companies that made offers in order of the average salary they offered.
(Companies that offered the highest average salaries should be listed first.)
4. Create a table showing all companies whose offers were accepted, in order of the number of
accepted offers. (Companies with the most accepted offers should be listed first.) You can
assume that the field “Accepted?” has the value “Yes” for accepted offers.
Note: The first column in this query (“StudentID”) is included to account for the (rare) cases where two
or more students have the same first and last names. Your answer would be counted as correct even if
you did not include this column. A similar comment applies to the other queries below.
2. Create an alphabetical list of the students who received offers from the company named
“McKinsey”.
Note: The “Total” row is not shown in this screen image. On your exam sheet, you should cross it out.
3. Create a table showing all companies that made offers in order of the average salary they offered.
(Companies that offered the highest average salaries should be listed first.)
4. Create a table showing all companies whose offers were accepted, in order of the number of
accepted offers. (Companies with the most accepted offers should be listed first.) You can
assume that the field “Accepted?” has the value “Yes” for accepted offers.
An increasing number of retail banks are offering Internet banking services. Using those services, bank
customers are able to access their accounts and perform transactions through a Web browser. Internet
banking introduces a whole set of security concerns, most of which are not present in ATM networks.
More specifically, the following concerns are present:
• Concern 1: Anybody can connect to the bank’s Web site and try to access an account. The bank must
verify that it is transacting with the legitimate account owners
• Concern 2: Clever impostors can “impersonate” a bank’s Web server and fool customers into
supplying their account numbers and passwords. Before they send any sensitive information, bank
customers need to verify that the Web site they are transacting with actually belongs to the bank
• Concern 3: The Internet is an insecure, public network. All traffic can be intercepted by unauthorized
third parties. The bank must make sure that account numbers, passwords, account balances and other
sensitive information cannot be revealed to third parties, even though network traffic might be
intercepted.
Sketch a protocol that addresses all three security concerns listed above and allows a bank client and a
bank server to communicate securely over the Internet. In your solution you can assume that all
necessary keys have already been securely transmitted to the parties that need to use them.
For example:
1. U->B User sends her account number and deposit amount to the bank
2. B->U Bank performs operation and sends back the new account balance signed by B’s private key.
1. U->B U sends the following message to B: “hello bank. I’m U. Here are
2. B->U B verifies U’s signature and decrypts the message. It performs the
Question: A small bank is using a client/server system with a single database server for storing the
transaction histories and account balances of all their customers. Users query the server by sending the
account number and PIN of a customer, plus the type and parameters of the required transaction (e.g.
deposit, withdrawal, transfer). The server performs the transaction and returns the new account balance of
the customer. Recently, the bank has been experiencing rapid growth. As a result, the bank server has
become overloaded. The bank has decided to reorganize its system in order to improve its performance by
adding more servers.
To make the transition to the new system as smooth as possible, the bank does not wish to make any
changes to the client portion of its software (the part which resides on every ATM and every bank teller’s
workstation and implements the user interface). However, the current client software has been designed to
communicate with a single server only. The network address of the database server is hard-coded in the
client software.
a. Propose a high-level architecture for the new system. Draw a simple diagram of the new system and
explain the role of all machines that are present in your diagram. To receive full credit, your design
must not require any change to the client portion of the original system (15 points).
Client 1 Server 1
Query Router
Client 2 (replaces original Server 2
database server)
Client 3 Server 3
“query router” machine. The query router receives queries from all
clients (who “think” that they are still talking directly to the
10
b. Describe what the database of each new server should contain relative to the contents of the original
server database (10 points).
order to distribute the load evenly among the servers, ideally, all
there are two servers. Then, Server 1 should contain accounts 1000000
c. Describe how client queries get distributed to the right server (5 points).
router only needs to look at the first digit of the account number
Server 1, while all accounts that begin with 5-8 should be forwarded
to Server 2.
d. The above design was derived with the restriction that you could not modify the client part of the
software. If you were free to modify the client part of the software, would you have designed the new
system in any different way? If yes, then explain how and why. If not, then explain why not. No
diagram is necessary, but you may draw one if it helps you explain your points faster (10 points).
The problem with the original system was that a centralized server was
a. still has a centralized point, through which all queries must pass
(query router). The query router does minimal processing on each query
all the query results also pass through it). Finally, if the query
follows: The client contacts the query router in order to get the
This solution only involves the query router in order to locate the
with the possibility of the query router failing, we could improve our
query router, it could try the others, one after another, until it got
a response.
11
1. For the following technologies: (i) explain each briefly (one to two sentences), and (ii) list an advantage
that each can provide to organizations.
• ERP
• CRM
• SCM
• Ontology
12
• SOAP
• UDDI
• Web services
13