The lab exercises and projects are posted here weekly.
Lab gives you hands-on preparation for the week's project.

Links and schedule

Projects should be turned in by 11:59pm on the due dates below.

Lab Project Due Date
Install Python and VsCode no project Friday February 12, 2021
Getting Started What is a shape? Tuesday February 23, 2021
Using functions to control shapes A shape collection Tuesday March 2nd, 2021
Mondrians Scenes within scenes Tuesday March 16, 2021
Debugging Lab Wednesday March 17, 2021
Unique turtles Turtle race Tuesday March 23, 2021
Turtle images Soaring Thunderbird Game Tuesday March 30, 2021
Grids Tic-tac-toe Tuesday April 6, 2021
Strings and Voice Commands Virtual Art Assistant Wednesday April 14, 2021
Recursion The A-maze-ing Project Tuesday April 27, 2021
Classes and Inheritance Arcade Game Wednesday May 12, 2021

Policies

Attendance
Attendance in lab, like lecture, is required if you are located inside Maine's timezone to provide the best learning experience. If you are located outside of Maine's timezone or you will be absent on a particular week (or part of the semester), please notify me in advance immediately.

Evening TAs
Evening TAs specifically for CS151 help are available over Zoom this semester. Check out the main CS151 page for times and TA names.

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 Moodle.


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.

© 2020 Oliver Layton