CPEN 499 (Undergraduate Thesis) is a course I completed at UBC over two terms. The course is a research project that is supervised by a faculty member and culminates in a thesis. The goal of the course is to conduct research in a specific area of interest and write a thesis on the findings.
CPEN 491 (Computer Engineering Capstone Design Project) is a two term course I completed at UBC. The goal of the course is to complete a design project with a team of 4-5 peers in collaboration with an client.
CPEN 412 (Microcomputer Systems Design) is a course I completed at UBC. The course focused on interfacing with microprocessors. This includes revelent communication protocols, devices, and design choices. The final project was to port a retro video game to the MC68K processor.
CPEN 442 (Introduction to Cybersecurity) is a course I completed at UBC. The course focused on exploring various cryptographic building blocks, attacks, and applications. The course final project was to design and create a custom VPN that implemented various cryptographic tools.
CPEN 411 (Computer Architecture) is a course I completed at UBC. The course focused on design considerations and advanced considerations when creating microprocessors. This includes tomasulo's algorithm, branch prediction, memory systems, and piplining.
CPSC 440 (Advanced Machine Learning) is a course I completed at UBC. The course focused on machine learning from a probabilistic standpoint. The final deliverable for the course is paper detailing an experiment of our choice done to explore the field of machine learning.
CPEN 455 (Deep Learning) is a course I completed at UBC. The course focused on understanding the concepts and techniques underlying the field on deep learning. The final deliverable of the course was modifying the architecture of a generative model to improve its performance and make it additionally a function as a classifier. We explored the mathematics and theory of backpropagation, optimizers, CNNs, transformers, LLMs, VAEs and more. It was taught by Professor Renjie Liao. UBC provides the following description of the course
CPEN 431 (Design of Distributed Software Applications) is a course I completed at UBC. Throughout the course we created a sequentially consistent distributed key value store with redundancy on AWS. We explored various topics including "communications, processes, naming, synchronization, consistency and replication, fault tolerance, object-based middleware, and security technologies for distributed applications"
CPEN 311 (Digital System Design) is a course I completed at UBC. The course involved using an FPGA to design digital systems. It also covered relevant problems and limitations that appear with large digital systems.
CPSC 340 (Machine Learning and Data Mining) is a course I completed at UBC. The course involved studying, understanding, and programming various machine learning algorithyms and techniques.
CPSC 320(Intermediate Algorithym Design and Analysis) is a course I completed at UBC. The course explored a variety of techniques used to create and analyize and categorize algorithyms in terms of time-space complexity, np-completeness, and more.
CPEN 331 (Operating Systems) is a course I completed at UBC. The course primarily consisted of six large projects that lead to creating many aspects of an operating system for os161.
CPEN 291 (Engineering Design Studio) is a course I completed at UBC. The course consisted of labs and projects covering concepts related to web-development, object oriented programming, IOT devices, machine learning, and embedded devices.
CPEN 221(Software Construction 1) is a course I completed at UBC. The course involved three group software development projects and included timed programming and problem-solving proficiency tests.
CPEN 211 (Introduction to Microcomputers) is a course I completed at UBC. The course consisted of weekly project-based labs that lead to creating our own RISC computer with Verilog.