Course Announcements
CL7 due Friday
mid-course survey “due” Friday (for EC; link also on Piazza/Canvas)
Notes:
A5 has been released
No class in-person Tuesday
Lecture recording will be released Monday (on Canvas > Media Gallery)
There will be a Google Form to complete for lecture participation (effort, not correctness)
Python Projects#
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 (avg: 10h)
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
takes less time (avg: 2.5h)
Caveats if you take the final exam:
The highest grade you can get in the course is an A (not an A+)
There is no additional opportunities for extra credit (Note: clicker participation applies to both)
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
includes project description)
demonstrates how your project runs (likely only a few lines of code) OR describes how to run project
>= 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)
To brainstorm: Think of something in your daily life you want to automate, something that would help you at work/in lab/etc., or a topic/game/activity you really like
Taboo (Off-limit) topics \(^*\)#
Hangman
turtle
drawingstic-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 Piazza/email or in office hours) and get approval
Process:#
Download 1) template from website OR 2) fetch Project on datahub
Brainstorm an idea
Design what “pieces” (functions/classes/etc.) you need to execute that idea
Start writing code + tests
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%)
Clicker 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:#
Mingson (former IA): https://www.youtube.com/watch?v=ipEj5DtkopA&feature=youtu.be
Previous Examples: COGS18/Projects
Python Projects#
What questions remain for you?