Education:
University of Wisconsin – Madison
December 2014
B.S in Biomedical Engineering
B.S in Computer Sciences
Relevant Coursework:
Biomedical Engineering
- BME Design (BME 200, BME 201, BME 300, BME 301, BME 400, BME 402)
- The Biomedical Engineering (BME) program at the University of Wisconsin – Madison requires students to take a design class every semester. In this class students work on real world design projects in teams of 4 to 5 students. Clients are often professors at the university, medical staff at the university hospital, or other professionals in the community. The class emphasizes the design process, communication, and technical skill development.
- Projects:
- Hand dynamometer to measure the rehabilitation of stroke patients (BME 200)
- Bioreactor design for mechanical testing of alginate gel samples (BME 201)
- Smart cigarette case to help severely mentally ill patients quit smoking – Pack Pal (BME 300-301)
- Active monitoring system for alpine skiers (BME 400-402)
- Medical Instrumentation (BME 462)
- Medical Instrumentation focuses on acquiring raw signals from the body, isolating those signals, and processing them. The course approaches this concept from both the analog and digital world. Advanced analog filtering techniques and circuit design are studied as well as sampling theory and real-time digital signal processing.
- Projects:
Electrical and Computer Engineering
- Embedded System Design (ECE 453)
- As a senior design/capstone course, students worked on a team to completely design and prototype an original project. Each team wrote project proposals, designed circuits, created schematics, spun PCBs (Altium), and built their prototypes. The project was open ended but there were a few criteria that included the use of a Linux RTOS, required FPGA development, and custom PCB design.
- Project:
- Intro to Computer Architecture (ECE 552)
- Intro to Computer Architecture is the final course in a series focused on digital logic and design. This course focused on processor design, RISC vs. CISC architectures, ALUs, pipelining, branching, and memory interfaces. The entire course was centered around a project in which partners designed a full 16-bit, 16 instruction, processor with a 5-stage pipeline and separate code/data caches. The processor was implemented using Verilog and then benchmarking tests were ran on each processor.
- Project:
- Real-Time Digital Signal Processing (ECE 379)
- Real-Time DSP was a lab course focused on implementing digital signal processing techniques in real time. The course was structured so that a new topic was learned and implemented in MATLAB, then ported to a DSP (TI TMS320). The course covered FIR filters, IIR filters, signal reconstruction, FFTs, and more.
- Intro to Embedded Systems (ECE 315)
- Intro to Embedded Systems was a low-level look into the world of embedded systems. The class focused on high-level processor design, assembly language, register configuration, memory structure, program structure, and common peripherals (UART, I2C, SPI, ethernet, and GPIO). Assignments and projects were completed on the Arm Cortex M4 processor.
- Circuit Design and Analysis (ECE 230)
- Circuit design and analysis provided a solid foundation in circuit theory. Topics covered included AC and DC resistor, capacitor, inductor and op-amp circuits.
Computer Sciences
- Intro to Operating Systems (CS 537)
- Intro to Operating Systems was a comprehensive overview of classic and modern operating system theory. Topics covered included process scheduling, memory-mapping, virtual machines, filesystems, distributed systems, threading, and security. Throughout the course topics were reinforced by changing or adding to the functionality of the xv6 operating system.
- Projects:
- Mobile Applications and Devices (CS 402)
- This course explored programming concepts and physical device limitations regarding mobile application development. The course covered in-depth discussions on networking protocol, cellular networks, mobile services, hardware, and modern mobile operating systems. There were multiple two week lab courses on programming iOS and Android applications.
- Project:
- Intro to Graphics (CS 559)
- Intro to Graphics covered modern graphics programming concepts. The course started with a review of fundamental linear algebra, moved to basic transformations in 2D and 3D space, then began to explore more complicated topics. Specifically, the course looked at curves, surfaces, interpolation, complex transformations, shaders, lighting, digital-image composition, sampling theory, graphics hardware, and more. All projects and assignments were completed using Visual Studio C++ and OpenGL (4.3).
- Project:

Sample image from my final project demonstrating normal mapping and global directional lighting.

Sample image from my Ski Town project demonstrating local lighting, global and local particle systems, and procedural texturing.
- Intro to Artificial Intelligence
- Intro to Artificial Intelligence covered modern AI theory including game theory, neural networks, SVMs, and decision trees. All topics were explored through class assignments and projects.
- Intro to Algorithms (CS 577)
- Intro to Algorithms was focused on introducing students to common algorithms, proofs, program complexity, and unsolved problems.
- Data Structures (CS367)
- Data Structures was an introduction to program design, data management, and program complexity. Topics included arrays, linked lists, stacks, queues, tables, maps, hashing, and other object oriented fundamentals. Beyond data structures, the class looked at interfaces, abstract classes, virtual functions, and polymorphism.