Course Overview
The LiFi project introduces you to the digital world and how to solve problems with computers. The goal is to build a device that can send and receive information using light signals.
Key Topics
In this course, we aim to answer how we can solve real-world problems with computers. To understand this, we need to focus on two key concepts: algorithms and communication. Algorithms are the recipes computers follow to solve problems. Communication over networks enables us—and computers—to share our knowledge with the rest of the world.
Computers can only solve problems when we describe them in a language they understand. Problems can be broken down into two parts: the input (what goes in) and the expected output (the solution). Learning how to represent this information in computer-friendly terms is essential, which is why we cover information representation as a foundational topic.
After representing information in a computer-friendly way, we need to give the computer instructions. While algorithms serve as general recipes for solving problems, a program is an algorithm translated into a programming language that computers can understand. A program simply takes input, processes it, and produces output. Though the actual information processing happens at the hardware level, we can write programs in more user-friendly languages like Python. Learning to program computers is a key goal of this project.
Information stored on a single computer has limited value until it's shared with others. That's why a main goal of the LiFi project is to understand information sharing—from how data travels through physical media like cables and Wi-Fi to how networks like the internet work.
Learning Objectives
The LiFi project covers many aspects of the digital world and its interfaces with the analog world. It practically introduces topics typically found in a beginner's computer science course. While it may not always perfectly align with the course content, concepts are better understood when presented through a real-world project. A key objective is to help you understand the fundamental concepts that power modern computers and shape our digital world.
As we explore the digital world, we will learn about how digital computers work at a high level. You'll gain insight into how these versatile machines can perform countless tasks with remarkable precision and speed.
You will learn to write programs using Python, though learning Python itself isn't the main goal—we could have chosen any programming language. Instead, we focus on teaching the basics of programming and algorithmic thinking, which are universal skills that extend beyond Python and programming itself. At its core, programming is about solving problems.
Course Materials
This course explores a new topic each week. Every topic includes comprehensive lecture notes, presentation slides, and a set of exercises. You find all the material listed below.
Lecture Notes
Presentation Slides
Programming Tutorials
Exercises
Every week includes an exercise to deepen your understanding of the current material. The weekly exercises fall into three categories:
Reflection exercises that help you develop a broader understanding of the week's topics.
Programming exercises where you practice new coding techniques. While these exercises generally relate to the week's topic, the connection may not always be perfect.
LiFi project exercises that guide you through building the LiFi prototype, working toward the final product.
Reflection Exercises
Programming Exercises
LiFi Project Exercises
Exercise 7: Pixel By Pixel
Important Terms And Concepts
You will notice that some words in this course are highlighted with yellow color. I use this formatting to point you to important terms and concepts that you should know and be able to explain. It is not necessarily explained in the same lesson or in this course at all. If you can't find anything here directly or in the provided literature, make sure you do your research and ask questions during sessions.
Introduction Of Hardware ⚡
We use three different hardware devices during the LiFi-project. They are introduced in a dedicated lesson of the course and are marked with a ⚡, so you can find them easily.
The LED ⚡The Color Sensor ⚡The OLED Display ⚡Credits
This course was written with assistance from ChatGPT and DeepL. Most of the drawings were created with Google Slides and Excalidraw. Some images were generated with Bing Image Creator.
Last updated