Roots-logo

The Front Door to the Innovation Co-Lab.

We’re building a training program into the Innovation Co-Lab, where 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'll be offering workshops in topics like HTML, CSS, Javascript, Python, Research Computing, 3d Modeling and Fabrication, and many more. All classes are free - just enroll below.

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.

Upcoming Classes

Foundations in HTML, CSS, and Javascript: Flipped Roots Class

Dates:
  • Tue, Mar 28, 5:00 - 6:00 pm
  • Tue, Apr 4, 5:00 - 6:00 pm
  • Tue, Apr 11, 5:00 - 6:00 pm
  • Tue, Apr 18, 5:00 - 6:00 pm
Location:

TEC - Classroom

Facilitator:
  • Sally Hall

Note: This is a multi-day course. By registering, you're committing to attending all session dates above.

Course Description:

We're flipping a Roots class. This course is a four week flipped class; each week, you'll complete the video lectures on your own time. Then on each Tuesday evening during the 4-week class, we'll have an open office hours meetup, with teaching assistants available to help with assignments, ask questions, or anything else. This is the most complete course for anyone getting started in web development, and it's open to all Duke students, faculty and staff.

Also, because this class is an official Coursera course, Duke-affliated participants enrolled in the Co-Lab's special cohort for this class will be able to earn the Coursera certificate for this course for free.

About the course:
Learn foundational programming concepts (e.g., functions, for loops, conditional statements) and how to solve problems like a programmer. In addition, learn basic web development as you build web pages using HTML, CSS, JavaScript. By the end of the course, will create a web page where others can upload their images and apply image filters that you create.

After completing this course, you will be able to:
1. Think critically about how to solve a problem using programming;
2. Write JavaScript programs using functions, for loops, and conditional statements;
3. Use HTML to construct a web page with paragraphs, divs, images, links, and lists;
4. Add styles to a web page with CSS IDs and classes; and
5. Make a web page interactive with JavaScript commands like alert, onClick, onChange, adding input features like an image canvas, button, and slider.

Who is this class for: This course is for anyone interested in taking their first step toward a career in computer programming. Learners with no prior experience are encouraged to take this course! In addition, this is the first course of the Java Programming and Software Engineering Fundamentals Specialization, providing learners the programming fundamentals they will need to successfully complete the course series and the web development portion of the capstone project .

In order to access the course materials, you'll have to sign up for the course here.

Enrollment:

102 / 200 Enrolled

Register for this class
Webdev10

WebDev - Introduction to JavaScript

Date:
  • Wed, Mar 29, 5:00 - 7:00 pm
Location:

TEC - Classroom

Facilitator:
  • Sally Hall
Course Description:

This class will teach you how to add interactivity to a basic HTML/CSS website. Bring your laptop and please download and install https://www.sublimetext.com/2 and https://www.google.com/chrome/ before class, if possible. If you have an existing website you'd like to add JavaScript to, have that code available.

This builds on the portfolio website built in Introduction to HTML and CSS, but the courses will be independent enough to attend just one or the other. This course assumes basic knowledge of HTML and CSS if the first course was not taken.

This class is part of our WebDev Basics Track

Our WebDev Basics Track is designed for beginners with no experience in web development. These courses will provide all of the skills necessary to build and maintain an interactive website from scratch.

Other courses in this track
Enrollment:

Course is full!

Get on the waitlist for this course
React1

Building Reactive Web Apps

Date:
  • Thu, Mar 30, 5:00 - 7:00 pm
Location:

TEC - Classroom

Facilitator:
  • Xian Wang
Course Description:

Do you want to know how your news feed at facebook.com is constructed? Pop-up chat windows, real-time status and photos from your friends, and the number badge hanging around the notification icon are problems very hard to tackle in terms of web development. With React, Facebook contributes a new way of thinking web development by making application state manageable. This course focuses on how to think in React and how to use React to solve complicated tasks. Programming experience in JavaScript (preferably ES6) is very helpful.

This class is part of our Intermediate Track

Our Intermediate Track includes extensions and continuations of topics from the Basics Track. It assumes that you some basic programming experience or have taken the Basics Track.

