====== EPGY Middle School Program - Game Design and Robotics ====== http://epgy.stanford.edu/summer/mspprogramming.html ===== Course Information ===== * First class day: June 24th * Last class day: July 4th * House: Kappa Sig/Theta Delt === Instructor === * Sherol Chen, sherol@stanford.edu === Teaching Assistants === * Eric Showers, eshowers@stanford.edu * Wesley Mitchell, wesleym@stanford.edu * Kevin Tong, kstong@stanford.edu === Course Description === This course will introduce students to the concepts of app development, game design, robotics, and artificial Intelligence through basic programming and mathematics. The first part of the course will deal with game states, collision detection, and fundamental game mechanics. The robotics segment will include programming with the LEGO MindStorms Robotics Invention System. The course will give a simplified and general overview of game design and robotics with emphasis on real world practices and applications. Students will journal their exploration with focus on their personal interests, propose and build a final team project, and give a final presentation with live demo. === Readings === * http://www.wired.com/geekdad/2007/11/the-best-progra/ * http://www.makeuseof.com/tag/arduino-vs-raspberry-pi-which-is-the-mini-computer-for-you/ * http://java.dzone.com/articles/getter-setter-use-or-not-use-0 * http://mathbits.com/MathBits/Java/arrays/Bubble.htm * http://processing.org/tutorials/objects/ === Languages === * Processing * Javascript * Java * HTML/CSS === Resources === * Wordpress - http://www.wordpress.com * OpenProcessing - http://www.openprocessing.org/ * JSFiddle - http://jsfiddle.net/ * IndieCade - http://indiecade.com * http://www.cs.kent.edu/~volkert/F10-10051/notes/logsim.html * http://service.lego.com/en-us/helptopics/?questionid=2655 * poweriso === Videos === * Prototype: Lab Bunnies * Alpha: Lab Bunnies * Released: Lab Bunnies Book: Getting Started with Processing, By Casey Reas, Ben Fry ===== Schedule ===== ---- ===== Completed ===== 6/24/13 **Day 1 - Wordpress and Processing** * Sign up for DropBox: http://db.tt/4bts9WGd * Research Journal 1 - Setting up Wordpress: [[epgy:msp2013:Journal 1]] * Write: About Me Page * Write: Links Page * Blog: Game Review #1 - http://www.newgrounds.com/portal/view/495903 * Assignment 1 - Getting Started with Processing, Chapters 1-4: [[epgy:msp2013:Assignment 1]] * Takeaway: Computer History Museum, Programming Languages, Microprocessor, Microcontroller, assembly, compiler, interpreter, IDE, bit, byte, {compile + link = build} 6/25/13 **Day 2 - Processing.js and OpenProcessing** * Slides: https://dl.dropboxusercontent.com/u/3235343/Teaching/MSP/msp2013_day2.pptx * Assignment 2 - Setting up OpenProcessing, Chapter 5: [[epgy:msp2013:Assignment 2]] * Proj 1: Paintbrush * Proj 2: Growing Circle * Proj 3: Blinking Box * Proj 4: Robot * Research Journal 2 - [[epgy:msp2013:Journal 2]] * Blog: Game Review #2 - http://armorgames.com/play/4309/this-is-the-only-level * Blog: Getting Started with Processing [Category: Projects] * Blog: How We Talk to Machines 6/26/13 **Day 3 - Pencil and Paper** * Research Journal 3 (Part 1) - [[epgy:msp2013:Journal 3]] * Page: Resume * Plan your own processing project: Pencil and Paper * Assignment 3 - [[epgy:msp2013:Assignment 3]] * Proj 5: Pencil and Paper * [[epgy:msp2013:Journal 3]] (Part 2) * Blog: Game Review #3 - http://armorgames.com/play/2893/achievement-unlocked * Blog: Foundations of Programming 6/27/13 **Day 4 - Object Oriented Programming** * Topics * Array: http://mathbits.com/MathBits/Java/arrays/Declare.htm * Bubble Sort: http://mathbits.com/MathBits/Java/arrays/Bubble.htm * Insertion Sort: http://mathbits.com/MathBits/Java/arrays/InsertionSort.htm * Research Journal 4 - [[epgy:msp2013:Journal 4]] * Blog: Game Review #4 - Pick any online game * Page: Resume (Additions) * Blog: Data Structures and Data Types * Assignment 4 - Hello World: [[epgy:msp2013:Assignment 4]] 6/28/13 **Day 5 - Algorithms** * Student Presentation - Recording Video * http://www.sorting-algorithms.com/ * http://visualsort.appspot.com/ * Research Journal 5 - [[epgy:msp2013:Journal 5]] * Blog: Game Review #5 - http://www.kongregate.com/games/gamescience/refraction * Is this a good educational game? * What are some other educational games? * Assignment 5 - Sorting: [[epgy:msp2013:Assignment 5]] 7/1/13 **Day 6 - Building Your Robot** * Research Journal 6 - [[epgy:msp2013:Journal 6]] * Blog: Game Review #6 - http://www.kongregate.com/games/onimatrix/sandtest * Assignment 6 - [[epgy:msp2013:Assignment 6]] 7/2/13 **Day 7 - Classes, Objects, and Functions** * Afternoon * SURVEY! * Research Journal 7 - [[epgy:msp2013:Journal 7]] * Blog: Game Review #7 - http://duolingo.com * Is this a game? * Assignment 7 - The Explorer and the Claw [[epgy:msp2013:Assignment 7]] 7/3/13 **Day 8 - Field Trip** * Review Blog Questions * Research Journal 8 - [[epgy:msp2013:Journal 8]] * Blog: Robot Arm * Blog: Game Review #8 - http://mariotetris.com/ * Blog: My Final Project is about... [Category: Projects] * Assignment 8 - Functions: [[epgy:msp2013:Assignment 8]] * Afternoon: Field Trip!!!! 7/4/13 **Day 9 - Final Project** * Assignment 9 - Functions, Classes, and Logic: [[epgy:msp2013:Assignment 9]] * fun with curly braces :} * Research Journal 9 - [[epgy:msp2013:Journal 9]] * Blog: Computer History Museum * Blog: My Favorite During EPGY Was... * Blog: Game Review #9: http://www.ludomancy.com/games/StoryTeller.html ---- ===== Student Pages ===== - http://goyalvahgar.wordpress.com - http://tomyinjliverpoolrocks.wordpress.com - http://aanyasprinkles17.wordpress.com - http://mistermilan.wordpress.com - http://rileymagnone.wordpress.com/ - http://kaimjones.wordpress.com - http://karioglu.wordpress.com - http://andrew01px2018.wordpress.com - http://captainnayn.wordpress.com - http://marionsem.wordpress.com - http://dascripter.wordpress.com - http://jdai578.wordpress.com - http://myriagaming.wordpress.com - http://diorblog.wordpress.com - http://brandon01px2018.wordpress.com/ - http://wezzybman.wordpress.com - http://delvingtoodeep.wordpress.com - http://superambitioussoup.wordpress.com [[epgy:msp2013:For TAs]] ===== Conclusion ===== Every day the students were required to analyze games and other educational interactive experiences to discuss the use of user interfaces, game mechanics, and overall concepts. Additionally, students created a portfolio, resume, and blog. They spent part of their day researching and reading about concepts learned in class and posting their discoveries online. We used Processing to introduce the students to high level programming languages, and by the third day, they were required to design their own team project which they all went beyond expectations and have stored this work in their online portfolios. Class discussions included current events in the tech world, history of computing, the foundations of computer science and architecture, and practices in app development. Towards the end of the session, the class took a trip to visit the computing history museum, tying it all together. Students were encouraged to learn vocabulary such as IDE and API and binary, decimal, and hexadecimal numbering systems. Since we started with Processing and moved on to Java in Eclipse, they were able to write about the experiences from one programming environment to another. They students engaged in many mathematical, logic, and geometry exercises as part of course training. There was also an introduction to Algorithms, which included Bubble, Selection, and Insertion sort. High level concepts like: Object Oriented Programming, Classes, Objects, Functions, Data Structures, Data Types, Boolean Logic, and Loops were the main emphasis of the course. In the robotics portion of the course, the students built an autonomous vehicle which was able to detect and avoid collisions. The second robot they worked on was a mechanical arm that they could control. Photos of this, including all other activities in the course can be found here: https://picasaweb.google.com/110478996885609825075/MSP2013 Similar Course: https://sites.google.com/site/epgyrobotics/