CPSC 120 Principles of Computer Science
Using Multimedia Design
Fall 2008

Project 1: A Picture Collage

Introduction

In this project, you, along with a partner from class, will create a picture collage, which is more elaborate than anything you have done in the labs. It will incorporate several pictures and many of the techniques we have discussed in class. It will not be a random collection of transformed pictures, but instead will have some overall theme.

Project Details

To start out, you will need to come up with a theme and plan for your collage. This will take some thinking with your group partner outside of class. This will be a significant program (more significant that what you have been doing in the labs), so make sure you come up with a good plan before starting to write any code.

After you have a theme and a plan, you should write a function called createCollage that creates your collage. You should put this in a file called project1.py within your project1 folder, which is within your cs120 folder on your desktop. I should be able to run your createCollage function to create your final collage (you will have to indicate in comments how to run this function, i.e., what parameters to give it, etc.).

You will probably also want to define other functions that you can call from your createCollage function. For example, if part of your collage is in gray scale, you might create a grayScale function, which can be called in your createCollage function. Feel free to define as many functions as you want. The only requirement is that you have a createCollage function, which creates the entire collage. I do not want to have to run lots of different functions when grading your project.

There are also several requirements for your collage that you must follow in completing this project.

If you are in doubt about whether your project is meeting the requirements, then ask me. Also, with my permission, some of the restrictions can be lifted so long as you are doing a significant amount of work in the project and the collage you are creating is cool or nifty in some way. Remember, if you have any concerns about any of these requirements, then it is a good idea to talk with me (or at the very least, email me).

Below are some example collages (from students at Kalamazoo College) that you could create. You can click on the picture to view a larger version of each picture.

Extra credit is possible for particularly cool and nifty collages, which take a significant amount of work to create.

Group Work

Unlike in the labs, you will work on this project in groups of two. Each group will submit exactly one project. The group will also receive a single grade for the project (i.e., both team members will get the same grade). You and your partner will need to spend some time out of class, thinking and planning your collage and then once you have that plan, you will need to sit down on a computer and program it.

Both members of the group should actively contribute to the project. One team member could receive a lower grade if it is not clear that they contributed in a significant way. If/when possible, you might even split some of the work up in order to be more efficient. For example, one team member could write one of the transformations and another could write a second transformation.

Finally, as you are working in teams, I also expect that you will be able to do a more significant project, and I will grade accordingly. So make sure you do a good job on this project.

Good Programming Style

For the project, it is especially important to follow the good programming style rules laid out in lab 3. In particular, you will be graded more rigorously on your comments. Also, you should use good variable and function names that indicate the use of that variable and/or function. Most importantly, make sure that your code is readable. You will probably end up with a fairly large program. Make sure that all the parts of that program are clear. Break up different tasks into additional functions, for example, converting to gray scale, converting to a negative, etc. Take this aspect of the project seriously. It is very important when writing large programs, and its importance will be reflected the grading of your project.

Submission

The project is due in two weeks at the start of lab on October 31st (i.e., Halloween). To submit the project, you will put the submitted files in the project1 folder within your cs120 folder on your desktop. The submitted files should include the file project1.py, which contains your Python code, as well as all of your original pictures and your collage picture.

In addition, you must put your collage picture on your cs120 web page (cs120.html). You will add it to the table in cs120.html within your www folder (not your lab02 folder!). You do not need to put the original pictures into the table, just the resulting collage picture.

Because each team is submitting only one project, you will only need to put the Python file and pictures in one team member's project1 submission folder (although you are welcome to put the files in both team member's folders). However, the collage picture must appear on both team member's cs120 web page. In addition, one of the two group members must send me an email telling me the members of the group, the theme of the group's collage, and which team member's project1 folder will be used to submit the project.


Good luck and have fun!


Valid HTML 4.01!