Classes

CS249r: Tiny Machine Learning (TinyML)

Semester: 

N/A

Offered: 

2020

Offered: 2020Fa

The explosive growth in machine learning and the ease of use of platforms like TensorFlow (TF) make it an indispensable topic of study for the modern computer science student. At the same time, the pervasiveness of ultra-low power embedded devices, coupled with the introduction of embedded machine learning frameworks like TensorFlow Lite for Microcontrollers will enable the mass proliferation of AI powered IoT devices. As such we have designed an introductory course at the intersection of Machine Learning and Embedded...

Read more about CS249r: Tiny Machine Learning (TinyML)

CS141: Computing Hardware

Semester: 

N/A

Offered: 

2020

Offered: 2020Sp

The main emphasis of this course is on the basic concepts of digital computing hardware and fundamental digital design principles and practices for computer systems. This course will cover topics ranging from logic design to machine organization and will address the impact of hardware design on applications and system software. An integral component of this course will be a sequence of hands-on hardware laboratory assignments where you will build digital circuits using simple logic gates and make use of some common software packages...

Read more about CS141: Computing Hardware

CS249r: Special Topics in Edge Computing - Autonomous Machines

Semester: 

Fall

Offered: 

2019

Offered: 2019Fa

The course covers a broad range of hardware and software topics in the context of smart/intelligent embedded systems. Traditional embedded systems are passive electronic devices that perform a single task and operate in isolation. In contrast, modern embedded systems are intelligent devices that involve complex hardware and software to perform a multitude of cognitive functions collaboratively. Designing such systems requires us to have deep understanding of the target application domains, as well as an appreciation for...

Read more about CS249r: Special Topics in Edge Computing - Autonomous Machines

EE382V: Code Generation and Optimization

Semester: 

N/A

Offered: 

2017

Offered: 2017Fa, 2013Fa, 2012Fa

Ever wonder how the high-level C/C++/<your favorite language> syntax statements eventually get converted to the binary 1's and 0's that the machines understand?! In CGO, we focus on the backend, rather than the front-end---it isn't about parsing and lexical analysis---rather it is about code generation and optimization. You'd want to take this course if you are interested in how compilers generate code ARM vs. x86, or how they optimize for different ISA types (RISC vs. CISC vs. VLIW). It assumes limited computer...

Read more about EE382V: Code Generation and Optimization

EE382V: Dynamic Compilation

Semester: 

N/A

Offered: 

2016

Offered: 2014Sp, 2013Sp, 2012Sp, 2010Sp

In this course, we focus on an important category of compilation called dynamic compilation that occurs as a program is running. With modern software heavily utilizing shared libraries, dynamic class loading and runtime binding, the scope of static analysis and transformation has grown restrictive. Dynamic compilation overcomes this challenge by postponing code generation and optimization until the initial stages of execution are complete. Dynamic compilers enable effective feedback-directed optimization, architecture-...

Read more about EE382V: Dynamic Compilation