Also see "running slides" below!
- Learn markdown - useful for programming but also in Google docs / drive and many other places!
- Ollama is a great way to experiment with AI for free in programming projects on your computer - read a bit about their API and checkout libraries for your favorite programming language (Python, JavaScript, etc)
- Current trends in software development and programming in the Stack Overflow Survey
- Learn basics of web development and git (version control system) at the same time and make a simple webpage on github
- Godot is a good place to start if you want to learn about video game creation. It can be tough, but the tutorials section has some good learning resources, e.g. this interactive tutorial!
- Figma - a popular tool for doing web and app design
- Blender - a free (though incredibly complicated!) and amazing tool for doing 3D modeling and rendering
- A bit of random history - Steve Jobs announcing the first iPhone
- Reveal.js - the tool I used to make these slides
The board provided is an ESP32-S3 based dev board, specifically the Freenove ESP32-S3 WROOM Lite. This board can be programmed many different ways (e.g. C, C++, Python, etc) to do many different things, but it can be a bit tricky to get started with. Be prepared for a real challenge and one that you may need to revisit in the future!
Again, to get this board working and even do a simple thing like making an LED blink may require a lot of work, research, troubleshooting, etc. Set your expectations accordingly!
- Connect to the internet over WiFi (through your home wireless network for example)
- Act as a web server, allowing you to connect to it to view simple webapges
- Act as a bluetooth device or connect to other bluetooth devices
- It has many input and output pins, so you can (for example) connect it to switches or LED lights
- Many other things!
You could create a weather station with it, or a simple home security system, or create a game, or work with a friend to connect your devices over the internet to create a simple communication device, etc.
Note that the hardest part of using the ESP32-S3 dev board is just getting started. Each computer system will be a bit different and the exact steps you need to take to be able to program the chip will be different. Below I'll give a few steps that worked for me on my Mac, but depending on your system you'll need to tweak things a bit!
- Download and install the Arduino IDE for your system (Mac, Windows, etc)
- After the Arduino IDE is installed, open it
- Now plug the ESP32 dev board into your laptop with a USB-C cable - note that there are two USB-C ports on the board and the port you choose will depend on how you setup your board - in my case, on a Mac, I use the port labeled
USB-OTG(on the back of the board). This part is important: if you have issues with connecting through the USB-OTG port, the other port labeled with UART should work more reliably but may require you install a "driver" on your computer, a special piece of software that lets your computer talk with the device. There are more instructions on how to do this in the troubleshooting guide below if you follow the links in the "Official Tutorial" section. - It's likely your computer will pop up a message and ask if you are OK allowing the board to connect to your computer - choose yes / accept (something similar to below on a Mac)
- Now, within the Arduino IDE on the left menu choose the "board manager" icon, search for "esp32", and click "install" (this will take a while)
- Once the install process has completed, from the
Toolsmenu chooseBoard->esp32->ESP32-S3-USB-OTG(note theOTGhere and theUSB-OTGport we plugged the USB-C cable into above!). This may prompt you to select a "port", at which point you will hopefully have an option similar to/dev/cu.usbmodel101or similar, ideally something marked as "ESP32". On occasion unplugging the ESP32 dev module and plugging it back in might result in a new option showing up. Sometimes quiting the Arduino IDE and restarting / reselecting the board might help. If not, this may be a good time to take a step back and take a look at the tutorial below! Here are my settings:
- The following snippet of code should be a very basic sketch ("sketch" is what the Arduino platform calls a program or project) that should work on your dev board. It's probably better to find a tutorial on the internet about the basics of Arduino and how to use the Arduino IDE, but basically clicking "file -> new" and pasting the below code in, then clicking the
Uploadbutton in the top left corner (looks like an arrow) is what you need to do.
#define RGB_BRIGHTNESS 64 // Change white brightness (max 255)
// note this number, 48, coresponds with the pin 48 you can see in this
// schematic: https://github.com/Freenove/Freenove_ESP32_S3_WROOM_Board_Lite/blob/main/ESP32S3_Lite_Pinout.png
// to go really deep, if you google "WS2812" (which is what the schematic says pin 48 is hooked to!) you
// can find tons of technical details on the LED https://cdn-shop.adafruit.com/datasheets/WS2812.pdf - cool!
#define RGB_BUILTIN 48
void setup() {
// No need to initialize the RGB LED
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(RGB_BUILTIN, HIGH); // Turn the RGB LED white
delay(1000);
digitalWrite(RGB_BUILTIN, LOW); // Turn the RGB LED off
delay(1000);
rgbLedWrite(RGB_BUILTIN, RGB_BRIGHTNESS, 0, 0); // Red
delay(1000);
rgbLedWrite(RGB_BUILTIN, 0, RGB_BRIGHTNESS, 0); // Green
delay(1000);
rgbLedWrite(RGB_BUILTIN, 0, 0, RGB_BRIGHTNESS); // Blue
delay(1000);
rgbLedWrite(RGB_BUILTIN, 0, 0, 0); // Off / black
delay(1000);
}- Finally, note that if you want to see the exact code I have running on the example board, you can see it here. Note that you will need to first be able to program the board (step 7 is a great place to start - if you can make the LED on the board blink with this simple sketch you're 90% of the way there!), and you'll have to install two "libraries" (these are bits of code that are needed by the simple sketch I wrote):
This is the official tuotrial provided by Freenove (the board manufactorer). It might be a good idea to read through this and follow the steps provided, however you can also try to find other video tutorials by searching on YouTube for "esp32 arduino tutorial" for example.
- Documentation from Freenove: https://github.com/Freenove/Freenove_ESP32_S3_WROOM_Board_Lite
- Tutorial from Freenove
Note: these slides use Reveal.js, although to be perfectly honest I have mixed feelings about this tool. Regardless, you'll need to know a bit about how to interact with a simple npm project to actually see these slides. How to install npm and such is outside of the scope of this document, but basically to view the slides you'd need to:
- install node / npm
- in the
slidesdirectory runnpm installfollowed bynpm start - visit localhost:8000



