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.

Links and schedule

Lab Project Notes and Code Due Date
0 Getting your computer ready for CS151 None Thursday September 9, 2021
1 First Python program What is a shape? Wednesday September 15, 2021
2 Using functions to control shapes A shape collection Wednesday September 22, 2021
3 Mondrians Scene Within Scenes Wednesday September 29, 2021
4 Shape objects Futurism Wednesday October 6, 2021
5 Animation Animated scene Friday October 15, 2021
Writing workshop
6 Images Image Manipulation Wednesday October 27, 2021
7 Strings and dictionaries ASCII art Wednesday November 3, 2021
8 Classes Fractals and trees Wednesday November 10, 2021
9 Inheritance Mosaics Wednesday November 17, 2021
10 Event-based programming Asteroids Tuesday November 23, 2021
11 Project Workshop Video game Friday December 10, 2021

Policies

Lab TA
TBA (email)

Attendance
Attendance in lab, like lecture is required.

Evening TAs

Grading

Projects are graded on a scale of 0 to 30:

  • Up to 21 points awarded for completing the project tasks (code and following good code comments/organization practices).
  • Up to 5 points for completing the report.
  • Up to 4 additional points for extending the projects with independent explorations.

Specific criteria by which each of these components (including Extensions) will be graded is provided in each project grading rubric on Google Classroom.


Late projects
  • There is a 1 week grace period for turning in projects. For example, if a project is due this Tuesday, you may turn-in your project anytime until 11:59pm next Tuesday.
  • Projects turned in during the grace period are capped at a maximum possible grade of 26/30 (extensions will not be graded). This is designed to help you get back on track — staying current on projects is more important for your grade and learning experience than investing the time to get a few extension points on one particular project and getting further behind.
  • Projects will not generally be accepted after the grace period. This is also designed to help you stay on track in this class. With the weekly project schedule, it is difficult to catch up if you fall behind. Turning in what you have by the end of the grace period and staying up-to-date on projects is the best choice for your grade and learning experience.
  • If the 1 week grace period is not enough and you are facing difficult circumstances, I would like to help you out as much as possible. In these cases, open communication between us is of paramount importance. Please email me and you may propose a new due date that works for you. You will be responsible for meeting your own revised due date and keeping me updated, otherwise you will receive a 0 on the project.

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 one of us, 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 a B/B+ 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.


Learning Goals

The learning goals for the lecture and lab are the same — both are meant to work together to accomplish the goals for the course as a whole. They are:

  1. Students can read a simple program and correctly identify its behavior
  2. Students can convert a problem statement into a working program that solves the problem.
  3. Students understand abstraction and can break down a program into appropriate procedural and object-oriented components
  4. Students can generate an approximate model of computer memory and describe how an algorithm affects its contents.
  5. Students can communicate the result of their work and describe an algorithm.

© 2021 Hannen Wolfe and Oliver Layton