> For the complete documentation index, see [llms.txt](https://simsimbutdifferent.gitbook.io/prompt_web3/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://simsimbutdifferent.gitbook.io/prompt_web3/lesson-3/lesson-3-assignments-and-excercises.md).

# Lesson 3: Assignments & Excercises

## **Assignments and Practical Exercises**

### **Assignment 1**:

* Research and write a brief explanation of how and why `view` and `pure` modifiers are used in Solidity functions.

### **Exercise 1**:

* Create a smart contract with a few functions demonstrating different visibility levels (`public`, `private`, `internal`, `external`) and return values.

### **Exercise 2**:

* Write a contract that includes a custom modifier. Use this modifier to restrict access to one of the contract's functions.
