We may earn an affiliate commission when you visit our partners.
Course image
Dr Matthew Yee-King, Dr Mick Grierson, and Prof Marco Gillies

This course is for anyone who would like to apply their technical skills to creative work ranging from video games to art installations to interactive music, and also for artists who would like to use programming in their artistic practice.

Read more

This course is for anyone who would like to apply their technical skills to creative work ranging from video games to art installations to interactive music, and also for artists who would like to use programming in their artistic practice.

This course will teach you how to develop and apply programming skills to creative work. This is an important skill within the development of creative mobile applications, digital music and video games. It will teach the technical skills needed to write software that make use of images, audio and graphics, and will concentrate on the application of these skills to creative projects. Additional resources will be provided for students with no programming background.

At the end of this course, you will be able to:

* Write creative, audiovisual programs in the Processing environment that run on desktop and mobile

* Programatically manipulate sound in creative ways

* Display images and image sequences

* Generate interactive, algorithmic graphics

* Work with a 2D physics engine to create a basic game

Enroll now

What's inside

Syllabus

Sonic Painter
This week we are getting up and running with the Processing IDE. We will show you the basics of writing Processing sketches then move onto some graphics and audio concepts. Mick will then introduce our first audiovisual example - SonicPainter, which allows users to interactively paint with synchronised graphics and sound.
Read more
DJTube
This week we are looking at using images and video, and also finding out how to control sound more fully in an interactive way. We're going to be showing you a really basic interactive VJ/DJ app called 'DJTube', which is a very simple example of how to create and load video, images and animations on desktops / mobile devices, and also use them as a basic user interface. 
Audio Visualiser
This week is all about creating an Audiovisualiser. This is a really popular and interesting topic that has lots of applications, from music players, to game engines, to more complex things such as DSP. We'll be learning about algorithmic graphics, audio analysis, and also about using the accelerometer features of your phone. Remember that many desktops don't have accelerometers, no matter how much you shake them!
AngryDroids
This week we will be creating a physics based game using a Physics engine based on Box2D. Physics engines are a fantastic way of creating dynamic gameplay that models the real world. Box2D is one of the most popular because it is optimised to be fast for 2D games that don't need the heavy processing of a 3D engine. It is used in many important 2D games, most famously Angry Birds. We will be using boxwrap2D which is a Java port of the original C++ version of Box2D, that is designed to work with Processing. Since boxwrap2D is java only we have created our own port to JavaScript, which interfaces to the javascript version of Box2D, but provides an almost identical interface to the Processing version.
Music Machine
Welcome to the final week of Creative Programming for Digital Media and Mobile apps. This week, we are going to move back to one of our favorite areas of app development - music apps. We have a very special guest this week - Martin Roth from RJDJ. Martin has lots of experience working on consumer mobile music applications, including the amazing Inception app, and The Dark Knight Rises. He shares his views on the expanding space in mobile music applications, and offers us his opinion on the WebAudio API. Meanwhile, Matt will be showing you how to create a very basic drum sequencer, and Marco will take you through the basics of sliders and multisliders, which are particularly useful for controlling parameters in music apps. Mick will then be taking you through some synthesiser examples in WebAudio, and talk you through the Music Machine example, which is a great place to kick off making a professional interactive music app for mobile.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Examines hardware features like the accelerometer on students' phones
Teaches the basics of how to write Processing sketches
Explores sonic painting, which uses synchronized graphics and sound
Walks students through building a physics-based game using Box2D
Teaches the basics of working with images and video
Explores the popular and interesting topic of audiovisualizers, which have many applications
Covers algorithmic graphics, audio analysis, and using the accelerometer features of students' phones
Develops skills in writing creative, audiovisual programs in the Processing environment that run on desktop and mobile
Teaches how to programmatically manipulate sound in creative ways

Save this course

Save Creative Programming for Digital Media & Mobile Apps to your list so you can find it easily later:
Save

Reviews summary

Creative coding with processing

