# 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!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://python.afspies.com/exercises/week-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
