Computer Science 60
Principles of Computer Science
Fall 2007


Assignment 12: Uncomputability and Complexity

This assignment is due Monday, December 3 at 11:59 pm.

What to submit

There is no programming in this assignment.  You should write up your answers (proofs or analyses) in a plain-text or Microsoft Word file and submit it as hw12.txt or hw12.doc

  1. (Un)computing at Nanosoft (40 Points)

    You have been hired by Nanosoft. Your boss, Gill Bates, drops by your spacious cubicle sipping a refreshing and stimulating Jolt Cola ("All the sugar, and twice the caffeine!"). Gill begins by reminding you that a decider is a program that takes an input and eventually halts and accepts (says "yes" to its inputs) or rejects (says "no" to its input). For example, a decider for the prime numbers would take a number, perhaps encoded in binary, as input and would eventually halt saying "yes" (it's prime) or "no" (it's not prime).





    Algorithm analysis

    Through this part of the assignment, you will be analyzing the running time of algorithms. We will be interested in worst-case analysis. (The best case isn't interesting and the average case is usually difficult to quantify.) You will need to express the worst-case running time using big-O notation. Finally, make sure to show all of your work in each written problem. Explain each step carefully.

  2. Warmup! [20 Points]

    This problem involves finding the big-O running-time analysis of both iterative (looping) and recursive code.