Teaching




I am very passionate about teaching.

In particular, my courses focus on teaching students the latest practices in hardware and computer design. Each year, hundreds of students at UC San Diego learn how to build processors from scratch! In my hardware class, students use the SystemVerilog design language to design their own unique processor and map it down to FPGA.


The classes I've taught:

YEAR     WINTER      SPRING         FALL    
2006 N/A 240B 240A
2007 141, 141L 291
2008 240B 141, 141L 141, 141L
2009 240A 148 291
2010 240B 141, 141L 240A
2011 240B 141, 141L 291
2012 240B 141, 141L 141, 141L
2013 240A 240B
2014 141 (+141L refactor) 240B 240A, 290
2015 141
2016 190, 290 240B, 190

Courses



Spring 2016 CSE 240B: Parallel Computer Architecture
Spring 2016 CSE 190: Competitive Programming

<----- PC

Winter 2016 CSE 190: The Open Source Hardware Movement

The open source software movement has blossomed over the last 30 years, and is directly responsible for the current surge in the software industry, where developers can create large startups in which only 5% of the source base is their own code. Recently, the open source hardware movement has been rapidly gaining ground. In this class, we will study the development of the movement, including progress in open-source processors (RISC-V), open-source GPUs (MIAOW), open-source FPGAs, and open-source libraries (opencores.org).

In this class we will brainstorm about this movement, and students will engage in an open source hardware project of their choice to advance the state-of-the-art in open source hardware development. By end of class, students should have their project accepted and integrated into the open source project's github repository, with UCSD prominently displayed of course.

Prerequisites: A+ or A or A- in CSE 141L or ECE 111, or excellent knowledge of SystemVerilog or Chisel, or Permission of Instructor.

Spring 2015 CSE 141: Introduction to Computer Architecture
Fall 2014 CSE 240A: Grad Computer Architecture
Spring 2014 CSE 240B: Parallel Computer Architecture
Winter 2014 CSE 141: Introduction to Computer Architecture
Spring 2013 CSE 240B: Parallel Computer Architecture
Winter 2013 CSE 240A: Principles of Computer Architecture
Fall 2012 CSE 141: Introduction to Computer Architecture
Fall 2012 CSE 141L: Design and Implement Your Own Processor
Spring 2012 CSE 141: Introduction to Computer Architecture
Spring 2012 CSE 141L: Design and Implement Your Own Processor
Winter 2012 CSE 240B: Parallel Computer Architecture
Fall         2011     CSE 291: Smartphone Processor Design
In this class, we will study the design decisions in multicore mobile application processors for Android and other smartphones. Mobile applications processors are the new centroid of processor design and have a new set of interesting design constraints. In addition to course reading, the majority of the class will be spent on a class project that extends academic research in this area.

Requirements: one or more of the following:
  • A-, A or A+ in 240A, 240B, 240C or equivalent
  • A-, A or A+ in 141L, or
  • significant hardware design experience
Enrollment is limited to 15.


Spring 2011 CSE 141: Introduction to Computer Architecture
Spring 2011 CSE 141L: Design and Implement Your Own Processor
 
Winter 2011 CSE 240B: Parallel Computer Architecture
 
Fall 2010 CSE 240A: Principles of Computer Architecture
Spring 2010 CSE 141: Introduction to Computer Architecture
Spring 2010 CSE 141L: Design and Implement Your Own Processor
Winter 2010 CSE 240B: Parallel Computer Architecture
Fall 2009 CSE 291: Manycore System Design
Spring 2009 CSE 148: Advanced Architecture Lab
Winter 2009 CSE 240A: Principles of Computer Architecture
Fall 2008 CSE 141: Introduction to Computer Architecture
Fall 2008 CSE 141L: Design and Implement Your Own Processor
Spring 2008 CSE 141: Introduction to Computer Architecture
Spring 2008 CSE 141L: Design and Implement Your Own Processor
Winter 2008 CSE 240B: Advanced/Parallel Computer Architecture
Fall 2007 CSE 291: Design of Concurrent VLSI Architectures
Spring 2007 CSE 141: Introduction to Computer Architecture
Spring 2007 CSE 141L: Design and Implement Your Own Processor
Fall 2006 CSE 240A: Principles of Computer Architecture
Spring 2006 CSE 240B: Advanced Graduate Computer Architecture


Back to Michael Taylor's page.