Middle School Programming

parkmooseupvalleySoftware and s/w Development

Jul 5, 2012 (6 years and 20 days ago)


Middle School Programming
Summer 2010 Handout 01 - Syllabus
1 Instructor Info
Instructor:Adam Leeper,aleeper@stanford.edu
Counselors:Nathan Golshan,ngolshan@stanford.edu
Ryan Satterlee,rysatt@stanford.edu
Georgia Andrews,georgiaa@stanford.edu
2 Course Description
The EPGY Summer Institutes Middle School Program Computer Programming course will introduce stu-
dents to the world of computer science through multimedia programming and robotics.First,principles of
programming will be taught using the Adobe Flash.Students will create interactive animations and games
which include graphics,sounds,and user controls.An open-ended game project will allow students to focus
on their area of interest,such as more intricate animations or more complex programming.The second part
of the course expands on students new skills by having them construct and program robots using the Lego
Mindstorms Robotics Invention System and the NXT programming environment.Students will learn about
mechanical design,how to use sensors,and how to use basic AI to achieve desired behaviors.Working in
teams,students will create robots that can complete a task such as navigating a maze or sorting dierent
objects.At the end of the course,students will share their ash games with each other and pit their robots
against each other in friendly competition.Computer programming teaches students to be problem solvers
and to think methodically and logically;the goal is that students will acquire valuable skills that they can
apply to a variety of problems in the future.
3 Texts
Adobe Flash CS4 Professional Classroom in a Book by Russell Chun
ActionScript 3.0 for Adobe Flash CS4 Professional Classroom in a Book by Chris Florio
Real-World Flash Game Development:How to Follow Best Practices AND Keep Your Sanity by Chris
4 Course DOs and DON'Ts
Here are a few nuggets of wisdom to get us started o right!
 DO ask questions!We may not always know the answer but we can help you nd out!
 DO feel free to make mistakes!The BEST way to learn is to gure out what you did wrong and x it!
 DO respect your peers,your instructors,and yourself.
 DO help each other learn,share ideas,and collaborate on work.
 DO take interest in your own learning;be creative and explore what you can do.\Educate"comes
from the greek for\to draw out."(not\to stu in";)
 DON'T be negative.
5 Schedule
Please note this schedule is subject to change!
Day 1:Introduction to Flash and Creating Art
Readings:Chun chapters 1-3
9:00-9:15 Welcome,ice breaker
9:15-10:15 Intro to ash.Understanding the timeline and using the drawing tools to create art.
10:15-11:10 Understanding symbols:movie clips,buttons,and graphics.
11:10-11:30 Brief Intro to Keyframes
Afternoon session:The TAs will help you work through chapter 2 in Chun.
 Use art tools to create several library objects representing your favorite character(s) and some props,
or use images (e.g.your family,pets,etc).Create the frames for a mini comic book,story,family
album,etc.We will discuss how to navigate your creation on day 2.
 (advanced) Read chapter 7 in Chun.Work through the examples of using sounds.
Day 2:Animations and Keyframes
Readings:Chun chapters 4 and 6 (chapter 5 optional)
9:00-10:00 Understanding Motion Tweens,Shape Tweens and creating an animated clip.Run through ex-
amples of possible styles/uses of animations.
10:00-10:30 Advanced animation techniques:motion editor,using rigged bodies.
10:35-11:30 Intro to ActionScript:understanding variables and functions;simple button programming.
Afternoon session:The TAs will help you work through Chapter 1 of Florio.
 Add buttons to your comicbook/photo album from Day 1.Depending on your project,this could
include"previous","next"and"home"buttons,as well as anything else that seems appropriate.
 Take a character (person,animal,etc).from your comicbook and animate the OBJECT with a cyclic
motion (e.g make the tail on a dog wag back and forth).The changes to the object should automatically
show up in all the instances of that object in your project.
 (advanced) Create and animate a rigged body (this could be an extension of something you already
Day 3:Programming
Readings:Florio chapters 1 and 2.
9:00-11:00 ActionScript:more variables,managing user input,writing functions.
11:00-11:30 Animating buttons,adding sounds,etc.
Afternoon session:
 Create a choose your own adventure game.Advanced students can prompt the user for additional
text input that might aect the outcome.
 Create animations that use action script to generate motion.Try having user input modify the scripted
motion of your objects.
Day 4:More programming
Readings:Florio chapter 3.Additional chapters of Florio optional.
9:00-11:00 Understanding classes,instances of objects in code.Loops and conditional execution.Managing
larger projects,coding practices.
11:00-11:30 Explain nal project,brainstorm with students what sorts of things are possible and how to
approach them.
Afternoon session:
 Create a handy program that will solve the quadratic formula for you.Prompt the user for the
necessary values,and return the answer.
 (advanced) Create a virtual calculator,or a classic game like Go Fish.
Day 5:Work on Final Project
Readings:Additional chapters of Chun or Florio optional.
9:00-9:30 Answer questions that everyone can benet from.
9:30-11:30 Work session for students.
Afternoon session:Work session for students.
Day 6:Introduction to Robotics
Readings:Handout on NXT.
9:00-10:00 Discussion of mechanical considerations for robot design,such as drive train,stability,sensor
placement,etc.Understanding sensors and robot input.
10:00-11:30 Intro to Lego NXT programming environment.Practice reading from variety of sensors,com-
manding movement using motors,and handling user input.
Afternoon session:
 Experiment with building (but not programming) several dierent robot designs,including wheeled,
animal,and stationary.
 Create a wheeled robot and make it drive.
 (advanced) Have your wheeled robot perform the following tasks:follow a line of tape (color/light
sensor),follow a wall (ultrasonic sensor).
Day 7:Advanced Programming Robots
9:00-10:30 Discussion and examples of basic AI and decision making for robots.Discussion of blocking and
non-blocking code.
10:30-11:30 Final project/competition assigned.Additional topics as appropriate.
Afternoon session:Design robots for competition.
Day 8:Work on Final Project(s)
Depending on your interests and current progress,this day is for you to continue to work on your Flash
projects or Lego Robots and explore advanced topics that interest you.
Day 9:Carnival/Competition
Morning:Life after EPGY.Options for additional programming opportunities when you return home.
Afternoon session:Show o ash projects and compete with robots!