Continuum: Joy of Coding (for Everyone)

july 5 — august 13, 2021

about the course

The Joy of Coding is an online course specially created for anyone who wants to experience first-hand the power, and thrill, of coding computers to do amazing stuff. Created with high school students in mind, it is a great way for anyone to step into the wondrous world of coding. No prior coding experience is required!

The course includes weekly video lectures, reading, and coding assignments.

Students will:

- Learn to code at their own pace w/ support from Michigan ECE faculty & students

- Receive a certificate of accomplishment to include in college apps

- Have our commitment to help you get unstuck when learning to code

You’ll learn by programming from scratch in a hands-on manner using a one-of-a-kind cloud-based interactive computational textbook that will guide you, and check your progress, step-by-step. Using Python, course students will learn how coding powers apps such as SnapChat, TikTok, Instagram and Siri, and even learn how to code their own versions of SnapChat lenses.

By the end of the course, you will understand, by doing, concepts that are ubiquitous in coding and computational thinking such as loading, saving and transforming variables, functions, for loops and if-then conditional expressions. We'll employ applications from machine learning, that are part of SnapChat lenses, to illustrate these concepts.

about the instructor

Raj Rao Nadakuditi

is an Associate Professor of Electrical Engineering and Computer Science at the University of Michigan, Ann Arbor. He received his Masters and PhD in Electrical Engineering and Computer Science at MIT as part of the MIT/WHOI Joint Program in Ocean Science and Engineering.

In addition to receiving the Jon R. and Beverly S. Holt Award for Excellence in Teaching, Prof. Nadakuditi has received the DARPA Directors Award, DARPA Young Faculty Award, IEEE Signal Processing Society Best Young Author Paper Award, Office of Naval Research Young Investigator Award, and the Air Force Research Laboratory Young Faculty Award.

His graduate level course, Computational Data Science and Machine Learning, attracts hundreds of students from 80+ disciplines across the University. He loves making machine learning accessible to learners from all disciplines and enjoys seeing how students adapt the underlying ideas and develop creative, new applications in their own scientific of engineering area of expertise.


This offering has evolved from many years of the instructor teaching Computational Data Science and Machine Learning at the University of Michigan, MIT Lincoln Laboratory and the Air Force Research Laboratory (AFRL).

The syllabus distills the elements of coding necessary so that one may take more advanced coding based courses in computational science and engineering that require computer programming as a pre-requisite.

Over the years of teaching this course at U-M, the instructor has derived tremendous satisfaction from seeing students from a wide range of disciplines seeing how the beautiful math leads to beautiful code and applications that seem magical the first time the math and code come together to do something remarkable, as in the many applications we will showcase. That's a bit part of the fun of the underlying subject matter and we hope you leave with that sense of wonder, too.

Key Concepts in Coding and Computational Thinking


how do I apply to take this course?

You may apply for the course here.

how much does this course cost?

See the Continuum: Coding page for more information.

supplemental resources

There are several additional resources that we recommend. These resources may be used as a companion book or simply to supplement the concept presented here.

There is so much to learn and we are delighted that there so many resources that present the material in slightly different ways -- all come together to help a learner form a more complete picture of the material. One can never really stop learning with how much there is to learn! (That's part of the fun for this author!)


Multiple thanks to Alan Edelman for years of encouragement and inspiration and for teaching me so much (including Julia). A learner experiencing this book by doing/coding might sometimes recognize his voice in the way I write and speak about coding . That's no accident. This course is infused with his DNA and years of me soaking in his thoughts and ideas on so many matters, particularly on how elegant math produces elegant codes and vice versa.