Topics Covered in CS2010: Computing Fundamentals (Fall 2025) #
Computer Hardware Fundamentals (Early September) #
- Binary numbers, base conversions (binary, hex, decimal).
- Boolean logic: AND, OR, NOT; truth tables.
- Logic gates and circuits in Minecraft/Redstone.
- Designing circuits: sum-of-products, Boolean algebra simplification.
- Karnaugh maps (K-maps) for circuit optimization.
- Seven-segment displays.
- Negative numbers (two’s complement), floating-point representation.
- Memory: D flip-flops, registers.
- Clocks and counters.
- CPU outline: ALU, register file, memory, instruction execution.
Midterm Review and Exam (Early October) #
- Review of hardware topics.
- Midterm exam.
Programming Introduction with Lua and ComputerCraft Turtles (Mid-October) #
- Lua basics: REPL, data types (numbers, strings, tables), variables.
- Turtle commands: movement, digging, placing blocks.
- Control structures: while loops, for loops, if statements.
- Functions and abstraction.
- Tree chopping programs.
Version Control and Collaboration (Late October) #
- Git basics: init, add, commit, log, checkout.
- GitHub: forking, branching, pull requests, merge conflicts.
AI-Assisted “Vibe” Coding (Late October) #
- Using Aider with LLMs (e.g., OpenRouter, Qwen Coder) for turtle programs.
- Iterative development: square coverage, tree detection, chopping, dead reckoning.
Advanced Turtle Programming (Early November) #
- Dead reckoning: position and direction tracking.
- Recursive tree chopping.
- Variable scope and environments in Lua.
Networking and Web (Mid-November) #
- Internet basics: DNS, IP, TCP, HTTP/HTTPS.
- ComputerCraft HTTP client: fetching and parsing data.
- Drawing images from online text files.
- Web servers and applications (intro to Lapis in Lua).
Careers and Majors (Early December) #
- Comparison of CS, IT, Robotics, Math majors.
- Job outcomes, recommendations (projects, grad school, etc.).
This summary is derived from the class notes. The course emphasized hands-on Minecraft labs for hardware simulation and turtle programming, with a shift from low-level hardware to software and web concepts post-midterm.