Other courses in this track
Enrollment:

Course is full!

Get on the waitlist for this course
Hacking1

Ethical Hacking Workshop

Date:
  • Fri, Mar 31, 2:00 - 6:00 pm
Location:

TEC - Classroom

Facilitator:
  • Alexander Merck
Course Description:

Are you curious about hacking and professional penetration testing? This workshop will cover the techniques and methodologies you need to begin exploiting common security vulnerabilities. Understanding techniques used by hackers can help you test and improve the security of your own systems and code. Topics covered in this course include active and passive recon, vulnerability scanning, and web and system exploitation. This course will include several demos, hands-on labs, and a live hacking challenge. Some familiarity with basic network concepts and command-line interfaces is recommended. A laptop is required for this course

Enrollment:

Course is full!

Get on the waitlist for this course
Webdev11

Programming Fundamentals

Date:
  • Mon, Apr 3, 5:00 - 7:00 pm
Location:

TEC - Classroom

Facilitator:
  • Sally Hall
Course Description:

This class is part of our WebDev Basics Track

Our WebDev Basics Track is designed for beginners with no experience in web development. These courses will provide all of the skills necessary to build and maintain an interactive website from scratch.

Other courses in this track
Enrollment:

Course is full!

Get on the waitlist for this course

Intro to Angular 2

Date:
  • Tue, Apr 4, 3:00 - 5:00 pm
Location:

TEC - Classroom

Facilitator:
  • John McCreery
Course Description:

Angular is an extremely popular JavaScript framework built by Google. It is used for building rich, responsive and interactive applications. The second version of this framework offers a faster, more standardized experience, and complies with new JavaScript best-practices. In this session we will cover the basics of angular 2, from simple components (think form inputs) to data management. Leveraging html media tags, we will build a music player, and music library manager.

Some JavaScript and html experience is expected.

This class is part of our Advanced Track

Our Advanced Track probes deeper into technology topics, specific languages, and frameworks. These topics assume that you have experience with programming and in some cases, in specific languages.

Other courses in this track
Enrollment:

13 / 20 Enrolled

Register for this class

MPS Sessions: Intro to Davinci Resolve

Date:
  • Tue, Apr 4, 7:30 - 8:30 pm
Location:

MPS West

Facilitator:
  • Delaney King
Course Description:

DaVinci Resolve is a non-linear video editing software for color correcting video. The class will go over the DaVinci Resolve interface and then go through simple color grading on a sample video clip. Students can access the software on the MPS computers and will be given access to sample video files.

Enrollment:

2 / 12 Enrolled

Register for this class

MySQL

Date:
  • Wed, Apr 5, 3:00 - 5:00 pm
Location:

TEC - Classroom

Facilitator:
  • Andrew Ingham
Course Description:

This course will provide students with a basic introduction to the popular opensource MySQL database (Community Edition). Attendees will have access to a Linux computational server (that will persist after leaving the class) to practice various tasks and perform simple labs. The class will cover a variety of tasks including setting up users, creating databases, developing schema, adding/altering tables, writing queries, and evaluating basic security and performance. The course includes lectures, informal Q & A, and hands-on activities/labs. Students are required to bring their own laptop computer; access to a Linux system will be provided for the course. For participants using a Windows laptops, please make sure that you have an SSH client installed (A free client can be downloaded and installed from: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)

This class is part of our Intermediate Track

Our Intermediate Track includes extensions and continuations of topics from the Basics Track. It assumes that you some basic programming experience or have taken the Basics Track.

Other courses in this track
Enrollment:

Course is full!

Get on the waitlist for this course

Conductive Thread

Date:
  • Fri, Apr 7, 1:00 - 3:00 pm
Location:

TEC - Classroom

Facilitators:
  • Courtney Lockemer
  • Sally Hall
Course Description:

This course will guide attendees through creating a circuit sewn into fabric using conductive thread. We'll light up an LED using 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. No electronics experience necessary, but familiarity with a needle and thread is helpful.

Enrollment:

6 / 20 Enrolled

Register for this class
Iot2

Introduction to Connected Hardware

