
Co-Curricular Learning for the Innovator in You
The Roots Program is a series of workshops and lectures on technology
topics, open to anyone in the Duke Community. Through these events and
online platforms, students, faculty or staff of any skill and confidence
level can comfortably start to gain an understanding of how to make use
of a variety of tools and technologies. The goal here is not to make
you an expert — we know that takes time — but to help you get to the
point where you’re excited and confident about starting your own project
or continuing your education. We offer workshops in topics like web
design, HTML, CSS, JavaScript, Python, research computing, 3D modeling
and fabrication, and many more.
If you’ve got an idea for a topic we’re not covering, or if you’re an
expert in a topic you’d like to teach, let us know.
All classes are free — just enroll below.
Course Gallery
Looking for a specific course or subject? Start typing in the search bar below and press enter to see related classes.
Interested in a particular track? Use the filter below to show those classes only.
Showing All Tracks

Add Video Effects with After Effects
Brandon Johnson
Come to this class to get an overview of After Effects and add some video effects to a video (yours or the one provided). This class will teach you the basics of video and GFX animation in After Effects.
Learn More
Art as Care: Exploring Movement
This workshop uses motion sensors in collaborative games. The sensors give sound feed back — when one moves, she creates a new space : a soundscape. Participants will explore how to care for the soundscapes they create.
Learn More
Backing up and Sharing Code: Git
Jeff Gula
Tried to use Dropbox for sharing code with collaborators on a project, but accidentally deleted someone else’s work? Ever wished you could undo that “improvement” you made? Whether you’re working with others, or on your own, using git can make development a much more sane and enjoyable process.
Learn More
Book Making with Chandan Gomes
Join in this special workshop taught by visiting artist Chandan Gomes to learn how to create a handmade artist book with photos. You can use the provided images, or if you prefer to use your own, contact Chris Sims at csims@duke.edu by noon on Fri, Sep 28, for instructions.
Learn More
Branding: Build a Brand
Sandra Bermond
Choose a business idea, and establish the direction of the brand by figuring out its attributes and values before choosing fonts, colors, shapes and graphics matching those values, to create a spot on looking brand guide.
Learn More
Branding: The Psychology of Brands
Sandra Bermond
Take this class is to understand the psychology behind the brands you encounter everyday and how their values are manifested through their choices in typography, colors, shapes, graphics and overall style.
Learn More
Coding for Android: Kotlin
Philabian Lindo
Learn the basics of Kotlin, the new language used to code Android apps. In this class, we will overview rudimentary syntax, flow of control, data structures and object-oriented concepts.
Learn More
Create a Web App with Django
Danai Adkisson
Come and learn the basics of the Django web framework. Django is a web MVC framework powered by python to quickly create full stack web applications. This course will take you though the fundamentals of setting up and interacting with each layer of the Django stack from web page to database.
Learn More
Create a Website: Hosting
Jeff Gula
In this course, we'll go over how to use GitHub pages to host your newly created website quickly and easily. We'll also go over a few other hosting options, to give you the info you need to make the best hosting decision for your future projects!
Learn More
Create a Website: Interactivity
Jeff Gula
In this workshop, we'll take the website you've been working on throughout the 'Create a Website' courses, and add dynamic features like sorting, hiding/showing displays, and image manipulation to turn your static pages into living documents.
Learn More
Create a Website: Layouts
Sandra Bermond
In this class we will fine tune some of the previous CSS rules we worked as well as learn brand new things to create more complex and overall better layouts that can be experienced comfortably from any device.
Learn More
Create a Website: Structure
Sandra Bermond
In this class, we will use HTML to construct the frame of a website. We will work on a very simple portfolio website. This class is primarily aimed at beginners. This course is the first of a series of four which will teach you how to make a basic responsive website and host it on the internet.
Learn More
Create a Website: Styling
Sandra Bermond
In this second class in our Create a Website series, we are introducing a new language: CSS. We will continue working on our simple portfolio site as we add simple styling rules to our text, including color, font sizes and families, and more.
Learn More
Create Your First Android App
Philabian Lindo
This class will explore the tools necessary for designing and developing native Android mobile applications. We will create a simple game and test it using Android Virtual Devices and physical hardware.
Learn More
CSS Deep Dive: the Power of Grid
Sandra Bermond
Come learn how you can place html elements wherever you like, however you like on a page regardless of their html order with CSS Grid. Change the vertical and horizontal alignments of any item, and forget about all math calculations!
Learn More
Darning Devils A Sewing Crafts Workshop
Greta Boers
Whether you’ve used a sewing machine before or not, you will enjoy this beginner’s project. You will learn how to cut fabric, baste and finish seams by hand, and use the sewing machine.
Learn More
Data Visualization with Python
Jeff Gula
Who doesn't like pretty graphs and tables? In this course, we'll go over how to take boring, text-only datasets and turn them into more easily understandable visualizations - all the while learning a little bit of Python along the way!
Learn More
Defending Forward in the Cyber Cool War
Margaret Hu
Come to this workshop to discuss the US position in the current Cyber Cool War. This talk will focus on the use of the term “defend forward” in the 2018 U.S Department of Defense Cyber Strategy Summary.
Learn More
DukeCreate Workshop: Adobe Photoshop 101
Cici Cheng
This workshop will help you to become proficient in Photoshop in a short amount of time!
Learn More
DukeCreate Workshop: Architectural Modeling
In this workshop you will get a holistic view of the Architecture industry, from project design to construction close-out and all the steps in between. Various immersive hands-on design activities will be incorporated to help facilitate this process and the participants’ understanding of this highly complex and often misunderstood discipline.
Learn More
DukeCreate Workshop: Future Fabrics
Future Fabrics: Learn how to make Bio-plastics (plastics made by renewable sources) and begin reducing your carbon footprint.
Learn More
DukeCreate Workshop: Zine Making w/ The Concerned Newsstand
In this 2 hour workshop we will look at examples of zines from the past to present, as well as make a zine altogether. Using collage & drawing materials, participants will make pages for a zine with a general theme of ‘concern’.
Learn More
Edit Your First Video with Premiere
Brandon Johnson
Get Familiar with Adobe Premiere and edit a video (yours or one provided) for the first time. Also, learn the basics of nonlinear editing with Adobe Premiere.
Learn More
Electrify Your Gear
Sandra Bermond, Bendte Fagge
Light up your gear using LEDs and a coin cell battery in a wearable circuit that can be attached to clothing, bags, or anything else that can be sewn. Each attendee will be able to bring their circuit home with them.
Learn More
Embrace Web Interactivity with JavaScript
Jeff Gula
Come to this workshop to experiment with a few of the neat things we can do with Javascript, and transform static code into interactive code.
Learn More
First Steps into Programming: The Bash Shell and Linux (1/2)
Danai Adkisson
Come and take the first steps in writing code by learning about the Bash Shell and the Linux Operating System. This is for people who are taking the first steps into programming and want to establish themselves with fundamentals via Bash and Linux.
Learn More
First Steps into Programming: The Bash Shell and Linux (2/2)
Danai Adkisson
A continuation of our first Linux and Bash course, we will be diving further into Linux. We will learn various methods of moving files, system and process management, and dip our toes into usage of a Linux Distribution with a graphical user interface
Learn More
First Steps into Programming: The Bash Shell and Linux (combined session)
Danai Adkisson
Come and take the first steps in writing code by learning about the Bash Shell and the Linux Operating System. This is for people who are taking the first steps into programming and want to establish themselves with fundamentals via Bash and Linux. Note: This is a combined session of both the Linux 01/02 roots courses.
Learn More
How Computers Think: Pseudocode
Danai Adkisson, Sandra Bermond
This class is all about learning how to write directions a computer can follow while having fun. Hopefully by the end of class we will also get to eat some tasty peanut butter and jelly sandwiches (or butter and jelly if you don't like peanut butter)
Learn More
How to Fake a Tweet, or How to Spot BS Online
Hannah Rozear
This workshop will introduce you to media manipulation by highlighting recent examples and will engage participants in a discussion about ways to counteract the flood of mis- and dis-information encountered online. Participants will also learn how easy (and fun) it is to fake a tweet.
Learn More
How to Program with JavaScript
Jeff Gula
Come to this class to learn how to take basic html and dynamically interact with it with the mouse and keyboard by using JavaScript! We’ll learn about events, the DOM, variables, functions and more!
Learn More
How to Program with Python
Jeff Gula
Welcome to the How to Program (with Python) class -- this is a class intended for people with little to no programming experience who want to learn introductory programming. Learn about variables, strings and more.
Learn More
How to Program with Ruby
Danai Adkisson
Ruby is a modern object oriented programming language used in many tech stacks in the industry. Created by Yukihiro Matsumoto in 1995; Ruby has evolved into a widely adopted for its readability and ease of use to those learning a programming language. This class will touch on several fundamental concepts of Ruby programming.
Learn More
Illustrator for Laser Cutting
Sandra Bermond
Come to this class to learn basic use of Illustrator in regards to laser cutting while making a fun and easy project you will be able to take home with you.
Learn More
Intro to Databases
Andy Ingham
Come to this course to learn about databases and their importance across a multitude of fields. This class will provide students with a basic introduction to what databases are and how to interact with them.
Learn More
Intro to Docker
Danai Adkisson
This course is designed to give you a foundation to begin working with the Docker containerization platform. By the end of the course, you should have a fundamental understanding on how to create Docker containers, and how they function.
Learn More
Machine Learning with Python
Jeff Gula
You may have heard a lot about machine learning in the news - where computers are 'trained' with large data sets in order to make intelligent predictions. In this course, we're going to go over an introduction to machine learning - what it is, how it is performed - as well as set you up with a development environment to start training with your own datasets!
Learn More
Machinic Virtuosity: AI and Creativity, from Art to Surgery
Mark Olson
Algorithms can now readily transform photographs into painterly images that mimic the style of well-known artists or produce original images that range from evocative and beautiful to merely strange and incoherent. To what extent can a computer be said to be creative? To begin to answer this question requires that we probe the nature of human creativity and its relation to rules, procedures, and repetition.
Learn More
Make Your First 3D Model
Chip Bobbert
Come learn core concepts of 3D design including sketching, constraints, parametric concepts, extrusion etc.. and make your first 3D model using OnShape.
Learn More
Make Your Own Soap
Chip Bobbert, Sandra Bermond
Join us in this fun arts and crafts class where we learn how to make sudsy bars of usefulness. We’ll also learn how modern tools like 3D printing and online chemistry calculators can improve on this age-old process.
Learn More
Make Your Second 3D Model
Mitch Greene
Make a 3dPrintable part using some of the basic tools in Fusion 360. This class will teach you how to create simple parametric models, import documents to Fusion 360 and use 3DprinterOS.com and Cura for basic 3dPrinting needs.
Learn More
Podcasting 101: So you want to be a Podcaster, A DukeCreate + Co-Lab Roots Workshop
Michael Betts II
Learn ways to create any type of podcast you might be interested in starting! Participants will discuss topics including gear, audio, and editing. Bring a charged laptop, a smartphone, and some headphones. Rubenstein Arts Center Computer Lab, 234
Learn More
Shiny: Data Tables with Triggered Plots
Tom Balmat
Continue to learn about Shiny with this course focusing on Data Tables. This course recommends knowledge of the R programming language.
Learn More
Shiny: Dive Into GGplot
Tom Balmat
This course will explore the usage of the ggplot 2 data visualization package within the Shiny framework. This course requires knowledge of the R programming language.
Learn More
Shiny: Intro to Shiny
Tom Balmat
The first course in the Shiny Series, this class covers the foundations of running the Shiny server and getting to know the basic layout of a Shiny project. This course requires knowledge of the R programming language.
Learn More
Shiny: Plotly
Tom Balmat
Learn how to utilize the Plotly's R graphing library to makes interactive, publication-quality graphs. This course requires knowledge of the R programming language.
Learn More
Shiny Server
Tom Balmat
Learn how to implement the Shiny Server to take your work in the shiny framework to a production environment. This course requires knowledge of the R programming language.
Learn More
Shiny: visNetwork
Tom Balmat
visNetwork is an R package for network visualization, using vis.js javascript library (http://visjs.org/).
Learn More
Style a Website with Bootstrap
Joel Crawford-Smith
Hate spending time styling things with CSS, but still need a good looking web interface? Bootstrap is just the ticket! Come to this class to learn how to make your website ready to roll in just a few minutes with Bootstrap!
Learn More
The Big Encryption Debate: Privacy & Security in the Digital Age
Justin Sherman
What is encryption, and why does it matter? How does it protect privacy and security? How do criminals and terrorists hide behind encryption? Should law enforcement have encryption backdoors?
Learn More
The Perfect Cup
Come make a tumbler or mug that represents you! Students will use a pattern to create a slab-built cup from start to finish. Stamps and other decorative elements will be provided to customize the outside surface of the cup.
Learn More
Using APIs with JavaScript
Jeff Gula
Application Programming Interfaces - they're how websites talk to each other, and in this class we'll teach you how to talk with some APIs yourself! We will be using Postman to introduce web requests, and go over JSON - the 'language' that many APIs use to communicate. We're also going to touch on how to take the data that you get back from these API requests, and use it to make your website more interactive!
Learn More
We all make mistakes: Debugging with Python
Jeff Gula
This intermediate-level Python course is a class intended for people with a small amount of programming experience. Here we will take a more in-depth look into the concepts we touched on in the previous 'How to Program with Python' course, as well as introducing a few new concepts, including debugging and file handling.
Learn More
Web Accessibility
Joel Crawford-Smith
The goal of a website is to be found and used, but to do that, it must be accessible. Depending on the type of website, accessibility rules may be mandatory, but even if you are only planning on creating a cat blog for you and your family, accessibility should be on your mind.
Learn More
Web Design: Concepts
Sandra Bermond
This course will dive into the concepts behind the design that go into the creation of websites so that we may understand what makes us like or dislike a site, and how to create an efficient and meaningful design.
Learn More
Web Design: Workshop
Sandra Bermond
Come to this class to practice what you have learned about the concepts of web design and create a wireframe before diving into Adobe Xd and prototyping your concept.
Learn More
Working with mySQL
Andy Ingham
Take this class to learn more about databases. This course will provide students with a basic introduction to the popular open source Database Management System (DBMS) named “MySQL”.
Learn More