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
- 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
andtraceroute
(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
- 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)
- 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