CSC103 2011 Take-Home Final Exam 2
--D. Thiebaut 22:47, 14 April 2011 (EDT)
This final exam is take-home. It is open-books, open-notes, and open-Web. It is due a week after it is made available, at noon on Friday March 11, 2011.
The work has to be done individually, not in a group. You cannot discuss the details of this exam with anyone except your prof. The TAs are not allowed to help you out with exam material in any way. Questions will only be answered in two ways: in person, in class only. Outside class time, only via email. If you have questions regarding the exam and cannot wait until the next class time, or if the last class has already been given, then you should send your question(s) via email to thiebaut@cs.smith.edu, and the question and its answer will be broadcast back to the whole class via email.
The exam is given under the rules of the Smith College Honor Code.
Make sure you reference all work/resources you use to answer the questions below.
Contents
Problem #1: Boolean Logic (25 points)
The three equations below represent three different logic expressions using and, or and not gates of three boolean variables A, B, and C. A boolean variable can take only one of two possible values: True or False.
Which of the two expressions are identical, meaning that for any combination of A, B, and C they are both True or both False.
- Expression 1: (B and (not C) ) OR ( A and C ) OR ( A and B )
- Expression 2: (A and B) OR ( not A and B and not C ) OR ( A and ( not B ) and C )
- Expression 3: (A and C ) OR ( not C )
In your answer explain how you figure out which expression is different (in terms of its output given the same combination of A, and B from the other two.
Problem #2: Assembly (25 points)
Write an assembly language program that uses ten memory locations (variables) filled with 0, starting at Address 30, and that stores the values 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, and 2048 in them. Your program will store 2 at Address 30, 4 at address 31, 8 at address 32, etc.
Your program should contain the following lines to initialize the ten memory locations
@30 0 0 0 0 0 0 0 0 0 0
Your program must use a loop.
Use the solution programs for Homework #3 as examples of good formats and good documentation.
You are encouraged to use labels, as they make the programs more readable, but if you prefer not to use labels, you will not be penalized.
Problem #3: Javascript (25 points)
Write a javascript program that uses only one print statement of the form:
document.write( "*" );
and displays the generate the following output:
********** ********* ******** ******* ****** ***** **** *** ** *
Note that there are 10 lines, and each line contains a decreasing number of stars. The first line contains 10 stars, the second 9 stars, etc.
The first star of the first line starts at the left margin of the screen. The first star of the second line starts after 1 space from the left margin. The first star of the third line starts after 2 spaces from the left margin, etc.
You must use loops.
Remember that all the stars must be printed by only one document.write() statement that prints only one star: document.write( '*' ). You may have additional document.write() statements, but they cannot print stars.
Use the programs from the Lab 4 solution page for inspiration in terms of organization and documentation.
Problem #4: Essay (25 points)
Search the current newspapers available to you on-line or in print and find an article that is less than a month old and that describes one of the following topics:
- The limitations imposed by today's computer architecture or semiconductor technology on our ability to continue building computers that follow Moore's law (to be covered in class on 3/7/11)
- The current research and/or discovery of new technologies that do not use silicon for the design of computing elements and processor circuits and offer a chance to keep on with Moore's law, or
- The design of new computing systems that do not follow John von Neumann's original architecture (to be covered in class on 3/7/11) in order to build computers that will boost our computing performance that will be in ligne with Moore's law.
You cannot use the article Remapping Computer Circuitry to Avert Impending Bottlenecks, by John Markoff, NYT 3/2/11 (covered in class)
Very likely, your news article will make reference to a technical article published in a computer field. Make sure you also find this article and do your best to read and understand it. If it is too technical, make sure you at least read
- its abstract
- its introduction
- its conclusion
(Even for the most technical document, these 3 sections are always a good source of information, even for the lay person.)
Make sure as well that you know when the article was published (it shouldn't be more than a couple month old) as well as where it was written (computer research lab, university or other).
Write a one-page, single-spaced summary of the news article, where you will state:
- what type of technology or solution the original article covers,
- what aspect of computing it is supposed to enhance, or what problem it is supposed to solve,
- in which way it connects to Moore's law, or to the von Neumann architecture, if at all, and
- what outcome is expected from this new discovery/research effort.
You should also make sure that you include references
- for the original news article that is the seed of your 1-page summary, and
- the technical article(s) it is based on.
Submission
- Write your answers in a Microsoft Word document, and when you're done, save it as a PDF document. See this Microsoft page for information on how to do this.
- Make sure you write your name at the top of the document.
- Submit your pdf file as an attachment of a message you will mail to 103b@cs.smith.edu, with the subject final exam
Good luck!