Learners say Creative Programming for Digital Media & Mobile Apps is a great creative coding course for those with varying backgrounds in programming, art, and music. It uses the popular Processing framework for creative coding, and you'll get to work on your own app ideas! While some students say the course is not for beginners, others who had little or no programming experience found it suitable for them, but recommend doing pre-course work and being familiar with Processing and Android tools before diving in. The course includes engaging assignments and supportive sites and tutorials to keep you going.
The course is described as beginner friendly by some, but not by others.
"I think you could do this with little programming experience."
"I had some previous programming knowledge in Python (one coursera course), so it was doable to get adopted to the Syntax."
Students recommend doing pre-course work and getting familiar with Processing and Android tools.
"I would really recommend that anyone who is interested in this course make sure they have Processing and all the necessary Android tools installed BEFORE you begin."
Learners say the course’s content is engaging and fun.
"I am now glad that I invested all the extra hours."
"This course was excellent"
"Loved this course, really inspiring, great fun, very creative."
Some learners question the clarity of the course’s expectations.
"The instructions were often unclear."
"this course is definitely not a beginners course as per mentioned"
"NOTE : do not misunderstand by its title that you will be able to create your own mobile applications with this course"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Creative Programming for Digital Media & Mobile Apps with these activities:
Review basic programming concepts
Strengthen your foundation in programming to better understand the course material.
Browse courses on Programming Fundamentals
Show steps
  • Review your previous programming notes or textbooks
  • Take online quizzes or practice exercises to test your understanding
  • Consider working on a small programming project to apply your refreshed skills
Organize your notes, assignments, and quizzes
Stay organized and improve your retention by compiling and reviewing your course materials.
Show steps
  • Create a designated folder or notebook for your course materials
  • Regularly add your notes, assignments, and quizzes to the folder or notebook
  • Take time to review and summarize your materials periodically
Complete tutorials on Processing.org
Get hands-on experience with Processing, the programming language used in the course.
Browse courses on Processing
Show steps
  • Go to Processing.org and sign up for an account
  • Follow the beginner tutorials on the website
  • Experiment with the code and try to create your own sketches
Five other activities
Expand to see all activities and additional details
Show all eight activities
Read 'The Art of Computer Programming'
Gain a deep understanding of algorithms and data structures through a classic computer science text.
Show steps
  • Read and understand the first few chapters
  • Work through the exercises at the end of each chapter
  • Attend office hours or online forums for additional support
Join a study group or online forum for Processing
Connect with other students to discuss the course material, share ideas, and get help with your projects.
Browse courses on Processing
Show steps
  • Find a study group or online forum that aligns with your interests
  • Attend meetings or participate in discussions regularly
  • Ask questions, share your knowledge, and collaborate with others
Coding challenges on Leetcode
Practice coding problems to improve problem-solving skills and programming fundamentals.
Browse courses on Algorithms
Show steps
  • Sign up for a Leetcode account
  • Solve easy-level problems to get started
  • Gradually move on to medium- and hard-level problems
Create a Processing sketch that generates interactive visuals
Apply your knowledge to build a project that demonstrates your understanding of the course concepts.
Browse courses on Processing
Show steps
  • Plan your project and decide on the visuals you want to generate
  • Write the code to create the visuals and make them interactive
  • Test and refine your project until it works as intended
Write a blog post or article about a topic related to the course
Share your knowledge and understanding by creating content that deepens your comprehension of the course material.
Browse courses on Processing
Show steps
  • Choose a topic that you are passionate about and that aligns with the course content
  • Research your topic and gather information from credible sources
  • Write your blog post or article, ensuring it is well-organized, informative, and engaging

Career center