Date:
  • Mon, Apr 10, 2:00 - 4:00 pm
Location:

TEC - Classroom

Facilitator:
  • Sally Hall
Course Description:

This crash course in hardware hacking will teach you the basics of connected hardware. Learn electronic fundamentals during this hands-on course and develop a wifi-enabled project that can blast the web with data or be controlled remotely. This course will build on top of Particle's Photon, an Arduino-like development kit that abstracts much of the complexity around connected devices. Open to beginners any level of coding or electronics experience.

Each member of the class will receive a Photon for use during the class that they'll be able to take home to continue development.

Enrollment:

Course is full!

Get on the waitlist for this course
Git6

Intro to Git

Date:
  • Mon, Apr 10, 5:00 - 7:00 pm
Location:

TEC - Classroom

Facilitator:
  • Sally Hall
Course Description:

Have you ever 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 to your program four days ago that you now realize breaks your code? Whether you’re working with others, or are coding on your own, using a version control system can make development a much more sane and enjoyable process, while facilitating team development and code sharing. Armed some essential Git commands that you’ll learn in this course, you’ll worry less and code more. We’ll focus on basic usage of OIT’s GitLab repository management system, but the techniques will be applicable to GitHub or other git-based version control systems. You don’t need to be an expert, but to get the most out of this course you should have some small level of familiarity with using a terminal to enter command-line instructions on Linux, Mac or Windows.

This class is part of our WebDev Basics Track

Our WebDev Basics Track is designed for beginners with no experience in web development. These courses will provide all of the skills necessary to build and maintain an interactive website from scratch.

Other courses in this track
Enrollment:

Course is full!

Get on the waitlist for this course
Roots-studiosessions

Roots Studio Sessions

We also offer weekly classes in a few topics that we know are in high demand in the studio. These classes do not require registration, just show up! All Studio Sessions are held in the Co-Lab Studio in the Technology Engagement Center.

Our Studio Sessions will return in the spring!

3D Printer OS

  • Monday, 3:30pm
  • Wednesday, 3:30pm

3D Printer OS is our cloud printing service. In order to use our 3D printers, you'll have to get up to speed on this simple software. In this Studio Session, we'll go through all the required steps to make a 3d print from our fleet of printers. After the class, you'll also be able to send jobs right from your own laptop (anywhere on campus) and come pick up your print when it's done.

3D Modeling: Fusion360

  • Monday, 5pm

Fusion360 is a basic 3d modeling software that can be used for building things for 3d printing. In this short session, we'll go over some of the basic tools in order to get started building something. By the end, you'll have a simple object you can 3d print.

Laser Cutting & Etching

  • Wednesday, 5pm

In the studio we have two laser cutters that are capable of cutting and etching a variety of surfaces including wood, paper, leather, and more. It's a fantastic tool for anything from rapid prototyping to artistic endeavors.

Introduction to CNC

  • Tuesday, 3:30pm

For anyone interested in an introduction to CNC milling. Learn about our three CNC machines and how they can be used for your projects. Fusion 360 Roots course or similar experience recommended for Tormach Mill, no experience needed for Carvey or Shopbot CNC routers.



Quick Course List

