Visualizing Women in Science, Mathematics and Engineering
  • Home
  • Posters
  • Materials for Study
  • Biographies
  • Cool Links
  • The Design Team

  • I am a Computer Scientist

    Roughly speaking, computer science breaks down into two distinct areas: software and hardware. Software issues are those that relate to programming computers, while hardware refers to the actual circuitry and design of all the different parts of computers.

    The first key issue on the software side is that of the algorithm . An algorithm is a set of instructions for solving or completing a given task.

    Here, for example, is an algorithm for waking up in the morning.

    1. Switch off alarm.
    2. Remove blanket.
    3. Get out of bed.
    4. Walk to bathroom.
    5. Brush teeth.
    6. Have shower.
    7. Walk back to bedroom.
    8. Get dressed.
    9. Walk to kitchen.
    10. Make breakfast.
    11. Eat breakfast.
    Notice how many of these individual items could themselves be broken down into their own set of instructions. What would some of these look like? Can you write an algorithm for "making breakfast"? How about "have shower"?

    One of the most famous algorithms, indeed one of the first, is the Euclidean algorithm: a procedure for finding the greatest common divisor of any two integers. Can you recreate this procedure?

    Other areas for which many algorithms have been written are:

    • sorting -- can you write an algorithm which organizes a list of twenty names in alphabetical order?
    • searching -- what is the best way to find a particular name in the phone book?
    • packing -- what is the best way to pack your suitcase when you go on holiday?

    Another famous problem: suppose I give you some complicated list of instructions -- a complicated algorithm -- can you tell if this algorithm will ever finish? This is called the halting problem.

    Can you think of an algorithm about which it is impossible to say if it will ever finish?

    Here are some links for computer science: