diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0ad5912..1e8acb3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -34,7 +34,7 @@ jobs: uses: actions/upload-pages-artifact@v3 with: # Upload entire repository - path: 'book' + path: 'book/book' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index e2a4253..da64e9d 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -1,7 +1,7 @@ # Summary - [Overview](./overview.md) -- [Course Logistics](./logistics.md) +- [Teaching and Logistics](./teaching.md) # Lectures diff --git a/book/src/images/computer.png b/book/src/images/computer.png new file mode 100644 index 0000000..fea7514 Binary files /dev/null and b/book/src/images/computer.png differ diff --git a/book/src/lecture_electrical_basics.md b/book/src/lecture_electrical_basics.md index c8c6b14..48b55e4 100644 --- a/book/src/lecture_electrical_basics.md +++ b/book/src/lecture_electrical_basics.md @@ -1,12 +1,32 @@ # L1 - Electronics Refresher +In this chapter, +we'll be covering the basics of logic gates, +the fundamentals of digital signals, +and building a logic circuit on a breadboard. + +Don't skip this chapter too hastily– +it's essential to understanding how to modify and fix your computer! + ## Lecture ### Logic Gates +All of modern computing is predicated on the **bit**, +a single unit of information that can only ever be either 0 or 1. + +By itself, a single bit doesn't do much. +The power of computers comes when we combine bits together +and do operations on them using **logic gates**. + +The simplest gate (aside from the gate that does nothing) is the **NOT** gate, or inverter. + | A | NOT A | |------|--------| -| abcd | bcdfds | +| 0 | 1 | +| 1 | 0 | + +TODO: The rest of the gates ### Designing Some Logic diff --git a/book/src/logistics.md b/book/src/logistics.md deleted file mode 100644 index dfa982a..0000000 --- a/book/src/logistics.md +++ /dev/null @@ -1,16 +0,0 @@ -# Course Logistics - -## Materials - -| Name | Foobar | -|------|--------| -| abcd | bcdfds | - -## Lecture Format - -how many lectures should there be? -how long should lectures be? - -## Class Size - -how many students should be in a class? \ No newline at end of file diff --git a/book/src/overview.md b/book/src/overview.md index 46945bd..4a0e45b 100644 --- a/book/src/overview.md +++ b/book/src/overview.md @@ -1,13 +1,14 @@ # Overview Hello! - -This is the lesson plan for **Build Your Own Breadboard Computer (BYOBC)**. +This is the **Build Your Own Breadboard Computer (BYOBC) Book**! BYOBC is a framework for learning **how computer systems work**, by building one from individual components. -By the end of the course, students should understand: +If you're looking to teach this course, see [Teaching](teaching.md). + +By the end of this book, you should intuitively understand: - The fetch/decode/execute loop - Address and data buses - Timing constraints @@ -17,22 +18,27 @@ By the end of the course, students should understand: - Serial communication with UART - Basic 6502 assembly programming -Though the 80 minute per week format does not have time for it, -the class naturally could be extended to other topics like: -- PCB design -- Modern microcontroller design -- $TODO$ +And you will have a computer that might look something like this +(though whether it looks cleaner than this is up to you!): + +![An example computer](images/computer.png) + +## Prior Experience -## Course Design Choices +If all of the above topics sounded like a lot, don't panic! +This course is intended to be accessible even to electronics beginners. +You'll be fine if you have experience with the following: -why did i use the 6502? -why breadboards? +- Basic breadboard usage +- Any programming language (though lower-level is better) -## Can I teach BYOBC? +More than anything else the biggest keys to success are patience, cleanliness, and debugging skills. +We'll have tips on how to organize your computer and diagnose issues later! -## Core Goals +## Materials -BYOBC is centered around two guiding principles: -**accessibility** and **justification**. +If you're taking this as part of the 98-341 StuCo at Carnegie Mellon University, +then good news! The materials will be provided. -### Accessibility \ No newline at end of file +If not, stay tuned for ways to participate at home. +TODO: Materials listing. \ No newline at end of file diff --git a/book/src/teaching.md b/book/src/teaching.md new file mode 100644 index 0000000..8e30ca4 --- /dev/null +++ b/book/src/teaching.md @@ -0,0 +1,34 @@ +# For Instructors + +If you're not looking to host this as a class, you can safely skip this page. + +## Course Design Choices + +TODO: Rest of this page + +why did i use the 6502? +why breadboards? + +## Can I teach BYOBC? + +## Core Goals + +BYOBC is centered around two guiding principles: +**accessibility** and **justification**. + +### Accessibility + +## Materials + +| Name | Foobar | +|------|--------| +| abcd | bcdfds | + +## Lecture Format + +how many lectures should there be? +how long should lectures be? + +## Class Size + +how many students should be in a class? \ No newline at end of file