This repoditory is for the older, 4-week program. The new 7-day curriculum is at https://github.com/AI-Security-Bootcamp/aisb
Welcome to AI Security Bootcamp (AISB)! AISB is a 4-week long program to bring researchers and engineers up to speed on security fundamentals for AI systems. This repo contains the exercises and links to the reading material you will go through during the bootcamp.
Please check the prerequisites in PREREQUISITES.md to ensure you have the required skills and tools to complete the bootcamp.
If you're attending the bootcamp in person, you will spend most of the days pair programming with your assigned partner on the exercises for the given day.
On your first day, make sure you have completed the instructions in the Setup section above.
To view the instructions for a day, navigate to the respective directory (e.g., w1d1 for day 1 of week 1) and open the *_instructions.md file located there. We recommend you open it in your IDE and view the markdown (right-click and select "Open Preview" in VS Code).
The recommended way to complete the exercises is to make a new .py file (suggested name: w#d#_answers.py) in the directory for the day.
The instructions will contain code snippets you need to complete. Add a new # %% line to your answers and paste the code snippet under that line. If you went through the setup instructions correctly (with VS Code), you should see "Run Cell" option above the # %% which will execute the code in a Python Interactive Window. The code snippets contain tests that should initially fail. Complete the TODOs in the code and run the cell until all the tests pass.
Using Python cells
If you add more code at the bottom of the file and follow it with another `# %%`, this will create another cell which can be run independently in the same session. Cells can be run many times and in any order you choose; the session will maintain variables and state until it is restarted.We recommend you save your progress for each day (the answer files you will create with your assigned partner) to a branch in this repo. This will make it possible for you to switch between computers you will use while pair programming, and make your solution available for you to reference later.
First, configure your git repo with:
git config pull.rebase true
git config --type bool push.autoSetupRemote trueEvery day in the morning, make sure you have the latest version of the repo:
git checkout master
git pullMake a branch for the day: git checkout -b <branch name>, where your branch name should follow the convention w#d#/<name>-and-<name>. For example, if Tamera and Edmund were pairing on the week 1 day 3 content, the command would be git checkout -b w1d3/tamera-and-edmund. If you share a first name with someone else in the program, use a unique nickname of your choice for disambiguation.
Create a new file for your answers (see completing exercises above) and work through the material with your partner.
As you work, commit changes to your branch and push them to the repo. To make and push a commit:
git add :/
git commit -m '<your commit message>'
git pushIf you want to switch what computer you work on with your partner, they can check out the latest version of the branch with:
git fetch
git checkout <branch name>
git pullIf you'd like to try a sample exercise and test your setup, go ahead and complete w1d0!