{"id":99,"date":"2016-07-29T15:42:56","date_gmt":"2016-07-29T15:42:56","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/?page_id=99"},"modified":"2018-09-11T23:48:02","modified_gmt":"2018-09-12T03:48:02","slug":"programming-p5-js","status":"publish","type":"page","link":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/programming-p5-js\/","title":{"rendered":"Programming p5.js"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><h2>Online Reference Materials<\/h2>\n<p><a href=\"http:\/\/p5js.org\/\" target=\"_blank\" rel=\"noopener\">p5.js<\/a> is a JavaScript library which makes coding accessible for artists, designers, educators, and beginners. It is a member of the <a href=\"http:\/\/processing.org\/\">Processing<\/a> family of free, open-source arts-engineering toolkits. Here are some quick links you may find helpful:<\/p>\n<ul><li><strong><a href=\"http:\/\/p5js.org\/reference\/\" target=\"_blank\" rel=\"noopener\">p5.js Reference<\/a><\/strong><\/li>\n<li><strong><a href=\"http:\/\/p5js.org\/examples\/\" target=\"_blank\" rel=\"noopener\">p5.js Examples<\/a><\/strong><\/li>\n<li>W3 Schools<strong> <a href=\"http:\/\/www.w3schools.com\/jsref\/\" target=\"_blank\" rel=\"noopener\">JavaScript Reference<\/a><br><\/strong><\/li>\n<li>DevDocs.io <strong><a href=\"http:\/\/devdocs.io\/javascript\/\" target=\"_blank\" rel=\"noopener\">JavaScript Reference<\/a><\/strong><\/li>\n<\/ul><hr><h2>Textbooks and Examples Shown in Class<\/h2>\n<p>This semester we will be dipping into the following two textbooks:<\/p>\n<ul><li><strong>Lauren McCarthy, <em><a href=\"http:\/\/www.amazon.com\/Make-Interactive-Graphics-JavaScript-Processing\/dp\/1457186772\/\" target=\"_blank\" rel=\"noopener\">Getting Started with p5.js<\/a><\/em><\/strong> (O&rsquo;Reilly)<\/li>\n<li><strong>Dan Shiffman, <em><a href=\"http:\/\/www.amazon.com\/gp\/product\/0123944430\/\" target=\"_blank\" rel=\"noopener\">Learning Processing<\/a><\/em> <\/strong>(Elsevier)<\/li>\n<\/ul><p>These books provide example programs written for p5.js on Github. We will encounter and study many of these examples in class:<\/p>\n<ul><li>Code examples for <em><a href=\"https:\/\/github.com\/lmccart\/gswp5.js-code\" target=\"_blank\" rel=\"noopener\">Getting Started With p5.js<\/a><\/em><\/li>\n<li>Code examples for <em><a href=\"https:\/\/github.com\/shiffman\/LearningProcessing-p5.js\" target=\"_blank\" rel=\"noopener\">Learning Processing<\/a> (p5.js version)<\/em><\/li>\n<\/ul><p>Regarding the <em>Learning Processing<\/em> book, please note the following:<\/p>\n<ul><li>Dan Shiffman has made <a href=\"http:\/\/learningprocessing.com\/\" target=\"_blank\" rel=\"noopener\">an excellent website providing very helpful videos<\/a>.<\/li>\n<li>The (paper) book uses examples written in Java, but Shiffman&rsquo;s Github provides versions of those examples in both Java and JavaScript. <em>There are minor differences, but the underlying concepts are the same. <\/em><\/li>\n<\/ul><hr><h2>External Tutorials<\/h2>\n<p>If you&rsquo;re feeling lost or falling behind, you may find another online tutorial helpful. It can sometimes help to hear the same material explained by someone else. Check out:<\/p>\n<ul><li><a href=\"https:\/\/www.khanacademy.org\/computing\/computer-programming\/programming\" target=\"_blank\" rel=\"noopener\">Khan Academy graphical introduction to JavaScript<\/a><\/li>\n<li><a href=\"http:\/\/javascript-roadtrip.codeschool.com\/\" target=\"_blank\" rel=\"noopener\">CodeSchool JavaScript Road Trip<\/a><\/li>\n<li><a href=\"http:\/\/www.w3schools.com\/js\/\" target=\"_blank\" rel=\"noopener\">W3Schools JavaScript Tutorials<\/a><\/li>\n<li><a href=\"http:\/\/www.lynda.com\/JavaScript-training-tutorials\/244-0.html\" target=\"_blank\" rel=\"noopener\">Lynda.com JavaScript Tutorials<\/a> <em>(Note: <a href=\"https:\/\/www.cmu.edu\/lynda\/\" target=\"_blank\" rel=\"noopener\">free to CMU students<\/a>!)<\/em><\/li>\n<li><a href=\"https:\/\/www.guru99.com\/interactive-javascript-tutorials.html\">Guru99.com<\/a><\/li>\n<\/ul><hr><h2>Similar Curricula<\/h2>\n<p>p5.js is used around the world for introductory education in creative coding and media arts. The people who develop p5.js are themselves educators, and in the open-source spirit of the project, make their curricula available online. You may even recognize some of their exercises in our class. Curricula by external educators include:<\/p>\n<ul><li>Lauren McCarthy&rsquo;s <em><a href=\"https:\/\/github.com\/lmccart\/itp-creative-js\" target=\"_blank\" rel=\"noopener\">Creative JavaScript<\/a><\/em> (NYU)<\/li>\n<li>Dan Shiffman&rsquo;s <em><a href=\"https:\/\/github.com\/shiffman\/The-Nature-of-Code-JTerm-2015\" target=\"_blank\" rel=\"noopener\">The Nature of Code<\/a><\/em> (NYU)<\/li>\n<li>Dan Shiffman&rsquo;s <em><a href=\"https:\/\/github.com\/ITPNYU\/ICM-2014\" target=\"_blank\" rel=\"noopener\">Intro to Computational Media<\/a><\/em> (NYU)<\/li>\n<li>John Kuiphoff&rsquo;s <em><a href=\"http:\/\/coursescript.com\/notes\/interactivecomputing\/\" target=\"_blank\" rel=\"noopener\">Introduction to Interactive Computing<\/a><\/em> (College of NJ)<\/li>\n<li>Paolo Pedercini&rsquo;s <em><a href=\"http:\/\/cmuems.com\/2015b\/\" target=\"_blank\" rel=\"noopener\">EMS2: 60-210<\/a><\/em> (CMU)<\/li>\n<\/ul><p>Here are some other reference curricula for introductory programming education (Note: <em>non-JavaScript<\/em>):<\/p>\n<ul><li>Dilsun Kaynar &amp; Penny Anderson&rsquo;s <em><a href=\"http:\/\/www.cs.cmu.edu\/%7E.\/15110\/schedule.html\" target=\"_blank\" rel=\"noopener\">CMU 15-110<\/a><\/em> (Python)<\/li>\n<li>Roger Dannenberg &amp; Jim Roberts&rsquo; <em><a href=\"http:\/\/www.cs.cmu.edu\/%7E15104\/\" target=\"_blank\" rel=\"noopener\">CMU 15-104<\/a><\/em>, Fall 2014 (Python &amp; Processing)<\/li>\n<li>David Kosbie&rsquo;s <em><a href=\"http:\/\/www.cs.cmu.edu\/%7E112\/notes\/notes-1d-lists.html\" target=\"_blank\" rel=\"noopener\">CMU 15-112<\/a><\/em> (Python)<\/li>\n<\/ul><\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>Online Reference Materials p5.js is a JavaScript library which makes coding accessible for artists, designers, educators, and beginners. It is a member of the Processing family of free, open-source arts-engineering toolkits. Here are some quick links you may find helpful: p5.js Reference p5.js Examples W3 Schools JavaScript Reference DevDocs.io JavaScript Reference Textbooks and Examples Shown &hellip; <a href=\"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/programming-p5-js\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Programming p5.js&#8221;<\/span><\/a><\/p>\n","protected":false},"author":535,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/wp-json\/wp\/v2\/pages\/99"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/wp-json\/wp\/v2\/users\/535"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/wp-json\/wp\/v2\/comments?post=99"}],"version-history":[{"count":3,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/wp-json\/wp\/v2\/pages\/99\/revisions"}],"predecessor-version":[{"id":28797,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/wp-json\/wp\/v2\/pages\/99\/revisions\/28797"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2021\/wp-json\/wp\/v2\/media?parent=99"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}