Course Announcements

  • A4 accepted for full credit until late deadline tonight (11:59 PM)

  • E2 take-home due Friday at 11:59 PM

Python Party!#

Parties have snacks - come on up and grab snacks!

Project-based Course#

Today starts the transition to a project-based course!

Project Options#

Choose ONE:

  • Complete the final project

    • we’re discussing the details today

    • submitted on datahub or Canvas by 11:59 PM on day of the final

    • opportunity to learn the most!

    • takes a lot more time

    • opportunities for extra credit (going above & beyond; GitHub)

    • can ask staff for help/ask questions throughout

  • Complete the final exam

    • it will be a guided mini-project

    • will be taken on datahub

    • 24h+ to complete

Caveats if you take the final exam:

  1. The highest grade you can get in the course is an A (not an A+)

  2. There is no additional opportunities for extra credit (Note: if you’ve been answering ClassQuestin that EC will apply to both exam and project)

  3. You have to complete on your own (same rules as previous midterms, but it’s completely take-home)

Submit one, NOT both (I have lots of grading at the end of the quarter!). If you do both, I will use the lower score.

Project Overview#

  • must implement some new thing (not grading on complexity)

  • completed individually

  • uses good code practices

  • What you will turn in: folder on datahub OR zip file with your project on Canvas

    • >= 1 Jupyter notebook (minimally includes project description)

      • ideally: demonstrates how your project runs (likely only a few lines of code)

    • >= 1 module (having an additional script is optional)

      • has at least three (3) unique/original functions or methods

    • a test file with >= 3 tests

Project Topics#

  • Encryption (A2)

  • Chatbots (A3)

  • Artificial Agents (A4)

  • A Data Analysis (A5)

  • Choose your own adventure (propose and develop your own project idea)

Taboo (Off-limit) topics \(^*\)#

  • Hangman

  • turtle drawings

  • tic-tac-toe

  • blackjack

  • Magic 8 Ball

  • Rock, Paper, Scissors

  • Snake Game

  • Connect4 Game

\(^*\)If you have a really new hangman implementation/idea or are super stoked about your great turtle idea or have invented a spin on traditional tic-tac-toe/blackjack/magic 8 ball/rock, paper, scissors, you’ll need to pitch your idea to (via campuswire/email or in office hours) and get approval from Professor Ellis

Process:#

  1. Download 1) template from website OR 2) fetch Project on datahub

  2. Brainstorm an idea

  3. Design what “pieces” (functions/classes/etc.) you need to execute that idea

  4. Start writing code + tests

  5. Submit on 1) datahub or 2) Canvas

Why template + Canvas?#

  • Certain packages do not work on datahub (game packages; audio; GUI)

  • Working outside of datahub will be helpful in the future

  • You are not dependent on the Internet working well

Project advice:#

  • Work steadily over time

  • Work to first create a minimal viable product

    • modular design

    • multiple, independent pieces

  • Rapid prototyping + testing

Grading#

Component

Grade Value

Concept

5%

File Structure

5%

Project Description

10%

Approach

20%

Project Code

30%

Code Style

10%

Code Documentation

10%

Code Tests

10%

Extra Credit

4%

GitHub Extra Credit

1%

Extra Credit:#

  • Go beyond the requirements of the project / press yourself to learn something new (up to 4%)

  • Put your project on GitHub (1%)

Class Question #1#

Do you have an idea of what you want to do for your project?

  • A) absolutely no idea

  • B) some idea, but not sure

  • C) fairly good idea

  • D) I know exactly what I want to do.

  • E) I’m thinking I’m going to take the final exam

Example Projects:#

Python Party!#

What questions remain for you?