Lecture Notes
Session 1/2 - November 29
Intro to Digital Business and Entrepreneurship
- Understanding Digital Business from First Principles:
- The Idea of Universal Computational Machines
- Electronic Computers
- Future Computational Technologies (Quantum Computing & Bio Computing)
The Bit and Boolean Logic
- Bits and Representation
- Truth Tables and Logic
- Logic Gates as technical implementation of digital logic and arithmetic
- Hands-on: Nandgame
Bytes and Representation
- Representing Numbers
- Representing Text
- Representing Images
- Hands-on: Rust Numbers, Strings, and Structs
LUNCH —
Linux and the Command-Line
- Navigating
- Pipes
- STDIN/STDOUT/STDERR
- Customizing your commandline (dotfiles, nix)
Our first Rust Program:
- The compilation process: Encoding logic in compiled binary files encoding machine instructions
- Compiled vs. interpreted languages
Session 3/4 - December 6
- Review of Rust code
- Recap of Circuits and Binary Logic
- One and two’s complement, building a half adder/full adder
Sequential Logic
- Understanding Inverters and Oscillators
- Understanding Latches and Flip Flops
- Hardware implementation of Memory and Hard Disk
Computer Anatomy
- I/O Bus
- Memory
- CPU
- Instruction Sets
- Compilation Process
LUNCH —
Memory Management
- Stack and Heap
- Pointers
- Ownership and Borrowing
Session 5/6 - December 13
Recap
- Rust Programming: Improving cat_rs
Computer Architecture
- Von Neumann vs. Harvard
- Operating Systems
- Memory Hierarchy
- Heap and Stack
Exercise
- Reviewing our program, improving stack vs. heap usage
LUNCH —
Computer Networks
- OSI Model
- Simple HTTP Server from Scratch
- Command-line tools for networking
Session 7/8 - December 20
-> We skip chapters 7 and 8 in our core book.
- Review Web Client
Networking Stack (OSI in depth)
-
Build a Packet tracer in Rust (sharkr)
- Physical & Datalink: Ethernet
- Network: IP
- Transport: TCP/UDP
- Session/Presentation/Application: HTTP, FTP,…
Web Technologies
- Markup Languages
- URLS
- The DOM
- JavaScript
- jQuery/HTMX
LUNCH —
Define Product and Business Model
- Broad Categories for your CLI Tools:
- Developer Workflow (How can you make programming, compilation or deployment more efficient?)
- Network Automation (How can you analyze Network Activity and react to it?)
- Text Editing (How can you build highly specific text-editing workflows?)
- Lean Canvas
- Define Content -> Lean Canvas
Website on Github Pages
- Using git and gh
- Publish a Site on Github Pages