Archived Classes

  • Introduction to Linux - Mon, Aug 31, 2015
  • Introduction to Front-End Web Development: HTML, CSS and a bit of Javascript - Mon, Sep 7, 2015
  • Good Karma through Web Accessibility - Thu, Sep 17, 2015
  • TypeScript - Mon, Sep 21, 2015
  • Digital Modeling and Fabrication: 3d Printers, Lasers, Shopbots! - Mon, Sep 28, 2015
  • Increase Coder Sanity by using Git for Version Control - Mon, Oct 5, 2015
  • Building iOS Apps with Swift - Sat, Oct 17, 2015
  • Using Online Data with Python - Mon, Oct 19, 2015
  • Introduction to Front-End Web Development: HTML, CSS and a bit of Javascript - Sat, Oct 24, 2015
  • Building iOS Apps with Swift - Tue, Oct 27, 2015
  • Introduction to Connected Hardware - Wed, Nov 4, 2015
  • Introduction to Connected Hardware - Thu, Nov 5, 2015
  • Webserver Administration for Webapp Developers - Mon, Nov 9, 2015
  • What You Don't Know Can Hurt You: UX Essentials for The Web - Mon, Nov 16, 2015
  • Introduction to Linux - Tue, Jan 26, 2016
  • Introduction to Front-End Dev: HTML & CSS - Wed, Jan 27, 2016
  • A Little More Advanced Linux - Mon, Feb 1, 2016
  • Ruby on Rails Workshop - Mon, Feb 1, 2016
  • Introduction to Front-End Dev: Javascript - Wed, Feb 3, 2016
  • Rapid Prototyping with Lasers and CNC - Thu, Feb 11, 2016
  • iOS 1: Intro to Swift and iOS Development - Thu, Feb 11, 2016
  • iOS 2: Data Processing in Swift - Thu, Feb 18, 2016
  • 3D Printing and Sketchup - Mon, Feb 22, 2016
  • Rapid Prototyping with Lasers and CNC - Wed, Feb 24, 2016
  • Using Git for Version Control - Wed, Feb 24, 2016
  • Python Workshop - Mon, Feb 29, 2016
  • Introduction to Connected Hardware with Photon - Mon, Mar 28, 2016
  • Introduction to Connected Hardware with Photon - Wed, Mar 30, 2016
  • iOS 1: Intro to Swift and iOS Development - Thu, Mar 31, 2016
  • iOS 2: Data Processing in Swift - Mon, Apr 4, 2016
  • Using Git for Version Control - Thu, Apr 7, 2016
  • 3D Printing and Sketchup - Mon, Apr 11, 2016
  • HFOSS: Code for Good - Wed, Sep 7, 2016
  • React - Mon, Sep 12, 2016
  • Intro to Git - Wed, Sep 14, 2016
  • Introduction to Linux - Tue, Sep 20, 2016
  • Open Data & Civic Hacking - Wed, Sep 21, 2016
  • A Little More Advanced Linux - Tue, Sep 27, 2016
  • Intro to APIs - Mon, Oct 3, 2016
  • Foundations in HTML, CSS, and Javascript: Flipped Roots Class - Tue, Oct 4, 2016
  • SPLUNK - Thu, Oct 13, 2016
  • Introduction to Ethical Hacking - Mon, Oct 17, 2016
  • MySQL - Mon, Oct 24, 2016
  • Intro to Angular 2 - Wed, Nov 2, 2016
  • Fusion 360 - Tue, Nov 8, 2016
  • Make Art with Lasers: Adobe Illustrator and Laser Cutting - Wed, Nov 9, 2016
  • Duke Compute Cluster workshop - Thu, Nov 10, 2016
  • Introduction to iOS - Thu, Nov 10, 2016
  • WebDev - Introduction to HTML and CSS - Mon, Nov 14, 2016
  • WebDev - Introduction to JavaScript - Mon, Nov 21, 2016
  • WebDev - Introduction to HTML and CSS - Wed, Jan 25, 2017
  • Get a Job in Tech - Fri, Jan 27, 2017
  • WebDev - Introduction to JavaScript - Wed, Feb 1, 2017
  • The Art of the Pitch Video - Fri, Feb 3, 2017
  • Programming Fundamentals - Mon, Feb 6, 2017
  • Intro to Git - Mon, Feb 13, 2017
  • Introduction to Linux - Tue, Feb 14, 2017
  • Using the Co-Lab APIs - Fri, Feb 17, 2017
  • Git to Deploy - Thu, Feb 23, 2017
  • Advanced CSS - Fri, Feb 24, 2017
  • Intro to Swift and iOS Development - Thu, Mar 2, 2017
  • Intro to APIs - Tue, Mar 21, 2017
  • WebDev - Introduction to HTML and CSS - Fri, Mar 24, 2017
  • A Little More Advanced Linux - Mon, Mar 27, 2017
  • MPS Sessions: Intro to Maya - Tue, Mar 28, 2017

Join the Innovation Co-Lab to find out more about what we're up to, what events we have coming up, and how to access all of our technical resources.

For best results, we recommend your duke.edu email address