Course Home | Class Schedule | Moodle CMS | Git Submission | Perusall | Tutoring

Saint Louis University

Computer Science 1300
Introduction to Object-Oriented Programming

Michael Goldwasser

Spring 2020

Computer Science Department

Programming Assignment 01

Artist

Due: 11:59pm, Monday, 3 Feburary 2020


Contents:


Collaboration Policy

For each assignment in the course, we will explicitly state the collaboration policy as it applies to that assignment. In all cases, Please make sure you adhere to the policies on academic integrity.

For this assignment, you must work individually in regard to the design and implementation of your project. Please note the distinction made in our academic integrity policy between general course material and work that is submitted for this course. We consider the use of the Python language syntax and the cs1graphics package in the category of general course material, which you may discuss freely. However, you must avoid any discussion of code that is specific to the design of your artwork, submitted for this assignment. You should not receive direct help from others, nor should you share your own source code with others.


Overview

In this assignment, you are to generate a series of images involving your favorite animal, using the cs1graphics module described in Chapters 4 and 5. Below, we will outline the minimum requirements for the assignment. However if you are enjoying the work, feel free to go beyond that minimum; we will make some of our favorite submissions available (anonymously) for others to admire.

Newly Introduced Techniques

Each assignment in this course will aim to introduce several new techniques, as well as in reinforcing techniques introduced in earlier assignments.

With this being our first assignment, everything is new. Specific techniques to be used are:


Requirements

You will be producing a series of frames on a Canvas object. You may control the timing of the frames either by using the sleep function imported from the time module (see details below). The theme of the drawings should center around your choice of a favorite animal or character. With the rather limited selection of shapes, it's expected that some of the artwork may be relatively abstract.

While storyline and artistic creation will be a small component of the grading standards, the more significant portion of the points will be based on you meeting certain technical challenges as follows.

Animation: Rather than a single static image, you will be creating a form of animation by controlling the timing of the graphics with the following minimum requirments:

Drawing Primitives: You must exercise use of the cs1graphics capabilities as follows:

Finally, you must use each of the above techniques in a way that is different from the code that we give in Chapters 4 and 5. That is, you may use parts of that code, but you must still show your own additional creations making use of all techniques. So if the only rectangle you ever use is effectively something similar to the way we added grass to our backdrop, that won't suffice. If the only polygon you create is effectively a triangle that serves as a tree, similar to our drawing, that won't suffice.


Inspiration

What some inspiration? Here is a video montage of some of my favorite student submissions from a past year.


Files You Will Need

For information about installing Python or cs1graphics on your system, please see our notes on Python.

Remember that the cs1graphics package is not officially part of Python. To use these objects in your own program, you should begin with the following statement:

from cs1graphics import *

Submitting Your Assignment

This project must be submitted electronically using our department's git repository. More specifically, we have created a folder named program01 in your repositiory and you should place the following two files within:

For further technical details about use of our department git server, see instructions here.

See as well a discussion of the late policy for programming assignments.


Timing Your Animation

Since your program will be run directly from a file, rather than through the interpreter, you may want to explicitly set the timing between frames. The most direct way to do this is by using the sleep command that is a part of the time module in the Python library. Once, near the beginning of your sourcecode file, include the command

from time import sleep

Then, whenever you wish to have the execution of your program intentionally delayed, use the command

sleep(0.75)

Where 0.75 is a parameter that can be chosen by you, representing the number of seconds, or fraction thereof, that the program should wait.


Grading Standards

The assignment is worth 40 points, which will be assessed as follows:


Extra Credit

For each assignment, we wish to offer the opportunity and challenge to those students who wish to explore beyond the minimum requirements. For this first assignment, we do not have any specific extra credit challenge, but we will be happy to award up to 4 extra points to any submission that really impresses us.


Michael Goldwasser
Last modified: Saturday, 21 December 2019