CSC 221: Computer Programming I
Fall 2006

HW 1: History, Objects, & Alice


  1. While the architectural details may vary from computer to computer, virtually all modern computers have the same basic layout, known as the von Neumann architecture. Describe this layout and the role each of the major components plays in performing computations.

  2. In class, we briefly discussed the role of Alan Turing in designing computers for breaking Nazi codes in World War II. Turing made many contributions to computing, and is considered one of the founding fathers of the discipline of computer science. Conduct some research on Turing, and briefly (in a few sentences) describe two other significant contrbutions that he made to computing. Be sure to reference your source. If you are using the Internet/Web for your information, verify the material with an additional source (and reference that source as well).

  3. An algorithm must be clear to its intended executor in order to be effective. Give an example of a real-world algorithm that you have encountered and felt was not clear. Do you think that the algorithm writer did a poor job, or do you think that the algorithm was formalized with a different audience in mind? Explain your answer. Then, give an example of a real-world algorithm that you felt was clearly stated. What features of this algorithm allow you to understand it more easily?

  4. Suppose you were assigned the task of designing and developing a video card game. Following an object-oriented approach, you would first identify the objects involved in the game, and then model each kind of object. Recall that an object is defined by its properties (or fields) and its actions (or methods).


  5. Using the Alice IDE, create an animation of your own design. The content of the animation is entirely up to you, but it must include multiple objects that interact through methods. Be creative, as we will have a screening of all of the student movies in class.