Academics.
On this page, you will find a sample of some of the computer science courses that I have taken, including descriptions of some of the programming projects that I completed for each class.
CPSC 526: Building Distributed Systems
Spring 2022
A course that provided both practical experience and theoretical bases for building distributed systems. "Technical topics covered include properties such as consistency, availability, durability, isolation, and failure atomicity; as well as protocols such as RPC, consensus, consistent hashing, and distributed transactions."
Selected Projects
- An implementation of the RAFT consensus protocol written in Golang.(See this page for a link to the original assignment upon which this project was based.)
- A dynamic sharded key-value store, written in Golang using gRPC.
CPSC 434: Topics in Networked Systems
Fall 2021
A networking course which covered topics including HTTP, TCP, OSPF, BGP, Kubernetes, RAFT, and data center design, among others.
Selected Projects
- A high-performance HTTP server written in C++, which used epoll to process concurrent connections. Features included Apache-style configuration files, content negotation based on user agent, conditional transfer with If-Modified-Since and Last-Modified, CGI support, caching, and chunked encoding.
- A TCP implementation. In addition to basic sliding window reliabile transport, the entire TCP state machine was implemented, along with connection multiplexing, TCP Reno rate control, and TCP CUBIC flow control.
LING 380: Topics in Computational Linguistics: Neural Network Models of Linguistic Structure
Fall 2021
A natural language processing (NLP) course. Fundamental concepts in modern deep learning were derived, and network architectures such as RNNs, LSTMs, and Transformers were presented. The use of neural networks in tackling linguistic questions was emphasized through discussion of published papers.
Selected Projects
- A multilayer perceptron written in Python without the aid of any libraries. Backpropagation code for each type of layer was written by hand. The model was then trained on a part-of-speech tagging dataset.
- An RNN part-of-speech tagger written in Python with PyTorch. The architecture could be configured to be based upon RNN cells, GRU cells, or LSTM cells. The embeddings produced by the network were analyzed in a linguistic context.
CPSC 522: Design and Implementation of Operating Systems
Fall 2020
"This course covers the fundamentals of operating system design and implementation. Lectures present the central ideas and concepts (e.g., synchronization, deadlock, process management, storage management, file systems, security, protection, and networking) and explain how they are manifested in practical operating systems. Students will be working on a series of six programming assignments leading to a small but real operating system."
Selected Projects
- A physical memory management system which manages the allocation and deallocation of physical pages of memory.
- An implementation of virtual memory management with paging.
- A process/thread management system supporting fork with copy-on-write.
- A trap handler responsible for taking care of syscalls, interrupts, and exceptions.
- An implementation of symmetric multiprocessing support, via the use of synchronization primitives in core kernel code.
- An implementation of directory inodes, path resolution, and syscalls for a filesystem. A basic shell, including file manipulation commands, was implemented to test the filesystem.
- An implementation of graphics using VESA BIOS extensions. Resolution data is obtained and kept track of in the kernel, allowing for resolution-independent code to be written. A window manager was then implemented, which communicates with userland programs via syscalls. Userland graphics programs could get user input based on the current window in focus, and the user can move windows around on the screen and switch between windows. To demonstrate the power of the graphical system, an image viewer was written, which displayed a bitmap of Van Gogh's "The Starry Night".