| CPSC 120 | Principles of Computer Science Using Multimedia Design |
Fall 2008 |
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.
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.
Number of transformations. You must use at least five distinct transformations from class and the textbook (or more if you like). You do not have to apply each transformation to the entire collage, but each must be applied to some part of the collage (e.g., one picture within the collage). These transformations cannot be variations off one general theme. For example, if you remove the red component from one part of the collage, and then remove the blue component from another part of the collage, this does not count as a second transformation (although feel free to do both if you need to -- it just won't count as two transformations). However, if you converted another part of the collage to gray scale, this would count as a second transformation.
Arrangement. You may not simply arrange the pictures in a grid, such as a 2x2, 1x4, or 4x1 table where each cell has the exact same size. You must either use a more advanced arrangement (e.g., making a wheel of pictures, blending some pictures together) or some cells must be larger than other cells.
Overall theme. The collage should not be a random collection of pictures, but instead must have an overall theme. That theme might be fairly general (e.g., different perspectives of a picture of a football player being tackled), but there should be some theme that encompasses all of the pictures within the collage.
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.
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.
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.
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.
|
|