Classes

Representing Information

Class 1: Introduction [Slides]

  • Course Objectives
  • Why do we need to understand computing?
  • Expectations
  • What are we curious about
  • Who am I and why am I teaching this course
  • Introducting Digital vs. Analog

Class 2: The Digital Abstraction [Slides]

  • Beginning of Course Survey
  • Analog/Digital
  • Digital Music

Class 3: Apple is Lossy, but Microsoft has bigger Megabytes [Slides]

  • 16 bits
  • What’s a “MB”?
  • Data Compression
  • Why Binary?

Class 4: Continuous Binary Representations [Slides]

  • Project 1 Questions
  • Continuous Binary Representations
  • Encryption
  • Leaking DRAM (Cold Boot Attacks)

Class 5: Computing on Binary Data [Slides]

  • Addition Algorithms
  • What is an algorithm?
  • Binary Addition Algorithms
  • Multiplcation
  • 0.010101010101010…

The Internet and the Web

Class 6: Search [Slides]

  • How computers encode text, Unicode
  • Possible Paths for the Course
  • Search Engine Trivia Contest!
  • Introducing Web Search

Class 7: Finding Needles on the Web [Slides]

  • ChatGPT is not a search engine: “hallucinating” UVA classes
  • Search Strategies
  • Jefferson’s Library
  • Index, Hashing
  • Grading Philosophy

Class 8: The Internet and the World Wide Web [Slides]

  • Networks
  • Developer Tools in Web Browsers
  • Chappe’s Semaphore Network
  • Latency and Bandwidth
  • The World Wide Web

Class 9: PageRank and Packet Pathways [Slides]

  • Crawling the Web
  • Finding the “best” web pages, PageRank
  • Version Control Systems: git
  • Packets on the Internet
  • ping and traceroute (tracert on Windows)

Class 10: Zombie Packets! [Slides]

  • Routing on the Internet
  • IPv4 vs. IPv6
  • How traceroute works?
  • Domain Names (why its good to live in Anguilla)

Class 11: Owning a Piece of the Internet [Slides]

  • Mid-Course Survey (the survey will remain up, please submit any time you want)
  • Owning a Piece of the Internet
  • Buying a Domain Name

Trust on the Internet

Class 12: Bootstrapping Trust [Slides]

  • HTTPS
  • Requirements for Transport Layer Security
  • Introduction to Encryption
  • Kerckhoff’s Principle
  • Jefferson’s Wheel Cipher
  • Key Agreement over an Insecure Channel
  • Signatures

Class 13: TLS Everywhere! [Slides]

  • Happy Leap Day!
  • Project 2: Responding to Search Requests
  • Desining Transport Layer Security
  • Certificates
  • How TLS became used everyhwere

Class 14: Ask Anything [Slides]

Programming

Class 15: Programming [Slides]

  • What is Language?
  • Components of Language: Primitives, Means of Combination, Means of Abstraction
  • JavaScript and the DOM

Class 16: Languages and Grammar [Slides]

  • Science of Programming?
  • Backus Normal Form
  • Generating Infinite Languages

Class 17: JavaScript Programming [Slides]

  • Recapping and Extending BNF Grammars
  • News Highlights: Poisoning, Tim Berners-Lee, and the Reddit IPO!
  • Programming in JavaScript

Class 18: Functions in JavaScript [Slides]

  • How to Learn a Language
  • Functions in JavaScript

Class 19: Repetition [Slides]

  • Questions about BNF grammar and derivations
  • Florida’s Social Media ban
  • JavaScript for loops

Class 20: Reasons for Paranoia, Programming with Recursion [Slides]

  • xz backdoor
  • Recursive Definitions and Functions
  • Spelling Correction (Edit Distance)

Class 21: Aliignment [Slides]

  • Edit distance
  • Genome alignment

Class 22: Exam Review [Slides]

Artificial Intelligence

Class 23: Artificial Intelligence? [Slides]

  • Exam Questions Discussion
  • Is it AI?

Class 24: Artificial Intelligence! [Slides]

  • Brief History of “Artificial Intelligence”
  • Introduction to Machine Learning

Class 25: Universal Machines and Learning Machines [Slides]

  • Turing’s Machine Model
  • Universal Machines
  • Machine Learning by Modeling Neurons

Class 26: Large Language Models [Slides]

  • Training a Language Model
  • Tuning and RLHF
  • Limitations of Generative AI
  • Retrieval-Augmented Generation

Class 27: Invent the Future! [Slides]

  • Predicting the Future
  • Exponential Progress
  • Jobs for Human Beings