> For the complete documentation index, see [llms.txt](https://python.afspies.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://python.afspies.com/exercises/week-1.md).

# Week 1

**Note:** Besides setting up your anaconda python environment (see [Setting up Python](/additional/setting-up-python.md)), there is no "compulsory" homework this week. However, attempting some of the following exercises is highly recommended for people who have never had to develop algorithmic solutions to problems before.

## Scratch

Scratch is a pedagogical programming environment which allows you to create surprisingly complex, interactive games by chaining together many "blocks" of code.

### Tutorial

Start by visiting <https://scratch.mit.edu/projects/editor/?tutorial=getStarted> and completing the scratch tutorial. You will need a fairly modern browser for this to work.

### Building a scratch game

Have a go at creating a simple game in scratch, for example:

* Pong
* Brick Breaker
* Simon Says

The aim here is to learn to feel comfortable with the creation of blocks of instructions which perform the function you have in mind - you don't have to complete an entire game.

{% hint style="info" %}
You can google any of these games and find that many people have already made very fancy scratch versions - try to at least see how they did this by clicking the "see inside" button when viewing their scratch project page
{% endhint %}

### See what's possible

Harvard's CS50 course (on which this course is largely based) sets students a scratch challenge during the first week - you can have a look at some of the things people made at <https://scratch.mit.edu/users/cs50/>

<https://scratch.mit.edu/projects/277537259/> is a particular highlight!
