Find the right nanodegree program for you.

Start Learning

Jupyter Notebooks are fantastic tools for learning any technical topic, from basic programming to data science all the way to advanced artificial intelligence. Like a web page, you can read and review learning content; and like a traditional programming environment, Notebooks can be “hands-on”. Notebooks invite you to experiment with the code and data cells alongside the equations and graphs.

But have you ever wished an instructor was sitting right next to you when you’re stuck on something, to “show you how she would solve it?”

Graffiti brings that instructor into the Notebook, and makes Udacity’s new C++ Nanodegree Program an amazing way for software engineers to learn the C++ programming language!

Jupyter Graffiti are recorded, interactive demonstrations that live inside your Notebooks.

Via Jupyter Graffiti, Udacity instructors show you exactly how to solve each problem. They walk you through the content, pointing, selecting, typing and executing code, adding and removing code cells, and more.  As a student, you can play these recordings as many times as you want, or not at all, and pause and rewind them to see the instructor write and explain the code again.

Since a Graffiti “video” is a live replay of the instructor’s interactions, you can pause it any time — and when it’s paused you can dive in to play with the instructor’s work right in the Notebook (execute it, copy it, change it, execute it again)— and then resume playback when you’re ready.

Sebastian Thrun, Udacity founder and CEO, says, “The best way to “get it” is to watch a little, try a little, see what happens, and watch some more… Graffiti creates that incremental learning experience we all need in order to become great programmers.”

You’ll also see visual annotations, such as highlights, drawings, symbols, arrows, and written notes to help explain what’s going on. Embedded Graffiti mini-terminals record shell activities. “Graffiti buttons” reveal solutions cells, along with a recording explaining the solution in detail.

Jupyter Notebook Graffiti programming mini terminal example
Graffiti “Mini-terminals” in use along with a “compile and execute” button that runs instructor code.

Graffiti are already in use in our Programming for Data Science With R Nanodegree program, but our most extensive Graffiti are to be found in our new C++ Nanodegree program, where you can watch Udacity instructors edit, compile and run C++ code.

I can show students how all the parts of a more complex program– header files, cpp, and makefiles– work in tandem. Then students can instantly tweak the program I’m showing them,” notes David Silver, Product Lead for C++. “And since Graffiti are so easy for students to create, I can afford to explain a lot more difficult concepts in much more detail.”

Because Udacity has benefited so much from Jupyter Notebooks, we’re open-sourcing Graffiti to the broader community. We believe anybody who uses Jupyter Notebooks will enjoy adding Graffiti, and we’re excited to see how people use it. We’re also eager to hear what our students have to say about this new learning tool.

You can find the open-source Graffiti project here and enroll in the C++ Nanodegree program here.

Will Kessler
Will Kessler
Will Kessler runs the Content Tooling team at Udacity. Previously, he ran the Workspaces team and oversaw the integration of Cloudlabs technologies into Udacity’s offerings. He spends a lot of his time working to advance the interactive tools available to Udacity students.