Learners who complete Creative Programming for Digital Media & Mobile Apps will develop knowledge and skills that may be useful to these careers:
Mobile Application Developer
Mobile Application Developers create software for mobile devices, such as smartphones and tablets. This course can help you develop the skills needed to create interactive and engaging mobile applications that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Web Developer
Web Developers create and maintain websites. This course can help you develop the skills needed to create interactive and engaging websites that make use of images, audio, and graphics. You will also learn how to use the WebAudio API to create synthesizers and other musical applications.
Game Developer
Game Developers create video games. This course can help you develop the skills needed to create interactive and engaging video games that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Interactive Media Designer
Interactive Media Designers create interactive media experiences, such as websites, games, and mobile applications. This course can help you develop the skills needed to create interactive and engaging experiences that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Digital Media Artist
Digital Media Artists use digital technologies to create art. This course can help you develop the skills needed to create interactive and engaging digital art that makes use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Multimedia Artist
Multimedia Artists use a variety of media, including images, audio, and graphics, to create art. This course can help you develop the skills needed to create interactive and engaging multimedia art that makes use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Video Editor
Video Editors create and edit videos. This course can help you develop the skills needed to create interactive and engaging videos that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Audio Engineer
Audio Engineers create and edit audio. This course can help you develop the skills needed to create interactive and engaging audio experiences that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Graphic designer
Graphic Designers create visual concepts, using computer software or by hand, to communicate ideas that inspire, inform, and captivate consumers. This course can help you develop the skills needed to create interactive and engaging graphics that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Software Engineer
Software Engineers design, develop, test, and maintain software systems. This course can help you develop the skills needed to create interactive and engaging software that makes use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Computer Scientist
Computer Scientists conduct research and develop applications in areas involving computers and computation. This course can help you develop the skills needed to create interactive and engaging computer applications that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Data Scientist
Data Scientists use scientific methods, processes, algorithms, and systems to extract knowledge and insights from data in various forms, both structured and unstructured. This course may help you develop the skills needed to create interactive and engaging data visualizations that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Machine Learning Engineer
Machine Learning Engineers design, develop, and maintain machine learning systems. This course may help you develop the skills needed to create interactive and engaging machine learning applications that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Artificial Intelligence Engineer
Artificial Intelligence Engineers design, develop, and maintain artificial intelligence systems. This course may help you develop the skills needed to create interactive and engaging artificial intelligence applications that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.
Robotics Engineer
Robotics Engineers design, develop, and maintain robots. This course may help you develop the skills needed to create interactive and engaging robotics applications that make use of images, audio, and graphics. You will also learn how to use a physics engine to create basic games.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Creative Programming for Digital Media & Mobile Apps.
Provides a comprehensive introduction to the Processing programming language, which is specifically designed for artists and designers to create interactive and generative graphics.
Offers a practical guide to creating generative art using Processing, covering topics such as data visualization, simulations, and algorithmic art.
This comprehensive textbook provides a thorough foundation in computer graphics principles and algorithms, including topics such as 2D and 3D graphics, image processing, and animation, which are relevant to the course's emphasis on graphics and visuals.
Provides a practical introduction to physics concepts and their application in game development, covering topics such as kinematics, dynamics, and collision detection, which are relevant to the course's inclusion of a physics engine for game creation.
Provides a comprehensive introduction to music theory, covering topics such as pitch, rhythm, harmony, and form, which are essential for understanding and creating music in digital applications.
Provides a comprehensive overview of the Web Audio API, which JavaScript API for creating and manipulating audio content in web browsers.
Explores the use of data and analytics in game design, providing insights into how data can be used to improve game mechanics, balance, and player engagement.
Provides a comprehensive overview of interaction design principles and methods, covering topics such as user experience, usability, and interaction patterns.
Provides a deep dive into the architecture and implementation of game engines, which can provide a valuable reference for students interested in understanding the underlying technology behind game development.
Explores the use of artificial intelligence techniques in game development, covering topics such as pathfinding, decision-making, and learning, which can provide insights into the design of intelligent game mechanics.
Provides a comprehensive introduction to the WebGL API, which allows for the creation of interactive 3D graphics in web browsers.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Creative Programming for Digital Media & Mobile Apps.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser