This syllabus is designed as a 10-week foundational "Bridge" course. It moves from pure numerical theory into the abstract logic that governs both hardware (NAND gates) and software (Assembly/C bitwise operations).
All resources listed are Creative Commons (CC) or Open-Source.
[Kuphaldt] Lessons In Electric Circuits, Vol IV (Digital) – Tony R. Kuphaldt (CC BY).
[Kahn] Digital Circuit Projects – Stephen Kahn/Charles Kann, LibreTexts (CC BY).
[MIT] 6.004 Computation Structures – MIT OpenCourseWare (CC BY-NC-SA).
[OpenStax] Introduction to Computer Science – (CC BY 4.0).
Goal: Mastery of number systems and data representation.
Week 1: Binary, Octal, and Hexadecimal.
Topics: Positional notation, base conversion (Dec $\leftrightarrow$ Bin $\leftrightarrow$ Hex), and "Why Hex?" (visualizing 4-bit nibbles).
Reading: [Kuphaldt] Chapter 1: Numeration Systems.
Hook: Discuss how Hex is used in memory addresses and C-style 0x notation.
Week 2: Binary Arithmetic.
Topics: Addition, subtraction (Two's Complement), and overflow.
Reading: [Kuphaldt] Chapter 2: Binary Arithmetic.
Reading: [OpenStax CS] Section 3.1: Data Representation.
Goal: Moving from numbers to logical "decisions."
Week 3: Logic Gates (The Physical "Why").
Topics: NOT, AND, OR, NAND, NOR, XOR, and XNOR.
Reading: [Kahn] Chapter 4: Gates.
Reading: [Kuphaldt] Chapter 3: Logic Gates.
Week 4: Truth Tables & Universal Gates.
Topics: Building complex tables; proving that NAND/NOR can build any other gate.
Reading: [MIT 6.004] Tutorial 4: Gates and Boolean Equations.
Hook: Explain that modern CPUs are essentially billions of NAND gates "glued" together.
Goal: Mathematical optimization of logic.
Week 5: Laws of Boolean Algebra.
Topics: Identities, Commutative/Associative/Distributive laws, and De Morgan’s Theorems.
Reading: [Kuphaldt] Chapter 7: Boolean Algebra.
Week 6: Algebraic Simplification.
Topics: Reducing complex expressions to Sum of Products (SOP) and Product of Sums (POS).
Exercise: [MIT 6.004] Problem Set 1 (Logic Section).
Week 7: Karnaugh Mapping (K-Maps).
Topics: Visual simplification, 2/3/4-variable maps, and "Don't Care" conditions.
Reading: [Kuphaldt] Chapter 8: Karnaugh Mapping.
Goal: Using logic to perform specific functions.
Week 8: Adders & Multiplexers.
Topics: Half-adders, Full-adders, and using MUXs to implement Boolean functions.
Reading: [Kahn] Chapter 6: Adders & Chapter 8: Multiplexers.
Week 9: Decoders and Encoders.
Topics: 7-segment displays and address decoding.
Reading: [Kahn] Chapter 7: Decoders.
Hook: How the CPU "chooses" which memory address to read.
Goal: Explicitly connecting logic to the upcoming Assembly/C courses.
Week 10: Bitwise Operations & Masking.
Topics: Bitwise AND (&), OR (|), XOR (^), and NOT (~) in C. Setting, clearing, and toggling bits.
Resource: [OpenStax CS] Section 4.3: Boolean Operations.
Assembly Hook: Look at the FLAGS register in x86/ARM and how Boolean logic determines "Jump if Zero" (JZ) or "Jump if Carry" (JC).
Course Concept and a Practical Assembly/C "Hook"
Two's Complement
Understanding why signed integers wrap around to negative numbers.
Bitwise AND
Masking: Extracting specific bits from a status register (e.g., if (reg & 0x01)).
Bitwise OR
Setting Bits: Turning on a specific hardware peripheral without affecting others.
Bitwise XOR
Toggling Bits: Switching an LED state or simple encryption/obfuscation.
De Morgan's Laws
Optimizing if statements in C (e.g., !(A && B) is the same as `!A
Instructional Tip: Since students will later learn about Assembly, emphasize Week 10 heavily. Showing them how an AND gate in hardware is identical to a & operation in C is the "lightbulb moment" that connects the two worlds.