# CSC-121 Spring 2026 > mode: dark ## Sources - [CSC-121 Spring 2026](/index.path.llm.md): mode: dark - [Coming Soon](/resources/coming-soon.placeholder.llm.md): This content is coming soon. - [Commit and Sync](/resources/commit-and-sync.guide.llm.md): In VS Code (or Codespaces), you can commit and sync your changes to GitHub - [Conditionals](/resources/conditionals.guide.llm.md): Conditionals let your code make decisions based on whether something is true or false. - [CS-121: Intro to Computer Programming](/resources/csc-121.syllabus.llm.md): professor: "Professor Johnson" - [Data Types](/resources/data-types.guide.llm.md): type: "note" - [Dictionaries](/resources/dictionaries.guide.llm.md): A dictionary stores key-value pairs, letting you look up values by a unique key instead of by position. - [Disable Copilot in VS Code/Codespaces](/resources/disable-copilot.guide.llm.md): Open the VS Code settings (Ctrl + , or Cmd + , on Mac) - [Emojis](/resources/emojis.guide.llm.md): You can type emojis with these keyboard shortcuts: - [F-Strings](/resources/f-strings.guide.llm.md): F-strings (formatted string literals) let you embed variables and expressions directly inside a string. Put an f before the opening quote and use {} to insert… - [File I/O](/resources/file-io.guide.llm.md): File I/O (input/output) lets you read data from files and write data to files. - [Functions](/resources/functions.guide.llm.md): A function is a reusable block of code that performs a specific task. - [Input](/resources/input.guide.llm.md): The input() function asks the user to type something and returns what they typed as a string. - [Lists of Dictionaries](/resources/lists-of-dicts.guide.llm.md): A list of dictionaries lets you store a collection of records, like rows in a table. Each dictionary represents one item with named fields. - [Local Development Setup](/resources/local-dev.guide.llm.md): VS Code + Python + Git (macOS & Windows) - [macOS Setup Guide](/resources/macos.guide.llm.md): In this guide you'll be using the Terminal -- a built-in app on your Mac that lets you interact with your computer by typing text commands instead of clicking… - [Markdown](/resources/markdown.guide.llm.md): Markdown is a simple way to format plain text. You type regular text plus a few symbols, and tools like GitHub and VS Code render it nicely. - [Modules](/resources/modules.guide.llm.md): A module is a Python file containing code you can import and reuse. - [Packages and uv](/resources/packages.guide.llm.md): Python comes with built-in functions and a standard library, and you can write your own modules. But sometimes you need code that someone else has written and… - [Print Statements](/resources/print.guide.llm.md): The print() function writes text to the console. - [Project Structure](/resources/project-structure.guide.llm.md): As programs grow, putting everything in one file gets hard to manage. This guide covers patterns for organizing Python projects into clear, maintainable pieces. - [Python Conventions](/resources/python-conventions.guide.llm.md): Snake case is a naming convention where words are separated by underscores. For example: first_name, total_score. - [CSC-121 Resources Index](/resources/resources.index.llm.md): Use this page as a central list of all reference resources. - [String Concatenation](/resources/string-concatenation.guide.llm.md): Concatenation means joining strings together to make one string. - [Variables](/resources/variables.guide.llm.md): A variable stores a value so you can use it later. You create one by assigning a value with =. - [While Loops](/resources/while-loops.guide.llm.md): A while loop repeats a block of code as long as a condition is true. - [macOS Window Management Guide](/resources/window-management-macos.guide.llm.md): When coding, you need to quickly move between: - [Windows Window Management Guide](/resources/window-management-windows.guide.llm.md): When coding, you need to quickly move between: - [Window Management Guide](/resources/window-management.guide.llm.md): Code faster by controlling your windows (macOS + Windows) - [Windows Setup Guide](/resources/windows.guide.llm.md): In this guide you'll be using PowerShell -- a built-in app on Windows that lets you interact with your computer by typing text commands instead of clicking… - [Unit 1: Practice Exam](/unit-1/exams/unit-1-exam/practice/unit-1-practice-exam/unit1-practice.exam.llm.md): Welcome to your Unit 1 Practice Exam! This practice has three parts that match the skill progression of the real exam while using different prompts and… - [Unit 1 Exam Guide](/unit-1/exams/unit-1-exam/unit1-exam.guide.llm.md): It's time to take our first exam! Read this guide carefully so you know what to expect. - [Unit 1: The First Mile](/unit-1/index.path.llm.md): columns: ["title", "times", "location"] - [Lab 1: Gutenberg](/unit-1/labs/01-gutenberg/01-gutenberg.lab.llm.md): For our first lab, we'll be focusing on print statements and program flow. - [Lab 2: Cyberlib](/unit-1/labs/02-cyberlib/02-cyberlib.lab.llm.md): Create a Python program that generates a cyberpunk-themed madlib story based on user input. - [Lab 3: Hacker](/unit-1/labs/03-text-adventure/03-text-adventure.lab.llm.md): title: "Lab 3: Hacker" - [Lab 4: Lists and Loops](/unit-1/labs/04-lists-and-loops/04-lists-and-loops.lab.llm.md): Build a hacking game where you collect data from a remote server using lists and loops. - [Lab 5: Fun with Functions](/unit-1/labs/05-fun-func/05-fun-func.lab.llm.md): Build a hacking toolkit using functions to create a branching narrative game. - [Lab 6: Unit 1 Exam Prep](/unit-1/labs/06-unit-1-exam-prep/06-unit-1-exam-prep.lab.llm.md): title: "Lab 6: Unit 1 Exam Prep" - [CS-121](/unit-1/lectures/lecture-1/lecture-1.slides.llm.md): theme: Inter (WMD) - [CS-121 Week 1](/unit-1/lectures/lecture-2/lecture-2.slides.llm.md): build-lists: true - [CS-121:](/unit-1/lectures/lecture-3/lecture-3.slides.llm.md): theme: csc-121 - [CS-121:](/unit-1/lectures/lecture-4/lecture-4.slides.llm.md): theme: csc-121 - [CS-121:](/unit-1/lectures/lecture-5/lecture-5.slides.llm.md): theme: csc-121 - [CS-121: Week 3, Lecture 2](/unit-1/lectures/lecture-6/lecture-6.slides.llm.md): theme: csc-121 - [Demo Code from Lecture 7](/unit-1/lectures/lecture-7/lecture-7.demo.llm.md) - [CS-121:](/unit-1/lectures/lecture-7/lecture-7.slides.llm.md): theme: csc-121 - [General Notes/Links](/unit-1/lectures/lecture-8/lecture-8.demo.llm.md): Why does Cloudflare use lava lamps to help with encryption? - [CS-121: Week 4,](/unit-1/lectures/lecture-8/lecture-8.slides.llm.md): theme: csc-121 - [Lecture 9 Demo](/unit-1/lectures/lecture-9/lecture-9.demo.llm.md): We learned how to define a function using the def keyword and how to call a function. - [CS-121: Week 5,](/unit-1/lectures/lecture-9/lecture-9.slides.llm.md): theme: csc-121 - [Starter Project](/unit-1/projects/0-starter-project/starter.project.llm.md): gh_classroom: - [Project 1: me.py](/unit-1/projects/01-me-dot-py/me-dot-py.project.llm.md): Welcome to your first project! In this project we will be building a simple profile card in Python using VS Code in GitHub Codespaces. - [Project 2: you.py](/unit-1/projects/02-you-dot-py/you-dot-py.project.llm.md): Create an interactive profile card program that collects user information and displays it in a formatted card with star ratings. - [Project 3: Pet.py](/unit-1/projects/03-pet-py/pet-py.project.llm.md): Create a simple text-based Pet Simulator game in Python. - [Pet Adventure: Step-by-Step Cheat Sheet](/unit-1/projects/04-pet-adventure/pet-adventure.guide.llm.md): This guide walks you through building the Pet Adventure game piece by piece. Each step shows you exactly what to type and explains why. Follow along in order! - [Project 4: Pet Adventure](/unit-1/projects/04-pet-adventure/pet-adventure.project.llm.md): Create a text-based adventure game where you explore a world with your pet. - [Project 5: Unit 1 Review](/unit-1/projects/05-review-project/unit-1-review.project.llm.md): Review the concepts covered in Unit 1. - [Unit 2 Exam Guide](/unit-2/exams/exam/unit2-exam.guide.llm.md): It's time for the Unit 2 exam! Read this guide carefully so you know what to expect. - [Kade Mesh](/unit-2/foundation/depts/mesh.persona.llm.md): Title: Chief Engineer, Department of Nodes - [Department of Nodes](/unit-2/foundation/depts/nodes.dept.llm.md): "Everything is connected. Our job is to make sure it stays that way." - [Department of Signals](/unit-2/foundation/depts/signals.dept.llm.md): "Data doesn't lie. But it does whisper. Our job is to listen." - [Department of Simulations](/unit-2/foundation/depts/simulations.dept.llm.md): "Reality is just a simulation that hasn't crashed yet." - [Dr. Vera Solen](/unit-2/foundation/depts/solen.persona.llm.md): Title: Director, Department of Signals - [Simone "Sim" Vance](/unit-2/foundation/depts/vance.persona.llm.md): Title: Lead Architect, Department of Simulations - [Welcome to the Foundation](/unit-2/foundation/foundation.index.llm.md): CLASSIFICATION: Level 1 — Recruit Eyes Only - [Level 1 Clearance](/unit-2/foundation/level-1.clearance.llm.md): Classification: Standard Recruit Access - [The Oracle](/unit-2/foundation/oracle.guide.llm.md): "I am here to assist. Ask, and I will do my best to answer." - [Lab 1: Protocol Assessment System](/unit-2/labs/01-pas/01-pas.lab.llm.md): Complete the Protocol Assessment System to receive your Foundation credentials. - [Lab 2: Department Trials](/unit-2/labs/02-department-trials/02-department-trials.lab.llm.md): Complete aptitude trials from each department head to discover where you belong in the Foundation. - [Lab 3: All-hands Fragment Analysis](/unit-2/labs/03-fragment-analysis/03-fragment-analysis.lab.llm.md): Analyze a recovered archive fragment with your department, then brief the room on what you found. - [Fragment Analysis — Combined Briefing](/unit-2/labs/03-fragment-analysis/03-fragment-analysis.reveal.llm.md): mode: dark - [Lab 4: Archive Protocol](/unit-2/labs/04-archive-protocol/04-archive-protocol.lab.llm.md): Use the terminal to build a project structure from scratch, then write a Python script that compiles a final archive of the Foundation investigation. - [Lab 5: Unit 2 Review Lab](/unit-2/labs/05-unit-2-review/05-unit-2-review.lab.llm.md): title: "Lab 5: Unit 2 Review Lab" - [Demo From Lecture 1](/unit-2/lectures/lecture-1/lecture-1.demo.llm.md): Two different ways to write the same function (get_number): - [CS-121](/unit-2/lectures/lecture-1/lecture-1.slides.llm.md): theme: csc-121 - [Lecture 2 Demo](/unit-2/lectures/lecture-2/lecture-2.demo.llm.md): Today we used dictionaries to represent employee records, then wrote functions to add employees, print them, and compute total salaries. - [CS-121: Unit 2, Lecture 2](/unit-2/lectures/lecture-2/lecture-2.slides.llm.md): theme: csc-121 - [Lecture 3 Demo](/unit-2/lectures/lecture-3/lecture-3.demo.llm.md): Today we reviewed functions and dictionaries, and then we started working on Project 1. - [CS-121: Unit 2, Lecture 3](/unit-2/lectures/lecture-3/lecture-3.slides.llm.md): theme: csc-121 - [Demo 1: Reading a File](/unit-2/lectures/lecture-4/lecture-4.demo.llm.md): Create a file called message.txt with the following content: - [CS-121: Unit 2](/unit-2/lectures/lecture-4/lecture-4.slides.llm.md): theme: csc-121 - [Lecture 5 Demo Code](/unit-2/lectures/lecture-5/lecture-5.demo.llm.md): We built a simple todo list CLI tool that: - [CS-121: Unit 2](/unit-2/lectures/lecture-5/lecture-5.slides.llm.md): theme: csc-121 - [Demo Code from Lecture 6](/unit-2/lectures/lecture-6/lecture-6.demo.llm.md): In this demo, we refactored our task list from Tuesday to be more modular. - [CS-121: Unit 2](/unit-2/lectures/lecture-6/lecture-6.slides.llm.md): theme: csc-121 - [Demo Code from Lecture 7](/unit-2/lectures/lecture-7/lecture-7.demo.llm.md): Today we update our task manager to include two new features: - [CSC-121: Unit 2 (Foundations)](/unit-2/lectures/lecture-7/lecture-7.slides.llm.md): theme: csc-121 - [Demo Code from Lecture 8](/unit-2/lectures/lecture-8/lecture-8.demo.llm.md): Here's the code we did in class today: - [CSC-121: Unit 2](/unit-2/lectures/lecture-8/lecture-8.slides.llm.md): theme: csc-121 - [Demo Code from Lecture 9](/unit-2/lectures/lecture-9/lecture-9.demo.llm.md): Today we added a simple AI feature to our task manager. - [CS-121: Week 5](/unit-2/lectures/lecture-9/lecture-9.slides.llm.md): theme: csc-121 - [Project 1: Internal Review](/unit-2/projects/01-internal-review/01-internal-review.project.llm.md): Your first Foundation assignment — process recruit intake records and generate a report. - [FND-208-0471: Process Q1 Recruit Intake Records](/unit-2/projects/01-internal-review/01-internal-review.ticket.llm.md): intake-processing - [Oracle Handbook: Internal Review](/unit-2/projects/01-internal-review/oracle-handbook.guide.llm.md): ORACLE HANDBOOK — generated for Ticket FND-208-0471 - [Recruit Assessment Form Guide](/unit-2/projects/01-internal-review/report.guide.llm.md): This guide is for the reports/01-report.md file required in Project 1: Internal Review. - [Project 2: Archive Audit](/unit-2/projects/02-archive-audit/02-archive-audit.project.llm.md): Investigate the Foundation archives — read data from files, process records, and generate an audit report. - [Oracle Handbook: Archive Audit](/unit-2/projects/02-archive-audit/oracle-handbook.guide.llm.md): ORACLE HANDBOOK — generated for Ticket FND-208-0512 - [Week 2 Report Guide](/unit-2/projects/02-archive-audit/report.guide.llm.md): This guide is for the reports/02-report.md file required in Project 2: Archive Audit. - [FND-208-0512-N: Archive Audit — HTTP Request Log](/unit-2/projects/02-archive-audit/tickets/nodes.ticket.llm.md): archive-audit - [FND-208-0512-S: Archive Audit — Signal Readings](/unit-2/projects/02-archive-audit/tickets/signals.ticket.llm.md): archive-audit - [FND-208-0512-X: Archive Audit — Simulation Log](/unit-2/projects/02-archive-audit/tickets/simulations.ticket.llm.md): archive-audit - [Project 3: The Architect's Index](/unit-2/projects/03-architects-index/03-architects-index.project.llm.md): Investigate the Architect's Index — a buried system that connects records across departments. Refactor your Project 2 code into a reusable module and recommend what should happen next. - [Oracle Handbook: The Architect's Index](/unit-2/projects/03-architects-index/oracle-handbook.guide.llm.md): ORACLE HANDBOOK — generated for Ticket FND-208-0519 - [Week 3 Report Guide](/unit-2/projects/03-architects-index/report.guide.llm.md): This guide is for the reports/03-report.md file required in Project 3: The Architect's Index. - [FND-208-0519-N: The Architect's Index — HTTP Request Log](/unit-2/projects/03-architects-index/tickets/nodes.ticket.llm.md): architects-index - [FND-208-0519-S: The Architect's Index — Signal Readings](/unit-2/projects/03-architects-index/tickets/signals.ticket.llm.md): architects-index - [FND-208-0519-X: The Architect's Index — Simulation Log](/unit-2/projects/03-architects-index/tickets/simulations.ticket.llm.md): architects-index - [Project 4: Fixing the Oracle](/unit-2/projects/04-oracle/04-oracle.project.llm.md): Bring the Oracle online by learning to install packages with uv, connect to the OpenAI API, and build an interactive AI assistant — the capstone of Unit 2. - [Oracle Handbook: Fixing the Oracle](/unit-2/projects/04-oracle/oracle-handbook.guide.llm.md): ORACLE HANDBOOK — generated for Project 4 - [Week 4 Report Guide](/unit-2/projects/04-oracle/report.guide.llm.md): This guide is for the reports/04-report.md file required in Project 4: Fixing the Oracle.