SE-1010 Software Development 1
Lab 1: Problem Solving

Outcomes addressed in this lab

Overview

For this assignment, your team will develop the instructions (that implement an algorithm) that, when processed (or executed), results in the creation of a specific image (output) from an assortment of primitive shapes (input).

Assignment Details

Part 1

Study this section before designing your "program".

Your team will receive a sealed envelope containing a folded piece of paper and an assortment of 10 primitive shapes.

Before opening the envelope, select one of your team's members to be the "Computer". Do not let the Computer (or any other team) see the image on the folded piece of paper after you open your envelope. Instead, give the Computer the 10 primitive shapes that are also contained in the envelope.

The remaining two members of the team should examine the image on the folded paper. Your team's goal is to write a "program" that the Computer can execute in order to create the specified image from the primitive shapes (without the Computer seeing the actual completed image beforehand).  Think about the algorithm you will employ in order to accomplish this (re-read pages 9-10 in the textbook). Write down the steps that will be needed - your notes are effectively psuedocode.

You may write on the primitive shapes in order to assist you in developing your algorithm. However, consult your instructor before writing anything on the shapes.

The Computer assembles the image by following instructions from the other members of the team. Using MS Word, write the instructions down exactly as they are specified to the Computer. While executing instructions, the Computer cannot ask questions of the the other two team members, but may make statements such as "It's not clear where you want me to put that", or "I don't understand". If an instruction is not executable or is executed incorrectly, the Computer should be told to "undo" that instruction - meaning that the primitive should be moved back out of the image. The faulty instruction should be erased from the program, and a new one reformulated that (hopefully) corrects the error. This process should be repeated as necessary until the desired result is achieved.

Note that not all primitives may be needed to complete the shape - thus, you should have explicit instruction(s) dealing with the unnecessary primitives.

If you are stuck or unsure about how to design this program or formulate the instructions, ask for help right away.

When you have finished, make a second copy of your program. Put your team members' names on this copy, as well as the original program.

Show your program to your instructor before proceeding to Part 2 below.

Part 2

Your instructor will direct you to exchange your program with another team that has never seen the completed image; likewise, your team will receive the instructions from another team who's program results in a different image.

Share the responsibility of playing the Computer role in this part. As a group, interpret the instructions as best you can to create the final image. Using a different color text, make notes next to any instructions that are unclear or not executable, explaining the error you perceived. If you can't continue, indicate that in the note. Take it as far as you can; when you finish, hand-draw the image you created on a separate sheet of paper.

Lab Submission (due by end of lab)

Your lab submission consists of 3 items (put your team members' names on each item):

  1. An MS Word document containing the program your team wrote for your image.
  2. A page containing the image you created as a result of following the other team's program.
  3. An MS Word document containing the other team's program, along with your notes regarding problems following their instructions. Add your names to this page - it should already contain the other team's names.

Submit all 3 items to your instructor.