Labs and Projects

Lab exercises and projects are posted here weekly. Lab gives you hands-on preparation for each project.

Due dates Projects should be turned in by 11:59pm on the below due dates. Lab Check-ins should be turned in by 11:59pm the day after the lab is assigned.

Links and schedule

Lab Project Due Date
0 Getting your computer ready for CS151 None Wednesday, September 9th 2026
1 First Python program What is a shape? Wednesday, September 16th 2026
2 Using functions to control shapes A shape collection Wednesday, September 23rd 2026
3 Mondrians Scene Within Scenes Wednesday, September 30th 2026
4 Unique Turtles Turtle Race Wednesday, October 7th 2026
5 Graphics Objects Meme Generator THURSDAY, October 15th 2026
6 Filtered Images Image Manipulation Wednesday, October 21st 2026
7 File I/O Data Visualization Wednesday, October 28th 2026
8 Classes Fractals and trees Wednesday, November 4th 2026
9 Inheritance Mosaics Wednesday, November 11th 2026
10 Event-based programming Asteroids Wednesday, November 18th 2026
11 Abstract Classes Video Game Checkin: Wednesday, Dec 2nd 2026
Final Submission: Wednesday, December 9th 2026

Policies

Project tips
  • 30 minute rule: If you have been stuck on a problem, such as a bug, for more than 30 minutes and have made no progress, despite your best efforts, please get help. Email your professor, ask a TA, or consult a peer. If you don't get an answer immediately, do something else for a while. Please do not waste your time on one problem.
  • We are always happy to help you with any of your code for your projects. However, the earlier you come to us with questions, the happier we'll be to help you (we usually respond to a last-minute call for major help with the question "Why didn't you start earlier?").
  • Don't gloss over errors in your code. That is, if you pretend there are no errors in your code when you know there are some there, we will take off more points than if you point out the errors that you were unable to fix.

Extension
misconceptions

You need to do extensions on every project. If you complete the specified parts of the assignment properly, and produce a high-quality writeup, it's worth up to an A- grade. It is important to note that it is very possible to earn these grades or higher in the course and not do extensions every week.

More extensions are better. As the project pages state, you generally receive a higher extension grade if you complete a few "deeper" extensions that explore areas that interest you and give you the opportunity to learn something new. Just because you claim to do 10 extensions does not mean they should be worth more than 1-2 creative, well thought out ones. In fact, extensions are graded according to the rubric criteria and nowhere do we count or itemize points for quantity completed.


Miscellaneous
It should go without saying that you should back up any files related to this course. If the code you submit to us is somehow lost (through your fault or our fault), I must be able to get another copy from you. I suggest you use Google Drive, Dropbox, Microsoft OneDrive or the college's personal server (filer.colby.edu) to store your work in this class, as it is regularly backed up.

If you come across a Python word or function that you are unfamiliar with, you should know how to look it up in online documentation or in a Python reference book. There is a section of helpful links on the course information page. If you have trouble finding the documentation you need, feel free to come see me, but I expect you to try to look up the documentation yourself first.

It should also go without saying that you should never leave your work in a public folder on a computer in a public lab. Instead your work should always be kept in your private account or copied to your own media such as flash drives and deleted from the computer's hard disk when you are finished using the computer.

Don't gloss over errors in your code. That is, if you pretend there are no errors in your code when you know there are some there, I will take off more points than if you point out the errors that you were unable to fix.


© 2021 Hannen Wolfe and Oliver Layton