A4 due Mon 2/28 (11:59 PM)
CL7 due Wednesday (3/2)
Prof Ellis’ OH: extra zoom office hours today 9-10 AM (will use normal zoom link on canvas; make-up for Monday)
Black History Month: Foundational Fridays
Kimberly Bryant - founder and CEO of BlackGirlsCode
Dr. Joy Buolamwini - founder of the Algorithmic Justice League
Dr. Timnit Gebru - founder of The Distributed AI Research Institute; AI Ethics
Erica Baker - CTO at DCCC
Note: From 1977 to 2013, the. largest # of black women to earn a CS PhD in any given year was…10
Q: is there an easy way to download all the lecture notes from datahub using code in the terminal on my computer?
A: Yes - you can zip/tar all the contents on datahub into a single file, download, and then unzip/untar on your computer. I will provide instructions on this at the end of the quarter.
Q: I was using cat, and it wasn’t printing anything out even though I know that new_file was placed within dir_name. Is there a reason for this?
A: This is likely b/c you didn’t add any contents to that file. Open that file up, add some text, and try
Q: I still don’t understand the purpose of using the command line.
A: Quickly navigate to and organize files. Also, run python scripts (we’ll be doing this today).
Q: Why can’t we just stick to jupyter for an intro class
A: Because understanding how to work with .py files is critical for moving forward/understanding other code you see out in the world.
Q: What does
!cd ~/ do?
A: Takes you to your home directory. If you’re already in your home directory…it will leave you where you are.
Q: How do we use the command line directly on our computer, like in our computer’s terminal?
A: Search for “terminal” on your computer (if you don’t have a terminal application already installed (depends on your computer), you could download a “bash shell”. (I use iTerm.)
Q: What is the difference between shell command and command line? Is there a difference?
A: The command line is where you type shell commands. So, when you open up a terminal and get the black background, that is the command line. One thing you can do at the command line is type shell commands.
Q: Is the command line somewhere we are able to write code or is it purely used for locating files, documents, and code that has already been written? A follow-up question if we don’t write code in the command line would be where would we write code then? Just in another Jupyter Notebook file that we then retrieve using the command line?
A: In a text editor! (The part of the notes we didn’t get to on Wednesday but will discuss today.)
Q: How is array different from other collections (like tuples, lists, dictionaries)?
A: We’ll discuss arrays next week when we discuss
numpy, but for now, arrays can be N-dimensional.
It’s a bit less of a party while learning remotely…
Today starts the transition to a project-based course!
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:
The highest grade you can get in the course is an A (not an A+)
There is no additional opportunities for extra credit (Note: if you’ve been filling out daily participation surveys that EC will apply to both exam and project)
You have to complete on your own (same rules as previous midterms)
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.
must implement some new thing (not grading on complexity)
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
Artificial Agents (A4)
A Data Analysis (A5)
Choose your own adventure (propose and develop your own project idea)
Taboo (Off-limit) topics \(^*\)#
Magic 8 Ball
Rock, Paper, Scissors
\(^*\)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
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) Canvas or 2) datahub
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
Work steadily over time
Work to first create a minimal viable product
multiple, independent pieces
Rapid prototyping + testing
GitHub 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
What questions remain for you?