{"id":4000,"date":"2020-08-31T06:46:44","date_gmt":"2020-08-31T10:46:44","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/?page_id=4000"},"modified":"2020-11-01T04:28:44","modified_gmt":"2020-11-01T09:28:44","slug":"1-introduction-map-due-9-2","status":"publish","type":"page","link":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/deliverables\/1-introduction-map-due-9-2\/","title":{"rendered":"#1 Introduction &#038; Map"},"content":{"rendered":"<h2>Deliverables #1, Due Wednesday, 9\/2.<\/h2>\n<p>This initial set of deliverables is due at the beginning of class on Wednesday (<em>yup<\/em>), and has 5 parts.<\/p>\n<ol>\n<li><a href=\"#admin\">Administrative Items<\/a><\/li>\n<li><a href=\"#looking-outwards\">Looking Outwards #01<\/a><\/li>\n<li><a href=\"#reading\">Reading #01<\/a><\/li>\n<li><a href=\"#exercise\">Exercise:\u00a0Embedded Iteration + Randomness<\/a><\/li>\n<li><a href=\"#map\">Generative Map of an Imaginary Place<\/a><\/li>\n<\/ol>\n<p><a name=\"admin\"><\/a><\/p>\n<hr \/>\n<h2>1. Administrative Items.<\/h2>\n<ul>\n<li>Please read this\u00a0<a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/syllabus\/ferpa-statement\/\">FERPA Statement<\/a>\u00a0and complete the\u00a0<a href=\"https:\/\/forms.gle\/jxH6xWyQJzvtBaAx7\">FERPA Waiver form<\/a> here.<\/li>\n<li>If you haven&#8217;t already, please finish reading and carefully reviewing the course <a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/\">Syllabus<\/a>.<\/li>\n<li>Review our course <a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/syllabus\/course-calendar\/\">Calendar<\/a>\u00a0and add, copy, or connect it to your own calendar.<\/li>\n<li>Review the page, &#8220;<a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/resources\/authoring-on-this-site\/\">Authoring on this Site<\/a>&#8220;. Log in to this course WordPress.<\/li>\n<li>Create accounts for yourself on the <a href=\"http:\/\/cmu60212.slack.com\/\">Slack<\/a>, and also the <a href=\"https:\/\/editor.p5js.org\/\">p5.js Web Editor<\/a>\u00a0and\u00a0<a href=\"https:\/\/glitch.com\/\">Glitch.com<\/a>. This semester, we will use these cloud hosting services for many of our projects. It is recommended that you choose an anonymous public identifier for yourself.<\/li>\n<\/ul>\n<p><a name=\"looking-outwards\"><\/a><\/p>\n<hr \/>\n<h2>2. Looking Outwards #01.<\/h2>\n<p><strong>Topic: Some Technological Art or Design that has Inspired You.<\/strong><\/p>\n<p>This deliverable is your first\u00a0<em>Looking Outwards<\/em>\u00a0report. (As a reminder about what a &#8220;Looking Outwards&#8221; report means, refer to\u00a0<a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/deliverables\/looking-outwards\/\">this\u00a0document<\/a>.) I thought it would be ideal, at this early stage, if you could briefly share a touchstone&#8211;perhaps even a project you saw that compelled you to take this class.<\/p>\n<p>Think about an interactive and\/or computational project (from anywhere, by anyone except yourself) that you knew about before starting this course, and which you find inspirational. It should be something that someone made with code, at least in part. In a blog post of about 100-200 words,<\/p>\n<ul>\n<li>Please\u00a0<strong>discuss the project.<\/strong>\u00a0What do you admire about it, and why do you admire these aspects of it?<\/li>\n<li>How many people were involved in making it, and how did they organize themselves to achieve it? (Any idea how long it took them to create it?)<\/li>\n<li>To the best of your knowledge, did creating this project require the development of\u00a0custom software\/scripts, or did the authors create the project\u00a0using &#8220;off-the-shelf&#8221; (commercial) software? Or some combination of these approaches?<\/li>\n<li>What prior works might the project&#8217;s creators have been inspired by?<\/li>\n<li>To what opportunities or futures does the project point, if any?<\/li>\n<li>Provide a\u00a0<strong>link<\/strong> (if possible) to the artwork, remembering to list the full author and title.<\/li>\n<li><strong>Embed<\/strong>\u00a0an image and\u00a0a\u00a0YouTube\/Vimeo video of the project (if available).<\/li>\n<li>Create a brief\u00a0<strong>animated GIF<\/strong>\u00a0for the project, if a video is available. (For information on how to make an animated GIF, follow the instructions\u00a0<a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/resources\/making-animated-gifs\/\">here<\/a>.) Keep your GIF around 640 in size pixels and under 5Mb, please.<\/li>\n<li><strong>Label<\/strong>\u00a0your blog post with the Category,\u00a0<em>LookingOutwards-01<\/em>.<\/li>\n<li><strong>Title<\/strong>\u00a0your blog post:\u00a0<em>nickname-lookingoutwards01. <\/em>For example, if your course nickname was &#8220;derp&#8221;, the title of your blog post would be &#8220;derp-lookingoutwards01&#8221;.<\/li>\n<\/ul>\n<p>This first<em>\u00a0Looking Outwards<\/em>\u00a0is unusual, in that you are asked to report on something you\u00a0<em>already<\/em>\u00a0know about. The remaining LO&#8217;s this semester will ask you to report on projects that are\u00a0<em>as yet unknown to you<\/em>.<\/p>\n<p>As you can probably tell, there&#8217;s another purpose to this Looking Outwards&#8230;.which is to make sure you understand the mechanics of authoring posts on this WordPress blog.<\/p>\n<p><a name=\"reading\"><\/a><\/p>\n<hr \/>\n<h2>3. Reading #01: <em>So You Want to Build A Generator<\/em><\/h2>\n<p>Read the article &#8220;<a href=\"https:\/\/galaxykate0.tumblr.com\/post\/139774965871\/so-you-want-to-build-a-generator\">So You Want to Build A Generator<\/a>&#8221; by Kate Compton (@galaxykate). This should take about 20 minutes.<\/p>\n<ul>\n<li>In a blog post of 100-200 words,\u00a0<strong>re-explain<\/strong> Compton&#8217;s &#8220;10,000 Bowls of Oatmeal Problem&#8221; in your own words. Can you think of a scenario in which this might be a problem, and another in which it isn&#8217;t? What are some artistic or technical strategies for overcoming this problem?<\/li>\n<li><strong>Label<\/strong>\u00a0your blog post with the Category,\u00a0<em>01-Reading<\/em>.<\/li>\n<\/ul>\n<p><a name=\"exercise\"><\/a><\/p>\n<hr \/>\n<h2>4. Exercise:\u00a0Embedded Iteration + Randomness<\/h2>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/molnar_computer_drawing_tallhalf.png\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-4030\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/molnar_computer_drawing_tallhalf-313x480.png\" alt=\"\" width=\"313\" height=\"480\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/molnar_computer_drawing_tallhalf-313x480.png 313w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/molnar_computer_drawing_tallhalf-669x1024.png 669w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/molnar_computer_drawing_tallhalf-768x1176.png 768w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/molnar_computer_drawing_tallhalf-1003x1536.png 1003w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/molnar_computer_drawing_tallhalf-1337x2048.png 1337w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/molnar_computer_drawing_tallhalf-1200x1838.png 1200w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/molnar_computer_drawing_tallhalf.png 1934w\" sizes=\"(max-width: 313px) 85vw, 313px\" \/><\/a><\/p>\n<p><em>(Image: computational iterative plotter artwork by <a href=\"https:\/\/en.wikipedia.org\/wiki\/Vera_Moln%C3%A1r\">Vera Moln\u00e1r<\/a>, 1974. This design contains <strong>embedded iteration<\/strong> \u2014 can you see the triple &#8216;for&#8217;-loop?\u00a0 It also contains randomness: of the 5x5x10 squares that would ordinarily be drawn, just a few\u201410, or about 4% \u2014 have been randomly omitted.)\u00a0<\/em><\/p>\n<p>The purpose of this exercise is to ensure that you understand fundamental programming concepts such as iteration and conditional testing. This exercise also serves as a quick introduction to basic graphics and interaction with\u00a0<a href=\"https:\/\/p5js.org\/\">p5.js<\/a>.<\/p>\n<p>First, be sure to have created an account at the p5.js Web Editor!<\/p>\n<p>In p5.js, write a program that uses\u00a0<a href=\"https:\/\/p5js.org\/examples\/control-embedded-iteration.html\">embedded iteration<\/a>\u00a0to generate a grid of visual elements (such as squares). Write code such that, with a\u00a0<em>small<\/em>\u00a0random probability, an alternative element (such as a circle) is occasionally drawn instead. The composition should refresh whenever the user clicks the mouse (<em>note:<\/em>\u00a0some starter code has been provided, below, to help you with this.) Your sketch might look something like the following:<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/iteration.gif\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-4025\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/08\/iteration.gif\" alt=\"\" width=\"398\" height=\"398\" \/><\/a><\/p>\n<table cellpadding=\"15\" bgcolor=\"yellow\">\n<tbody>\n<tr>\n<td><em><strong>Are you new to JavaScript and\/or p5.js?<\/strong>\u00a0To create this app, you&#8217;ll probably find it helpful to use p5.js commands like\u00a0<a href=\"https:\/\/p5js.org\/reference\/#\/p5\/background\">background<\/a>(),\u00a0<a href=\"https:\/\/p5js.org\/reference\/#\/p5\/line\">line<\/a>(),\u00a0<a href=\"https:\/\/p5js.org\/reference\/#\/p5\/stroke\">stroke<\/a>(),\u00a0<a href=\"https:\/\/p5js.org\/reference\/#\/p5\/strokeWeight\">strokeWeight<\/a>(), <a href=\"https:\/\/p5js.org\/reference\/#\/p5\/circle\">circle<\/a>(), <a href=\"https:\/\/p5js.org\/reference\/#\/p5\/square\">square<\/a>(), and <a href=\"https:\/\/p5js.org\/reference\/#\/p5\/random\">random<\/a>(). You may also find it helpful to examine the p5.js example for\u00a0<a href=\"https:\/\/p5js.org\/examples\/control-embedded-iteration.html\">nested iteration<\/a>, or view Dan Shiffman&#8217;s lecture about\u00a0<a href=\"https:\/\/www.youtube.com\/watch?v=1c1_TMdf8b8\">nested loops<\/a> (9 minutes long).<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><iframe title=\"1.2: p5.js Web Editor - p5.js Tutorial\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/MXs1cOlidWs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p><iframe title=\"4.2: Nested Loops - p5.js Tutorial\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/1c1_TMdf8b8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p><em>Now<\/em>:<\/p>\n<ul>\n<li><strong>Create<\/strong> your app using p5.js at the <a href=\"https:\/\/editor.p5js.org\/\">p5.js Web Editor<\/a>. (For information about how to use the Web Editor, see <a href=\"https:\/\/www.youtube.com\/watch?v=MXs1cOlidWs\">this Coding Train video<\/a> by Dan Shiffman.)<\/li>\n<li><strong>Save<\/strong>\u00a0your app to your p5.js Editor account.<\/li>\n<li><strong>Create<\/strong>\u00a0a blog post where you will publish this deliverable, and\u00a0<strong>give your blog post the title<\/strong>\u00a0<em>nickname-IterationExercise<\/em>, where &#8220;nickname&#8221; is your WordPress site nickname.<\/li>\n<li>In your blog post,\u00a0<strong>provide a link<\/strong> to your sketch at the online <a href=\"https:\/\/editor.p5js.org\/\">p5.js Web Editor<\/a>.<\/li>\n<li><strong>Create an animated GIF<\/strong>\u00a0of your sketch,\u00a0<a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/resources\/making-animated-gifs\/\">using provided instructions<\/a>. Embed this GIF into your blog post, as well.<\/li>\n<li><strong>Categorize<\/strong>\u00a0your blog post with the WordPress category,\u00a0<em>01-IterationExercise<\/em>.<\/li>\n<li><strong>Double-check your work.<\/strong>\u00a0Test your blog post and sketch.<\/li>\n<\/ul>\n<pre>\/\/ Starter Code for \"Embedded Iteration + Randomness\"\r\nvar boolDoRefresh;\r\n\r\nfunction setup() {\r\n  createCanvas(400, 400);\r\n  boolDoRefresh = true;\r\n}\r\n\r\nfunction draw() {\r\n  if (boolDoRefresh) {\r\n    \/\/ DRAW STUFF HERE....\r\n    boolDoRefresh = false;\r\n  }\r\n}\r\n\r\nfunction mousePressed() {\r\n  boolDoRefresh = true;\r\n}\r\n<\/pre>\n<p>Here&#8217;s some alternative starter code:<\/p>\n<pre>\/\/ Alternative Starter Code \r\n\/\/ for \"Embedded Iteration + Randomness\"\r\n\r\nfunction setup() {\r\n  createCanvas(400, 400);\r\n  mousePressed();\r\n}\r\n\r\nfunction mousePressed() {\r\n  background(\"gray\"); \r\n  \/\/ DRAW STUFF HERE...\r\n  var ex = random(100,300); \r\n  var ey = random(100,300); \r\n  ellipse(ex, ey, 50,50);\r\n}\r\n<\/pre>\n<p><a name=\"map\"><\/a><\/p>\n<hr \/>\n<h2>5. Generative Map of an Imaginary Place<\/h2>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/09\/Ballantine-Middle-earth-Map-02.jpg\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-4158\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/09\/Ballantine-Middle-earth-Map-02-542x480.jpg\" alt=\"\" width=\"542\" height=\"480\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/09\/Ballantine-Middle-earth-Map-02-542x480.jpg 542w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/09\/Ballantine-Middle-earth-Map-02-1024x907.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/09\/Ballantine-Middle-earth-Map-02-768x680.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/09\/Ballantine-Middle-earth-Map-02-1536x1360.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/09\/Ballantine-Middle-earth-Map-02-1200x1062.jpg 1200w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/09\/Ballantine-Middle-earth-Map-02.jpg 2033w\" sizes=\"(max-width: 542px) 85vw, 542px\" \/><\/a><em>Map of Middle-Earth<\/em> by Christopher Tolkien, from <em>Lord of the Rings<\/em>, circa 1960. Click to expand.<\/p>\n<p>Using p5.js, in a canvas of precisely 640 x 640 pixels, write code to generate a map of an imaginary place. It should show a new map each time the user clicks the mouse button.<\/p>\n<p>To get started, look at some maps! Now: Consider giving your map features like rivers, towns, mountains, coastlines, forests, bodies of water, etc. Does your map have place-names with labels? Landmarks? Political boundaries? Roads or paths? A scale or legend? A compass? Buried treasure \u2716?<\/p>\n<p><strong>Note<\/strong>: After the assignment is complete, I will compile and publish your work into a tiny <a href=\"https:\/\/www.pinterest.com\/pin\/39969515427281290\/\">16-page &#8216;zine<\/a> (a <em>Generative Atlas of Imaginary Lands<\/em>). Be sure to:<\/p>\n<ul>\n<li><strong>Upload<\/strong> and\/or save your app to the official p5.js Web Editor.<\/li>\n<li><strong>Create<\/strong>\u00a0a blog post, titled\u00a0<em>nickname-Map<\/em>.<\/li>\n<li>In your blog post,\u00a0<strong>link to your project<\/strong>\u00a0at the p5.js Editor.<\/li>\n<li>In your blog post, <strong>include four (4) screenshots<\/strong> of your project, showing different runs of the generator.<\/li>\n<li>In your blog post, <strong>write a brief paragraph about the territory<\/strong> depicted in your map. (This text will appear in the zine\/atlas). Please limit this to 50 words.<\/li>\n<li>In your blog post, <strong>write another paragraph<\/strong> commenting on your technical process.<\/li>\n<li><strong>Categorize<\/strong>\u00a0your blog post with the WordPress category,\u00a0<em>01-Map<\/em>.<\/li>\n<li><strong>Test<\/strong> your blog post to make sure it looks good, and that the GIF is animating correctly. (Remember, any <em>resized<\/em> thumbnail versions of your GIF, automatically generated by WordPress, will <em>not<\/em> animate.)<\/li>\n<\/ul>\n<table cellpadding=\"15\" bgcolor=\"yellow\">\n<tbody>\n<tr>\n<td><em><strong>Are you new to JavaScript and\/or p5.js?<\/strong>\u00a0You may find it helpful to view Dan Shiffman&#8217;s lectures about p5.js\u00a0<strong><a href=\"https:\/\/www.youtube.com\/watch?v=VIQoUghHSxU\">arrays<\/a><\/strong>\u00a0(13 minutes) and\u00a0<strong><a href=\"https:\/\/www.youtube.com\/watch?v=RXWO3mFuW-I\">arrays+loops<\/a><\/strong>\u00a0(8 minutes).<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deliverables #1, Due Wednesday, 9\/2. This initial set of deliverables is due at the beginning of class on Wednesday (yup), and has 5 parts. Administrative Items Looking Outwards #01 Reading #01 Exercise:\u00a0Embedded Iteration + Randomness Generative Map of an Imaginary Place 1. Administrative Items. Please read this\u00a0FERPA Statement\u00a0and complete the\u00a0FERPA Waiver form here. If you &hellip; <a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/deliverables\/1-introduction-map-due-9-2\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;#1 Introduction &#038; Map&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":79,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/pages\/4000"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/comments?post=4000"}],"version-history":[{"count":29,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/pages\/4000\/revisions"}],"predecessor-version":[{"id":6913,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/pages\/4000\/revisions\/6913"}],"up":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/pages\/79"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/media?parent=4000"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}