Computer Programming + Processing

Discover the visual language of Processing to explore computational thinking, problem-solving, and the intersection of technology and art.

Learning to code is an exercise in problem-solving. In an increasingly technological world, understanding how to break complex problems into small, component parts empowers you to explore new modes of expression, critical thinking, and possibility. With Processing, a visual language created by the MIT Media Lab, learn to communicate an idea through coding. Using the same logic and syntax as Java, Processing builds foundational computer programming skills in an accessible, easy-to-use interface. Jump in by drawing complex shapes and figures, and easily incorporate user keyboard and click functionality to test complex ideas. Develop and plan a unique coding project that will build on foundational skills, improve your problem-solving process, and challenge you to create your own user-oriented experience or artistic expression. As you develop your own project, meet with professional programmers, digital artists, and software engineers to discuss their work applications and career paths. Tasks that may be cumbersome in other languages become simple and straightforward in Processing, making the visual programming language a great way to get a strong foundation in computer programming and algorithmic thinking.

This course uses an open source programming language, Processing. Students are required to bring “modern” laptop or notebook computer running Windows 7 or greater, OS X 10.7 or greater, or Linux that can connect to the internet wirelessly. No coding experience is needed.

Who Should Take This Course?

This is an ideal course for students interested in computer coding, digital visual arts, software design and engineering. Become familiar with Processing, practice code conversion, and create loops and functions as you build your programming skills. No previous computer programming or Processing experience is required for this course.

Advisors + Past Speakers

  • James C. Spohrer, Director of Cognitive OpenTech, IBM
  • Peter Kelly, Principal Software Engineer, Raytheon
  • Zara Perumal, Software Engineer, Google
  • Lawrence Xia, Software Engineer, Riot Games
  • Joshua Zheng, Program Director, Developer Relations, IBM Watson

Plan your summer


Course Highlights

  • Code Applications

    Processing uses the same syntax as Java, a common coding language that uses class-and-object-oriented programming. Work on the fundamentals of code development with the ability to convert your skills to new languages at the end of the course.

  • Problem-Solving through Code

    Hackathons began as a concentrated, timed setting for programmers to solve problems through coding. Now, the generative, team-based thinking-process is used in business, urban development, and social innovation. Visit hackerspaces, makerspaces, or software design companies and collaborate with programmers who implement unique, effective solutions in their communities using code and algorithmic thinking.

  • Digital Art

    Processing is language that lends itself to visual applications and digital art. Explore the intersections of technology and art, and how technology is changing the ways artists generate work with an audience impact, including visits to local, cutting edge, digital artworks.

  • Concept Development

    Generate an original concept or idea that allows you to practice and demonstrate your skills. Consider what new concept you would like to develop or express through code.

As someone who wants to work in biotechnology, but who's primary study is in science, any amount of computer science which allows me to better understand or comprehend ideas will undoubtedly help me in my future endeavors. I think that this class has significantly instilled in me an interest in coding and computer studies, and without a doubt this course in processing will push me into other types of code and into more related concepts.

Advisors + Past Speakers

James C. Spohrer

Director of Cognitive OpenTech, IBM

Dr. James Spohrer is Director of OpenTech, open source artificial intelligence at IBM. Previously, he was Director of IBM Global University Programs and IBM’s Cognitive Systems Institute Group. Jim co-founded IBM’s first Service Research group, ISSIP Service Science community, and was founding CTO of IBM’s Venture Capital Relations Group in Silicon Valley. He was awarded Apple Computers’ Distinguished Engineer Scientist and Technology title for his work on next-generation learning platform and has worked on speech recognition and machine learning.

Peter Kelly

Principal Software Engineer, Raytheon

Peter Kelly is a Principal Software Engineer and Certified Ethical Hacker at Raytheon, where he has worked for 12 years. He has broad technical engineering expertise, including enterprise information sharing, messaging, client-server application architectures, and security. As a certified ethical hacker, Kelly knows how to look for vulnerabilities in IT and engineering systems. Using the same skills as a hacker, Kelly can assess a company’s security risk.

Zara Perumal

Software Engineer, Google

Zara Perumal is a Software Engineer at Google who received a Bachelor’s degree in computer science and a Master’s degree in Artificial Intelligence from MIT. Perumal is also on the staff at The Harvard Kennedy School of Government’s project, Defending Digital Democracy, which “aims to develop strategies, tools, and technologies to protect democratic processes and systems from cyber and information attacks.”

Lawrence Xia

Software Engineer, Riot Games

Lawrence Xia is a Software Engineer at Riot Games in Los Angeles, a company whose goal is to transform video games and how they’re played. Riot Games released the hugely popular League of Legends in 2009, which went on to become the most popular PC-based game in the world.

Joshua Zheng

Program Director, Developer Relations, IBM Watson

Josh is the Program Director in Developer Relations for IBM Watson. He leads the developer advocacy team for IBM Watson. Before joining IBM he was a Senior Software Engineer working primarily in Python and JavaScript. Josh’s educational background includes degrees in biomedical engineering and robotics.