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).
- 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.
- 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.
- 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?
- 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?
- 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.