## CSC 221: Computer Programming I Spring 2008

### HW 1: History, Objects, & Alice

Answering the following questions will require some research on your part. You must credit sources that you used in determining the answers, and all answers must be in your own words. If you use the Internet/Web as a resource, be sure to verify the information with multiple sources to ensure accuracy (and list all sources).

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. Briefly (in a few sentences) describe two other significant contrbutions that he made to computing.

3. An algorithm is a step-by-step sequence of instructions for carrying out some task. In order to be effective, an algorithm must be clear to its intended executor. 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).

• Consider a playing card. What essential properties (in terms of a software model) does a playing card have? What actions should you be able to perform on a playing card?

• Consider a deck of playing cards. What essential properties (in terms of a software model) does a deck of cards have? What actions should you be able to perform on a deck of cards?

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.