# Lectures

Here I’ve collected slides and papers/notes I’ve used for various presentations, talks, lectures and tutorials throughout high school and beyond.

##### Quantum Computing

**Wednesday, March 21, 2018** for **Mathematical Physics Class**

Quantum algorithms are one of the most important areas in computer science, in that if and when large-scale quantum computers are developed, they will have massive impacts on the lives of almost every person on Earth. This paper is a tutorial in the basics of quantum computation, examining Grover’s algorithm for database searching and Shor’s algorithm for efficient integer factorization.

Paper/Notes##### Post-Gödel Logic and Unanswered Questions

**Wednesday, January 24, 2018** for **Mathematical Logic Class**

Since our instructor was out on paternity leave, I had the privilege of preparing and delivering the final lecture for the 2017-18 Mathematical Logic class at Blair. The topic was beginning to examine the state that math was left in after Gödel’s Incompleteness Theorems and other early 20th-century developments in set theory and logic, as well as the personal fates of Hilbert, Russell, Turing, and Gödel himself.

Slides##### Formal Language Theory and Automata

**Thursday, January 04, 2018** for **MBHS Computer Team**

This is a guided activity, which is a combination of lecture paper and exercises that I helped Computer Team members work through to introduce them to the fundamentals of the theory of computation: decision problems, languages, and automata.

Paper/Notes##### Computer Systems VI: Compilers

**Thursday, December 07, 2017** for **MBHS Computer Team**

Compilers are the backbone of modern software, enabling programmers to write efficient code at a highly-manageable level. This lecture is a introduction to what compilers are and how they work.

Slides##### Ordinals

**Wednesday, December 06, 2017** for **Mathematical Logic Class**

Informally, ordinals are extensions of the natural numbers to and beyond countable infinity. Formally, they are canonical representations of equivalence classes of well-ordered sets, with deep implications for axiomatic set theory. Here, with Dilhan Salgado, as one of Logic’s student presentations, I examined the intuition behind ordinals and what makes them so vitally important in mathematical logic.

Slides##### Computer Systems V: Networking

**Thursday, November 30, 2017** for **MBHS Computer Team**

The Internet, and computer networks in general, are ubiquituous in our everyday lives. In this lecture, we explore the fundamentals of computer networks and how they are structured, common Internet protocols, and how the World Wide Web works.

Slides##### FASTA and FLOW: Adaptive and Accelerated Convex Optimization with a Sequential Paradigm for Iterative Numerical Algorithms

**Wednesday, November 15, 2017** for **Senior Research Project**

Every important problem in mathematics, computer science, engineering, and the pure and applied science can be formulated in some way as an optimization problem. I developed a readable, user-friendly Python implementation of Goldstein’s FASTA algorithm for optimization of nonsmooth convex objectives.

Slides Paper/Notes##### Computer Systems IV: Computer Engineering

**Thursday, October 12, 2017** for **MBHS Computer Team**

The central processing unit, or CPU, is by far the most important component of the computer. CPUs simply sequentially execute a sequence of steps called instructions. However, the interface between the CPU and other components of the computer, such as memory and peripherals, as well as a drive to make CPUs faster, more efficient, and more parallel have driven a recent proliferation in advanced CPU optimizations.

Slides##### Computer Systems III: Multitasking and Concurrency

**Thursday, October 05, 2017** for **MBHS Computer Team**

Another key function of the kernel is to allow multiple user- and supervisor-level tasks to run in parallel, necessitating considerations and balances in terms of scheduling of tasks and concurrency between tasks.

Slides##### Computer Systems II: Kernels and Memory Management

**Friday, September 29, 2017** for **MBHS Computer Team**

The kernel is the most fundamental component of the operating system, the interface between software and hardware on a computer. Kernels, although of varying complexity and design, have several specific functions in common. One of the most important functions common to almost every kernel is memory management: the ability to control the layout and allocation of memory to user applications.

Slides##### Computer Systems I: Introduction

**Thursday, September 14, 2017** for **MBHS Computer Team**

Welcome to Computer Team! This year, I’ll be publishing all the lecture slides on my website. Computers are complex and multifaceted systems, and we begin by discussing the basic parts of the computer.

Slides