
CS50 2D - Lecture 7 - Pokémon
The final CS50 lecture walks students through building a Pokémon‑style RPG using Lua and the Love2D engine, emphasizing how classic turn‑based mechanics can be recreated with modern code. It introduces a stack‑based state system that lets the game push and pop contexts such as field exploration, battle screens, dialogue windows, and pause menus, preserving player position and enabling seamless transitions. Key technical insights include separating the overworld (field state) from combat (battle state), layering tile maps to distinguish shallow and tall grass, and triggering random wild‑encounter events. The lecture also covers constructing GUI elements—panels, text boxes, menus, progress bars—by drawing nested rectangles with borders, mirroring web‑style CSS techniques. Health and XP bars are animated using timers and tweens, illustrating reusable UI components. During the live demo, the instructor shows a dialogue box appearing over the field, a battle menu offering Fight or Run options, and the consequences of each choice, such as damage calculation, victory XP, or fainting and revival. Sample code for a simple Panel class demonstrates how a 50‑line module can render bordered rectangles and handle visibility toggles, reinforcing the modular design approach. The lecture’s broader significance lies in teaching aspiring developers a scalable architecture for RPGs: state stacks for layered gameplay, composable UI widgets, and asset reuse (e.g., Zelda sprite sheets). These patterns equip students to prototype complex games quickly and translate to commercial indie projects.

CS50 2D - Lecture 6 - Angry Birds
The CS50 lecture pivots from classic NES titles to a modern mobile classic, recreating Angry Birds using the Love2D framework and its Box2D physics engine. The instructor outlines the goal: a simplified, physics‑driven slingshot game where an alien replaces the bird...

CS50 2D - Lecture 3 - Match 3
The CS50 Week 3 lecture walks students through building a classic Match‑3 game, tracing its roots from Bejeweled to modern Candy Crush variants. It frames the genre’s core mechanic—swapping orthogonal tiles to create three‑in‑a‑row matches—and sets the stage for implementing it...

CS50 2D - Lecture 0 - Pong
The opening lecture of CS50 2D uses the classic game Pong to introduce students to 2D game development, emphasizing the Lua language and the LÖVE (Love2D) framework as the primary tools. Colton Ogden explains how the course will recreate iconic...

CS50 2D - Introduction
CS50 2D is an introductory series on two‑dimensional game development, led by David Malan and featuring CS50 alumnus Colton Ogden. The curriculum assumes only generic programming experience and teaches students to build interactive games using the Lua language paired with...

Why You're Still Better Than AI at Editing Documents - CS50 Tech Talk
The talk highlights why human editors still outperform AI when working with DOCX files, introducing Superdoc—a fully open‑source suite that gives developers the building blocks to create custom document‑editing applications. The presenter demonstrates that popular large‑language‑model agents like ChatGPT and Claude...

CS50 for Business - Lecture 7 - Deploying Databases
The lecture focuses on deploying databases at scale, contrasting simple flat‑file storage with full‑featured relational database systems. David Malan explains how flat files like CSVs store data linearly but lack efficient querying, versioning, and relational integrity, prompting a shift toward...

CS50 for Business - Lecture 4 - Approaching Artificial Intelligence
In Lecture 4 of CS50 for Business, David Malan and Brian Yu introduce the fundamentals of artificial intelligence, outlining its core purpose, capabilities, and constraints. They frame AI as a set of techniques that enable computers to interpret inputs—such as...