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)

    1. Physical & Datalink: Ethernet
    2. Network: IP
    3. Transport: TCP/UDP
    4. 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:
  1. Developer Workflow (How can you make programming, compilation or deployment more efficient?)
  2. Network Automation (How can you analyze Network Activity and react to it?)
  3. 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

Session 9/10 - January 10